26#if ! defined (octave_ov_complex_h)
27#define octave_ov_complex_h 1
29#include "octave-config.h"
76 type_conv_info numeric_demotion_function ()
const;
81 bool resize_ok =
false);
84 octave::idx_vector index_vector (
bool =
false)
const;
88 return (scalar !=
Complex (0, 0)
89 && ! (octave::math::isnan (scalar.real ())
90 || octave::math::isnan (scalar.imag ())));
103 OCTINTERP_API
double double_value (
bool =
false)
const;
105 OCTINTERP_API
float float_value (
bool =
false)
const;
108 {
return double_value (frc_str_conv); }
111 {
return float_value (frc_str_conv); }
113 OCTINTERP_API
Matrix matrix_value (
bool =
false)
const;
115 OCTINTERP_API
FloatMatrix float_matrix_value (
bool =
false)
const;
119 OCTINTERP_API
FloatNDArray float_array_value (
bool =
false)
const;
130 OCTINTERP_API
Complex complex_value (
bool =
false)
const;
132 OCTINTERP_API
FloatComplex float_complex_value (
bool =
false)
const;
134 OCTINTERP_API
ComplexMatrix complex_matrix_value (
bool =
false)
const;
137 float_complex_matrix_value (
bool =
false)
const;
139 OCTINTERP_API
ComplexNDArray complex_array_value (
bool =
false)
const;
142 float_complex_array_value (
bool =
false)
const;
146 if (octave::math::isnan (scalar))
147 octave::err_nan_to_logical_conversion ();
148 if (warn && scalar != 0.0 && scalar != 1.0)
151 return scalar != 0.0;
156 if (octave::math::isnan (scalar))
157 octave::err_nan_to_logical_conversion ();
158 if (warn && scalar != 0.0 && scalar != 1.0)
178 OCTINTERP_API
bool save_ascii (std::ostream& os);
180 OCTINTERP_API
bool load_ascii (std::istream& is);
182 OCTINTERP_API
bool save_binary (std::ostream& os,
bool save_as_floats);
185 load_binary (std::istream& is,
bool swap,
186 octave::mach_info::float_format fmt);
189 save_hdf5 (
octave_hdf5_id loc_id,
const char *name,
bool save_as_floats);
191 OCTINTERP_API
bool load_hdf5 (
octave_hdf5_id loc_id,
const char *name);
193 int write (octave::stream& os,
int block_size,
195 octave::mach_info::float_format flt_fmt)
const
198 return os.write (
array_value (
true), block_size, output_type,
202 OCTINTERP_API
mxArray * as_mxArray (
bool interleaved)
const;
204 OCTINTERP_API
octave_value map (unary_mapper_t umap)
const;
Vector representing the dimensions (size) of an Array.
octave_complex(const Complex &c)
float float_scalar_value(bool frc_str_conv=false) const
SparseMatrix sparse_matrix_value(bool=false) const
octave_base_value * empty_clone() const
octave_complex(const octave_complex &c)
~octave_complex()=default
bool is_double_type() const
octave_base_value * clone() const
builtin_type_t builtin_type() const
boolNDArray bool_array_value(bool warn=false) const
SparseComplexMatrix sparse_complex_matrix_value(bool=false) const
double scalar_value(bool frc_str_conv=false) const
octave_value any(int=0) const
int write(octave::stream &os, int block_size, oct_data_conv::data_type output_type, int skip, octave::mach_info::float_format flt_fmt) const
bool is_complex_scalar() const
bool bool_value(bool warn=false) const
void resize(octave_idx_type n, const octave_value &rfv=octave_value())
Array< octave_value > array_value() const
void warn_logical_conversion()
std::complex< double > Complex
std::complex< float > FloatComplex
#define DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA_API(API)
octave_complex octave_complex_scalar