int fvecs_fwrite (FILE *fo, int d, int n, const float *vf) { int i; /* write down the vectors as fvecs */ for (i = 0; i < n; i++) { if(fvec_fwrite(fo, vf+i*d, d)<0) return i; } return n; }
bool PCARotation::SavePCARotation(const char *fname, const int dim, const float *rotation) { FILE *fid = fopen(fname,"wb"); if(!fid) { printf("can't open the file %s\n",fname); return false; } fvec_fwrite(fid, rotation, dim * dim); fclose(fid); return true; }
void hkm_write (const char *filename, const hkm_t * hkm) { int ret = 0, l, k = hkm->bf; FILE *f = fopen (filename, "w"); assert (f); ret = fwrite (&hkm->nlevel, sizeof (hkm->nlevel), 1, f); HKM_WRITE_ERROR (ret, 1); ret = fwrite (&hkm->bf, sizeof (hkm->bf), 1, f); HKM_WRITE_ERROR (ret, 1); ret = fwrite (&hkm->d, sizeof (hkm->d), 1, f); HKM_WRITE_ERROR (ret, 1); for (l = 0; l < hkm->nlevel; l++) { ret = fvec_fwrite (f, hkm->centroids[l], k * hkm->d); k *= hkm->bf; } fclose (f); }