comparison src/ov-scalar.h @ 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 39930366b709
children f336dd8e96d0
comparison
equal deleted inserted replaced
7788:45f5faba05a2 7789:82be108cc558
74 octave_base_value *empty_clone (void) const { return new octave_matrix (); } 74 octave_base_value *empty_clone (void) const { return new octave_matrix (); }
75 75
76 octave_value do_index_op (const octave_value_list& idx, 76 octave_value do_index_op (const octave_value_list& idx,
77 bool resize_ok = false); 77 bool resize_ok = false);
78 78
79 type_conv_fcn numeric_demotion_function (void) const;
80
79 idx_vector index_vector (void) const { return idx_vector (scalar); } 81 idx_vector index_vector (void) const { return idx_vector (scalar); }
80 82
81 octave_value any (int = 0) const 83 octave_value any (int = 0) const
82 { return (scalar != 0 && ! lo_ieee_isnan (scalar)); } 84 { return (scalar != 0 && ! lo_ieee_isnan (scalar)); }
83 85
135 uint64_array_value (void) const 137 uint64_array_value (void) const
136 { return uint64NDArray (dim_vector (1, 1), scalar); } 138 { return uint64NDArray (dim_vector (1, 1), scalar); }
137 139
138 double double_value (bool = false) const { return scalar; } 140 double double_value (bool = false) const { return scalar; }
139 141
142 float float_value (bool = false) const { return static_cast<float> (scalar); }
143
140 double scalar_value (bool = false) const { return scalar; } 144 double scalar_value (bool = false) const { return scalar; }
145
146 float float_scalar_value (bool = false) const { return static_cast<float> (scalar); }
141 147
142 Matrix matrix_value (bool = false) const 148 Matrix matrix_value (bool = false) const
143 { return Matrix (1, 1, scalar); } 149 { return Matrix (1, 1, scalar); }
144 150
151 FloatMatrix float_matrix_value (bool = false) const
152 { return FloatMatrix (1, 1, scalar); }
153
145 NDArray array_value (bool = false) const 154 NDArray array_value (bool = false) const
146 { return NDArray (dim_vector (1, 1), scalar); } 155 { return NDArray (dim_vector (1, 1), scalar); }
156
157 FloatNDArray float_array_value (bool = false) const
158 { return FloatNDArray (dim_vector (1, 1), scalar); }
147 159
148 SparseMatrix sparse_matrix_value (bool = false) const 160 SparseMatrix sparse_matrix_value (bool = false) const
149 { return SparseMatrix (Matrix (1, 1, scalar)); } 161 { return SparseMatrix (Matrix (1, 1, scalar)); }
150 162
151 // XXX FIXME XXX Need SparseComplexMatrix (Matrix) constructor!!! 163 // XXX FIXME XXX Need SparseComplexMatrix (Matrix) constructor!!!
154 166
155 octave_value resize (const dim_vector& dv, bool fill = false) const; 167 octave_value resize (const dim_vector& dv, bool fill = false) const;
156 168
157 Complex complex_value (bool = false) const { return scalar; } 169 Complex complex_value (bool = false) const { return scalar; }
158 170
171 FloatComplex float_complex_value (bool = false) const { return scalar; }
172
159 ComplexMatrix complex_matrix_value (bool = false) const 173 ComplexMatrix complex_matrix_value (bool = false) const
160 { return ComplexMatrix (1, 1, Complex (scalar)); } 174 { return ComplexMatrix (1, 1, Complex (scalar)); }
161 175
176 FloatComplexMatrix float_complex_matrix_value (bool = false) const
177 { return FloatComplexMatrix (1, 1, FloatComplex (scalar)); }
178
162 ComplexNDArray complex_array_value (bool = false) const 179 ComplexNDArray complex_array_value (bool = false) const
163 { return ComplexNDArray (dim_vector (1, 1), Complex (scalar)); } 180 { return ComplexNDArray (dim_vector (1, 1), Complex (scalar)); }
181
182 FloatComplexNDArray float_complex_array_value (bool = false) const
183 { return FloatComplexNDArray (dim_vector (1, 1), FloatComplex (scalar)); }
164 184
165 charNDArray 185 charNDArray
166 char_array_value (bool = false) const 186 char_array_value (bool = false) const
167 { 187 {
168 charNDArray retval (dim_vector (1, 1)); 188 charNDArray retval (dim_vector (1, 1));