comparison src/oct-stream.cc @ 7789:82be108cc558

First attempt at single precision tyeps * * * corrections to qrupdate single precision routines * * * prefer demotion to single over promotion to double * * * Add single precision support to log2 function * * * Trivial PROJECT file update * * * Cache optimized hermitian/transpose methods * * * Add tests for tranpose/hermitian and ChangeLog entry for new transpose code
author David Bateman <dbateman@free.fr>
date Sun, 27 Apr 2008 22:34:17 +0200
parents 932b0cf51834
children 89dd4531b26a
comparison
equal deleted inserted replaced
7788:45f5faba05a2 7789:82be108cc558
3217 INSTANTIATE_DO_READ (uint16NDArray); 3217 INSTANTIATE_DO_READ (uint16NDArray);
3218 INSTANTIATE_DO_READ (int32NDArray); 3218 INSTANTIATE_DO_READ (int32NDArray);
3219 INSTANTIATE_DO_READ (uint32NDArray); 3219 INSTANTIATE_DO_READ (uint32NDArray);
3220 INSTANTIATE_DO_READ (int64NDArray); 3220 INSTANTIATE_DO_READ (int64NDArray);
3221 INSTANTIATE_DO_READ (uint64NDArray); 3221 INSTANTIATE_DO_READ (uint64NDArray);
3222 // INSTANTIATE_DO_READ (floatNDArray); 3222 INSTANTIATE_DO_READ (FloatNDArray);
3223 INSTANTIATE_DO_READ (NDArray); 3223 INSTANTIATE_DO_READ (NDArray);
3224 INSTANTIATE_DO_READ (charNDArray); 3224 INSTANTIATE_DO_READ (charNDArray);
3225 INSTANTIATE_DO_READ (boolNDArray); 3225 INSTANTIATE_DO_READ (boolNDArray);
3226 3226
3227 typedef octave_value (*read_fptr) (octave_stream&, octave_idx_type, octave_idx_type, octave_idx_type, octave_idx_type, bool, 3227 typedef octave_value (*read_fptr) (octave_stream&, octave_idx_type, octave_idx_type, octave_idx_type, octave_idx_type, bool,
3268 FILL_TABLE_ROW (oct_data_conv::dt_uint16, uint16NDArray); 3268 FILL_TABLE_ROW (oct_data_conv::dt_uint16, uint16NDArray);
3269 FILL_TABLE_ROW (oct_data_conv::dt_int32, int32NDArray); 3269 FILL_TABLE_ROW (oct_data_conv::dt_int32, int32NDArray);
3270 FILL_TABLE_ROW (oct_data_conv::dt_uint32, uint32NDArray); 3270 FILL_TABLE_ROW (oct_data_conv::dt_uint32, uint32NDArray);
3271 FILL_TABLE_ROW (oct_data_conv::dt_int64, int64NDArray); 3271 FILL_TABLE_ROW (oct_data_conv::dt_int64, int64NDArray);
3272 FILL_TABLE_ROW (oct_data_conv::dt_uint64, uint64NDArray); 3272 FILL_TABLE_ROW (oct_data_conv::dt_uint64, uint64NDArray);
3273 // FIXME -- the following line allows things like int8=>single 3273 FILL_TABLE_ROW (oct_data_conv::dt_single, FloatNDArray);
3274 // to work, but they will actually return a double value. We
3275 // need a floatNDArray for this to work properly.
3276 FILL_TABLE_ROW (oct_data_conv::dt_single, NDArray);
3277 FILL_TABLE_ROW (oct_data_conv::dt_double, NDArray); 3274 FILL_TABLE_ROW (oct_data_conv::dt_double, NDArray);
3278 FILL_TABLE_ROW (oct_data_conv::dt_char, charNDArray); 3275 FILL_TABLE_ROW (oct_data_conv::dt_char, charNDArray);
3279 FILL_TABLE_ROW (oct_data_conv::dt_schar, charNDArray); 3276 FILL_TABLE_ROW (oct_data_conv::dt_schar, charNDArray);
3280 FILL_TABLE_ROW (oct_data_conv::dt_uchar, charNDArray); 3277 FILL_TABLE_ROW (oct_data_conv::dt_uchar, charNDArray);
3281 FILL_TABLE_ROW (oct_data_conv::dt_logical, boolNDArray); 3278 FILL_TABLE_ROW (oct_data_conv::dt_logical, boolNDArray);
3604 oct_data_conv::data_type, 3601 oct_data_conv::data_type,
3605 octave_idx_type, oct_mach_info::float_format); 3602 octave_idx_type, oct_mach_info::float_format);
3606 3603
3607 template octave_idx_type 3604 template octave_idx_type
3608 octave_stream::write (const Array<double>&, octave_idx_type, 3605 octave_stream::write (const Array<double>&, octave_idx_type,
3606 oct_data_conv::data_type,
3607 octave_idx_type, oct_mach_info::float_format);
3608
3609 template octave_idx_type
3610 octave_stream::write (const Array<float>&, octave_idx_type,
3609 oct_data_conv::data_type, 3611 oct_data_conv::data_type,
3610 octave_idx_type, oct_mach_info::float_format); 3612 octave_idx_type, oct_mach_info::float_format);
3611 3613
3612 template octave_idx_type 3614 template octave_idx_type
3613 octave_stream::write (const Array<octave_int8>&, octave_idx_type, 3615 octave_stream::write (const Array<octave_int8>&, octave_idx_type,