Mercurial > hg > octave-nkf
view libinterp/octave-value/ov-flt-cx-mat.cc @ 19295:56bc1464ec59
Implement "isa" for classdef objects.
* ov.h (octave_value::is_instance_of): New method.
* ov-base.h (octave_base_value::is_instance_of): Likewise.
* ov-class.h (octave_class::is_instance_of): New method declaration.
* ov-class.cc (octave_class::is_instance_of): Implement it with
find_parent_class.
* ov-classdef.h (octave_classdef::is_instance_of): New method
declaration.
* ov-classdef.cc (octave_classdef::is_instance_of): Implement it
with lookup_class and is_superclass.
author | Michael Goffioul <michael.goffioul@gmail.com> |
---|---|
date | Sat, 20 Sep 2014 12:43:25 -0400 |
parents | 6a71e5030df5 |
children | d0c73e23a505 |
line wrap: on
line source
/* Copyright (C) 1996-2013 John W. Eaton Copyright (C) 2009-2010 VZLU Prague This file is part of Octave. Octave is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version. Octave is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with Octave; see the file COPYING. If not, see <http://www.gnu.org/licenses/>. */ #ifdef HAVE_CONFIG_H #include <config.h> #endif #include <iostream> #include <vector> #include "data-conv.h" #include "lo-ieee.h" #include "lo-specfun.h" #include "lo-mappers.h" #include "mx-base.h" #include "mach-info.h" #include "oct-locbuf.h" #include "gripes.h" #include "mxarray.h" #include "oct-obj.h" #include "oct-stream.h" #include "ops.h" #include "ov-base.h" #include "ov-base-mat.h" #include "ov-base-mat.cc" #include "ov-complex.h" #include "ov-flt-complex.h" #include "ov-cx-mat.h" #include "ov-flt-cx-mat.h" #include "ov-re-mat.h" #include "ov-flt-re-mat.h" #include "ov-scalar.h" #include "ov-float.h" #include "pr-output.h" #include "ops.h" #include "byte-swap.h" #include "ls-oct-ascii.h" #include "ls-hdf5.h" #include "ls-utils.h" template class octave_base_matrix<FloatComplexNDArray>; DEFINE_OCTAVE_ALLOCATOR (octave_float_complex_matrix); DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA (octave_float_complex_matrix, "float complex matrix", "single"); octave_base_value * octave_float_complex_matrix::try_narrowing_conversion (void) { octave_base_value *retval = 0; if (matrix.numel () == 1) { FloatComplex c = matrix (0); if (std::imag (c) == 0.0)