1 module faiss.autotune; 2 3 import faiss.common; 4 import faiss.index; 5 6 /** 7 * Copyright (c) Facebook, Inc. and its affiliates. 8 * 9 * This source code is licensed under the MIT license found in the 10 * LICENSE file in the root directory of this source tree. 11 */ 12 13 // Copyright 2004-present Facebook. All Rights Reserved. 14 // -*- c -*- 15 16 extern (C): 17 18 /// possible values of a parameter, sorted from least to most expensive/accurate 19 struct FaissParameterRange_H; 20 alias FaissParameterRange = FaissParameterRange_H; 21 22 const(char)* faiss_ParameterRange_name (const(FaissParameterRange)*); 23 24 /// Getter for the values in the range. The output values are invalidated 25 /// upon any other modification of the range. 26 void faiss_ParameterRange_values (FaissParameterRange*, double**, size_t*); 27 28 /** Uses a-priori knowledge on the Faiss indexes to extract tunable parameters. 29 */ 30 struct FaissParameterSpace_H; 31 alias FaissParameterSpace = FaissParameterSpace_H; 32 33 void faiss_ParameterSpace_free (FaissParameterSpace* obj); 34 35 /// Parameter space default constructor 36 int faiss_ParameterSpace_new (FaissParameterSpace** space); 37 38 /// nb of combinations, = product of values sizes 39 size_t faiss_ParameterSpace_n_combinations (const(FaissParameterSpace)*); 40 41 /// get string representation of the combination 42 /// by writing it to the given character buffer. 43 /// A buffer size of 1000 ensures that the full name is collected. 44 int faiss_ParameterSpace_combination_name ( 45 const(FaissParameterSpace)*, 46 size_t, 47 char*, 48 size_t); 49 50 /// set a combination of parameters described by a string 51 int faiss_ParameterSpace_set_index_parameters ( 52 const(FaissParameterSpace)*, 53 FaissIndex*, 54 const(char)*); 55 56 /// set a combination of parameters on an index 57 int faiss_ParameterSpace_set_index_parameters_cno ( 58 const(FaissParameterSpace)*, 59 FaissIndex*, 60 size_t); 61 62 /// set one of the parameters 63 int faiss_ParameterSpace_set_index_parameter ( 64 const(FaissParameterSpace)*, 65 FaissIndex*, 66 const(char)*, 67 double); 68 69 /// print a description on stdout 70 void faiss_ParameterSpace_display (const(FaissParameterSpace)*); 71 72 /// add a new parameter (or return it if it exists) 73 int faiss_ParameterSpace_add_range ( 74 FaissParameterSpace*, 75 const(char)*, 76 FaissParameterRange**); 77