# Copyright (C) 2003-2016 John W. Eaton
#
# 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/>.

# NOTE: if this file changes, you must run bootstrap and configure to
# rebuild the source file lists for Make.

# types
#
# key typename object-type header fwd-decl-ok scalar-zero
#
# object-type is one of
#
#   S:  scalar
#   V:  vector
#
ccv ComplexColumnVector V CColVector.h YES 0.0
crv ComplexRowVector V CRowVector.h YES 0.0
cs Complex S oct-cmplx.h NO 0.0
cv ColumnVector V dColVector.h YES 0.0
rv RowVector V dRowVector.h YES 0.0
s double S NONE NO 0.0
fccv FloatComplexColumnVector V fCColVector.h YES 0.0
fcrv FloatComplexRowVector V fCRowVector.h YES 0.0
fcs FloatComplex S oct-cmplx.h NO 0.0
fcv FloatColumnVector V fColVector.h YES 0.0
frv FloatRowVector V fRowVector.h YES 0.0
fs float S NONE NO 0.0
#
# vector operators
#
# result_t lhs_t rhs_t op-type
#
# op-type is one of
#
#   B: binary ops, + - * /
#   C: comparison ops, < <= == != >= >
#   E: == != (Only one of C or E can be used!!)
#   L: logical ops, & |
#
# though we are currently defining only binary ops for vectors.
#
ccv ccv cv B
ccv ccv s B
crv crv rv B
crv crv s B
ccv cs cv B
crv cs rv B
ccv cv ccv B
ccv cv cs B
crv rv crv B
crv rv cs B
ccv s ccv B
crv s crv B
fccv fccv fcv B
fccv fccv fs B
fcrv fcrv frv B
fcrv fcrv fs B
fccv fcs fcv B
fcrv fcs frv B
fccv fcv fccv B
fccv fcv fcs B
fcrv frv fcrv B
fcrv frv fcs B
fccv fs fccv B
fcrv fs fcrv B
