Skip to content

Commit

Permalink
Add ParameterSpace.SetIndexParameter
Browse files Browse the repository at this point in the history
  • Loading branch information
p-ouellette committed Feb 14, 2021
1 parent 0718ed7 commit 5848392
Showing 1 changed file with 35 additions and 0 deletions.
35 changes: 35 additions & 0 deletions faiss.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ package faiss
#cgo LDFLAGS: -lfaiss_c
#include <stdlib.h>
#include <faiss/c_api/AutoTune_c.h>
#include <faiss/c_api/IndexFlat_c.h>
#include <faiss/c_api/Index_c.h>
#include <faiss/c_api/error_c.h>
Expand All @@ -26,6 +27,40 @@ func getLastError() error {
return errors.New(C.GoString(C.faiss_get_last_error()))
}

//--------------------------------------------------
// AutoTune
//--------------------------------------------------

type ParameterSpace struct {
ps *C.FaissParameterSpace
}

// NewParameterSpace creates a new ParameterSpace.
func NewParameterSpace() (*ParameterSpace, error) {
var ps *C.FaissParameterSpace
if c := C.faiss_ParameterSpace_new(&ps); c != 0 {
return nil, getLastError()
}
return &ParameterSpace{ps}, nil
}

// SetIndexParameter sets one of the parameters.
func (p *ParameterSpace) SetIndexParameter(idx *Index, name string, val float64) error {
cname := C.CString(name)
defer C.free(unsafe.Pointer(cname))

c := C.faiss_ParameterSpace_set_index_parameter(p.ps, idx.idx, cname, C.double(val))
if c != 0 {
getLastError()
}
return nil
}

// Delete frees the memory associated with p.
func (p *ParameterSpace) Delete() {
C.faiss_ParameterSpace_free(p.ps)
}

//--------------------------------------------------
// AuxIndexStructures
//--------------------------------------------------
Expand Down

0 comments on commit 5848392

Please sign in to comment.