1 /**
2  * Copyright (c) Facebook, Inc. and its affiliates.
3  *
4  * This source code is licensed under the MIT license found in the
5  * LICENSE file in the root directory of this source tree.
6  */
7 
8 // Copyright 2004-present Facebook. All Rights Reserved.
9 // -*- c -*-
10 
11 #ifndef FAISS_GPU_CLONER_OPTIONS_C_H
12 #define FAISS_GPU_CLONER_OPTIONS_C_H
13 
14 #include "../faiss_c.h"
15 #include "GpuIndicesOptions_c.h"
16 
17 #ifdef __cplusplus
18 extern "C" {
19 #endif
20 
21 FAISS_DECLARE_CLASS(GpuClonerOptions)
22 
23 FAISS_DECLARE_DESTRUCTOR(GpuClonerOptions)
24 
25 /// Default constructor for GpuClonerOptions
26 int faiss_GpuClonerOptions_new(FaissGpuClonerOptions**);
27 
28 /// how should indices be stored on index types that support indices
29 /// (anything but GpuIndexFlat*)?
30 FAISS_DECLARE_GETTER_SETTER(
31         GpuClonerOptions,
32         FaissIndicesOptions,
33         indicesOptions)
34 
35 /// (boolean) is the coarse quantizer in float16?
36 FAISS_DECLARE_GETTER_SETTER(GpuClonerOptions, int, useFloat16CoarseQuantizer)
37 
38 /// (boolean) for GpuIndexIVFFlat, is storage in float16?
39 /// for GpuIndexIVFPQ, are intermediate calculations in float16?
40 FAISS_DECLARE_GETTER_SETTER(GpuClonerOptions, int, useFloat16)
41 
42 /// (boolean) use precomputed tables?
43 FAISS_DECLARE_GETTER_SETTER(GpuClonerOptions, int, usePrecomputed)
44 
45 /// reserve vectors in the invfiles?
46 FAISS_DECLARE_GETTER_SETTER(GpuClonerOptions, long, reserveVecs)
47 
48 /// (boolean) For GpuIndexFlat, store data in transposed layout?
49 FAISS_DECLARE_GETTER_SETTER(GpuClonerOptions, int, storeTransposed)
50 
51 /// (boolean) Set verbose options on the index
52 FAISS_DECLARE_GETTER_SETTER(GpuClonerOptions, int, verbose)
53 
54 FAISS_DECLARE_CLASS_INHERITED(GpuMultipleClonerOptions, GpuClonerOptions)
55 
56 FAISS_DECLARE_DESTRUCTOR(GpuMultipleClonerOptions)
57 
58 /// Default constructor for GpuMultipleClonerOptions
59 int faiss_GpuMultipleClonerOptions_new(FaissGpuMultipleClonerOptions**);
60 
61 /// (boolean) Whether to shard the index across GPUs, versus replication
62 /// across GPUs
63 FAISS_DECLARE_GETTER_SETTER(GpuMultipleClonerOptions, int, shard)
64 
65 /// IndexIVF::copy_subset_to subset type
66 FAISS_DECLARE_GETTER_SETTER(GpuMultipleClonerOptions, int, shard_type)
67 
68 #ifdef __cplusplus
69 }
70 #endif
71 #endif
72