blargg_err_t File_Extractor::read_v( void* out, int count ) { if ( data_ptr_ ) return File_Extractor::extract_v( out, count ); return extract_v( out, count ); }
blargg_err_t File_Extractor::data_v( void const** out ) { RETURN_ERR( own_data_.resize( size() ) ); *out = own_data_.begin(); blargg_err_t err = extract_v( own_data_.begin(), own_data_.size() ); if ( err ) own_data_.clear(); return err; }
SBasis extract_v(SBasis2d const &a, double v) { SBasis sb(a.us, Linear()); double s = v*(1-v); for(unsigned ui = 0; ui < a.us; ui++) { double sk = 1; Linear bo(0,0); for(unsigned vi = 0; vi < a.vs; vi++) { bo += (extract_v(a.index(ui, vi), v))*sk; sk *= s; } sb[ui] = bo; } return sb; }