BitSequenceSDArray * BitSequenceSDArray::load(ifstream & fp) { uint id = loadValue<uint>(fp); if(id!=SDARRAY_HDR) return NULL; BitSequenceSDArray * ret = new BitSequenceSDArray(); ret->length = loadValue<size_t>(fp); ret->ones = loadValue<size_t>(fp); if(ret->ones) selects3_load(&ret->sd,fp); return ret; }
static_bitsequence_sdarray * static_bitsequence_sdarray::load(FILE * fp) { uint id; if(fread(&id,sizeof(uint),1,fp)!=1) return NULL; if(id!=SDARRAY_HDR) return NULL; static_bitsequence_sdarray * ret = new static_bitsequence_sdarray(); id = fread(&ret->len,sizeof(uint),1,fp); id += fread(&ret->ones,sizeof(uint),1,fp); if(ret->ones && selects3_load(&ret->sd,fp)) { delete ret; return NULL; } return ret; }