# HG changeset patch # User jwe # Date 1069830162 0 # Node ID 334a27c8f4537d87ad9b15f9b030a5822c77e628 # Parent 7849788ca4bd8a63a00a2829df33614bc0cb6096 [project @ 2003-11-26 07:02:42 by jwe] diff -r 7849788ca4bd -r 334a27c8f453 liboctave/Array-util.cc --- a/liboctave/Array-util.cc Wed Nov 26 04:28:39 2003 +0000 +++ b/liboctave/Array-util.cc Wed Nov 26 07:02:42 2003 +0000 @@ -25,6 +25,8 @@ #endif #include "Array-util.h" +#include "dim-vector.h" +#include "lo-error.h" bool index_in_bounds (const Array& ra_idx, const dim_vector& dimensions) @@ -531,6 +533,35 @@ return retval; } +void +gripe_nonconformant (const char *op, int op1_len, int op2_len) +{ + (*current_liboctave_error_handler) + ("%s: nonconformant arguments (op1 len: %d, op2 len: %d)", + op, op1_len, op2_len); +} + +void +gripe_nonconformant (const char *op, int op1_nr, int op1_nc, + int op2_nr, int op2_nc) +{ + (*current_liboctave_error_handler) + ("%s: nonconformant arguments (op1 is %dx%d, op2 is %dx%d)", + op, op1_nr, op1_nc, op2_nr, op2_nc); +} + +void +gripe_nonconformant (const char *op, dim_vector& op1_dims, + dim_vector& op2_dims) +{ + std::string op1_dims_str = op1_dims.str (); + std::string op2_dims_str = op2_dims.str (); + + (*current_liboctave_error_handler) + ("%s: nonconformant arguments (op1 is %s, op2 is %s)", + op, op1_dims_str.c_str (), op2_dims_str.c_str ()); +} + /* ;;; Local Variables: *** ;;; mode: C++ *** diff -r 7849788ca4bd -r 334a27c8f453 liboctave/Array-util.h --- a/liboctave/Array-util.h Wed Nov 26 04:28:39 2003 +0000 +++ b/liboctave/Array-util.h Wed Nov 26 07:02:42 2003 +0000 @@ -89,6 +89,16 @@ extern Array calc_permutated_idx (const Array& old_idx, const Array& perm_vec, bool inv); + +extern void gripe_nonconformant (const char *op, int op1_len, int op2_len); + +extern void gripe_nonconformant (const char *op, int op1_nr, int op1_nc, + int op2_nr, int op2_nc); + + +extern void gripe_nonconformant (const char *op, dim_vector& op1_dims, + dim_vector& op2_dims); + #endif /* diff -r 7849788ca4bd -r 334a27c8f453 liboctave/CColVector.cc --- a/liboctave/CColVector.cc Wed Nov 26 04:28:39 2003 +0000 +++ b/liboctave/CColVector.cc Wed Nov 26 07:02:42 2003 +0000 @@ -31,6 +31,7 @@ #include +#include "Array-util.h" #include "f77-fcn.h" #include "lo-error.h" #include "mx-base.h" diff -r 7849788ca4bd -r 334a27c8f453 liboctave/CDiagMatrix.cc --- a/liboctave/CDiagMatrix.cc Wed Nov 26 04:28:39 2003 +0000 +++ b/liboctave/CDiagMatrix.cc Wed Nov 26 07:02:42 2003 +0000 @@ -31,6 +31,7 @@ #include +#include "Array-util.h" #include "lo-error.h" #include "mx-base.h" #include "mx-inlines.cc" diff -r 7849788ca4bd -r 334a27c8f453 liboctave/CMatrix.cc --- a/liboctave/CMatrix.cc Wed Nov 26 04:28:39 2003 +0000 +++ b/liboctave/CMatrix.cc Wed Nov 26 07:02:42 2003 +0000 @@ -38,6 +38,7 @@ #include #endif +#include "Array-util.h" #include "CMatrix.h" #include "CmplxAEPBAL.h" #include "CmplxDET.h" diff -r 7849788ca4bd -r 334a27c8f453 liboctave/CRowVector.cc --- a/liboctave/CRowVector.cc Wed Nov 26 04:28:39 2003 +0000 +++ b/liboctave/CRowVector.cc Wed Nov 26 07:02:42 2003 +0000 @@ -31,6 +31,7 @@ #include +#include "Array-util.h" #include "f77-fcn.h" #include "lo-error.h" #include "mx-base.h" diff -r 7849788ca4bd -r 334a27c8f453 liboctave/ChangeLog --- a/liboctave/ChangeLog Wed Nov 26 04:28:39 2003 +0000 +++ b/liboctave/ChangeLog Wed Nov 26 07:02:42 2003 +0000 @@ -1,3 +1,21 @@ +2003-11-26 John W. Eaton + + * boolNDArray.cc: Define BOOL ops. Define mixed CMP ops. + * boolNDArray.h: Declare BOOL ops. Declare mixed CMP ops. + +2003-11-25 John W. Eaton + + * mk-ops.awk: Also emit #include "Array-util.h". + + * mx-ops: Add bool, boolMatrix, and boolNDarray types. + Add bnda x bnda, b x bnda, and bnda x b ops. + + * MArray-misc.cc: Delete. + * Makefile.in (MATRIX_SRC): Remove it from the list. + + * Array-util.h, Array-util.cc (gripe_nonconformant): Move here from + MArray.h, MArray2.h, MArrayN.h, and MArray-misc.cc. + 2003-11-24 John W. Eaton * dbleQR.cc (QR::init): Use separate pwork pointers. diff -r 7849788ca4bd -r 334a27c8f453 liboctave/MArray-misc.cc --- a/liboctave/MArray-misc.cc Wed Nov 26 04:28:39 2003 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -/* - -Copyright (C) 1996, 1997 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 2, 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, write to the Free -Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - -*/ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include "MArray.h" -#include "MArray2.h" -#include "dim-vector.h" -#include "lo-error.h" - -void -gripe_nonconformant (const char *op, int op1_len, int op2_len) -{ - (*current_liboctave_error_handler) - ("%s: nonconformant arguments (op1 len: %d, op2 len: %d)", - op, op1_len, op2_len); -} - -void -gripe_nonconformant (const char *op, int op1_nr, int op1_nc, - int op2_nr, int op2_nc) -{ - (*current_liboctave_error_handler) - ("%s: nonconformant arguments (op1 is %dx%d, op2 is %dx%d)", - op, op1_nr, op1_nc, op2_nr, op2_nc); -} - -void -gripe_nonconformant (const char *op, dim_vector& op1_dims, - dim_vector& op2_dims) -{ - std::string op1_dims_str = op1_dims.str (); - std::string op2_dims_str = op2_dims.str (); - - (*current_liboctave_error_handler) - ("%s: nonconformant arguments (op1 is %s, op2 is %s)", - op, op1_dims_str.c_str (), op2_dims_str.c_str ()); -} - - -/* -;;; Local Variables: *** -;;; mode: C++ *** -;;; End: *** -*/ diff -r 7849788ca4bd -r 334a27c8f453 liboctave/MArray.cc --- a/liboctave/MArray.cc Wed Nov 26 04:28:39 2003 +0000 +++ b/liboctave/MArray.cc Wed Nov 26 07:02:42 2003 +0000 @@ -29,6 +29,7 @@ #endif #include "MArray.h" +#include "Array-util.h" #include "lo-error.h" #include "MArray-defs.h" diff -r 7849788ca4bd -r 334a27c8f453 liboctave/MArray.h --- a/liboctave/MArray.h Wed Nov 26 04:28:39 2003 +0000 +++ b/liboctave/MArray.h Wed Nov 26 07:02:42 2003 +0000 @@ -72,10 +72,6 @@ // MARRAY_OPS_FRIEND_DECLS (MArray) }; -// XXX FIXME XXX -- there must be a better place for this... -extern void -gripe_nonconformant (const char *op, int op1_len, int op2_len); - #endif /* diff -r 7849788ca4bd -r 334a27c8f453 liboctave/MArray2.cc --- a/liboctave/MArray2.cc Wed Nov 26 04:28:39 2003 +0000 +++ b/liboctave/MArray2.cc Wed Nov 26 07:02:42 2003 +0000 @@ -29,6 +29,7 @@ #endif #include "MArray2.h" +#include "Array-util.h" #include "lo-error.h" #include "MArray-defs.h" diff -r 7849788ca4bd -r 334a27c8f453 liboctave/MArray2.h --- a/liboctave/MArray2.h Wed Nov 26 04:28:39 2003 +0000 +++ b/liboctave/MArray2.h Wed Nov 26 07:02:42 2003 +0000 @@ -80,10 +80,6 @@ // MARRAY_OPS_FRIEND_DECLS (MArray2) }; -extern void -gripe_nonconformant (const char *op, int op1_nr, int op1_nc, - int op2_nr, int op2_nc); - #endif /* diff -r 7849788ca4bd -r 334a27c8f453 liboctave/MArrayN.cc --- a/liboctave/MArrayN.cc Wed Nov 26 04:28:39 2003 +0000 +++ b/liboctave/MArrayN.cc Wed Nov 26 07:02:42 2003 +0000 @@ -29,6 +29,7 @@ #endif #include "MArrayN.h" +#include "Array-util.h" #include "ArrayN-idx.h" #include "lo-error.h" diff -r 7849788ca4bd -r 334a27c8f453 liboctave/MArrayN.h --- a/liboctave/MArrayN.h Wed Nov 26 04:28:39 2003 +0000 +++ b/liboctave/MArrayN.h Wed Nov 26 07:02:42 2003 +0000 @@ -71,9 +71,6 @@ } }; -extern void -gripe_nonconformant (const char *op, dim_vector& op1_dims, dim_vector& op2_dims); - #endif /* diff -r 7849788ca4bd -r 334a27c8f453 liboctave/MDiagArray2.cc --- a/liboctave/MDiagArray2.cc Wed Nov 26 04:28:39 2003 +0000 +++ b/liboctave/MDiagArray2.cc Wed Nov 26 07:02:42 2003 +0000 @@ -29,6 +29,7 @@ #endif #include "MDiagArray2.h" +#include "Array-util.h" #include "lo-error.h" #include "MArray-defs.h" diff -r 7849788ca4bd -r 334a27c8f453 liboctave/Makefile.in --- a/liboctave/Makefile.in Wed Nov 26 04:28:39 2003 +0000 +++ b/liboctave/Makefile.in Wed Nov 26 07:02:42 2003 +0000 @@ -77,11 +77,11 @@ CDiagMatrix.cc CMatrix.cc CNDArray.cc CRowVector.cc \ CmplxAEPBAL.cc CmplxCHOL.cc CmplxDET.cc CmplxHESS.cc \ CmplxLU.cc CmplxQR.cc CmplxQRP.cc CmplxSCHUR.cc CmplxSVD.cc \ - EIG.cc MArray-misc.cc boolMatrix.cc \ - boolNDArray.cc chMatrix.cc chNDArray.cc dColVector.cc \ - dDiagMatrix.cc dMatrix.cc dNDArray.cc dRowVector.cc \ - dbleAEPBAL.cc dbleCHOL.cc dbleDET.cc dbleHESS.cc dbleLU.cc \ - dbleQR.cc dbleQRP.cc dbleSCHUR.cc dbleSVD.cc + EIG.cc boolMatrix.cc boolNDArray.cc chMatrix.cc \ + chNDArray.cc dColVector.cc dDiagMatrix.cc dMatrix.cc \ + dNDArray.cc dRowVector.cc dbleAEPBAL.cc dbleCHOL.cc \ + dbleDET.cc dbleHESS.cc dbleLU.cc dbleQR.cc dbleQRP.cc \ + dbleSCHUR.cc dbleSVD.cc MX_OP_SRC := $(shell $(AWK) -f $(srcdir)/mk-ops.awk prefix=mx list_cc_files=1 $(srcdir)/mx-ops) diff -r 7849788ca4bd -r 334a27c8f453 liboctave/boolMatrix.cc --- a/liboctave/boolMatrix.cc Wed Nov 26 04:28:39 2003 +0000 +++ b/liboctave/boolMatrix.cc Wed Nov 26 07:02:42 2003 +0000 @@ -31,6 +31,7 @@ #include +#include "Array-util.h" #include "lo-error.h" #include "str-vec.h" #include "mx-base.h" diff -r 7849788ca4bd -r 334a27c8f453 liboctave/boolNDArray.cc --- a/liboctave/boolNDArray.cc Wed Nov 26 04:28:39 2003 +0000 +++ b/liboctave/boolNDArray.cc Wed Nov 26 07:02:42 2003 +0000 @@ -103,8 +103,15 @@ return ::compute_index (ra_idx, dimensions); } +NDND_BOOL_OPS (boolNDArray, boolNDArray, false) NDND_CMP_OPS (boolNDArray, , boolNDArray, ) +NDS_BOOL_OPS (boolNDArray, bool, false) +NDS_CMP_OPS (boolNDArray, , bool, ) + +SND_BOOL_OPS (bool, boolNDArray, false) +SND_CMP_OPS (bool, , boolNDArray, ) + /* ;;; Local Variables: *** ;;; mode: C++ *** diff -r 7849788ca4bd -r 334a27c8f453 liboctave/boolNDArray.h --- a/liboctave/boolNDArray.h Wed Nov 26 04:28:39 2003 +0000 +++ b/liboctave/boolNDArray.h Wed Nov 26 07:02:42 2003 +0000 @@ -99,8 +99,15 @@ boolNDArray (bool *d, dim_vector& dv) : ArrayN (d, dv) { } }; +NDND_BOOL_OP_DECLS (boolNDArray, boolNDArray) NDND_CMP_OP_DECLS (boolNDArray, boolNDArray) +NDS_BOOL_OP_DECLS (boolNDArray, bool) +NDS_CMP_OP_DECLS (boolNDArray, bool) + +SND_BOOL_OP_DECLS (bool, boolNDArray) +SND_CMP_OP_DECLS (bool, boolNDArray) + #endif /* diff -r 7849788ca4bd -r 334a27c8f453 liboctave/dColVector.cc --- a/liboctave/dColVector.cc Wed Nov 26 04:28:39 2003 +0000 +++ b/liboctave/dColVector.cc Wed Nov 26 07:02:42 2003 +0000 @@ -31,6 +31,7 @@ #include +#include "Array-util.h" #include "f77-fcn.h" #include "lo-error.h" #include "mx-base.h" diff -r 7849788ca4bd -r 334a27c8f453 liboctave/dDiagMatrix.cc --- a/liboctave/dDiagMatrix.cc Wed Nov 26 04:28:39 2003 +0000 +++ b/liboctave/dDiagMatrix.cc Wed Nov 26 07:02:42 2003 +0000 @@ -31,6 +31,7 @@ #include +#include "Array-util.h" #include "lo-error.h" #include "mx-base.h" #include "mx-inlines.cc" diff -r 7849788ca4bd -r 334a27c8f453 liboctave/dMatrix.cc --- a/liboctave/dMatrix.cc Wed Nov 26 04:28:39 2003 +0000 +++ b/liboctave/dMatrix.cc Wed Nov 26 07:02:42 2003 +0000 @@ -33,6 +33,7 @@ #include +#include "Array-util.h" #include "byte-swap.h" #include "dMatrix.h" #include "dbleAEPBAL.h" diff -r 7849788ca4bd -r 334a27c8f453 liboctave/dRowVector.cc --- a/liboctave/dRowVector.cc Wed Nov 26 04:28:39 2003 +0000 +++ b/liboctave/dRowVector.cc Wed Nov 26 07:02:42 2003 +0000 @@ -31,6 +31,7 @@ #include +#include "Array-util.h" #include "f77-fcn.h" #include "lo-error.h" #include "mx-base.h" diff -r 7849788ca4bd -r 334a27c8f453 liboctave/mk-ops.awk --- a/liboctave/mk-ops.awk Wed Nov 26 04:28:39 2003 +0000 +++ b/liboctave/mk-ops.awk Wed Nov 26 07:02:42 2003 +0000 @@ -151,6 +151,8 @@ print "#include " >> cc_file; print "#endif" >> cc_file; + print "#include \"Array-util.h\"" >> cc_file; + printf ("#include \"%s\"\n", h_file) >> cc_file; for (i in bool_headers) diff -r 7849788ca4bd -r 334a27c8f453 liboctave/mx-ops --- a/liboctave/mx-ops Wed Nov 26 04:28:39 2003 +0000 +++ b/liboctave/mx-ops Wed Nov 26 07:02:42 2003 +0000 @@ -1,4 +1,7 @@ # types +b bool S NONE NO +bm boolMatrix ND boolMatrix.h YES +bnda boolNDArray ND boolNDArray.h YES cdm ComplexDiagMatrix DM CDiagMatrix.h YES cm ComplexMatrix M CMatrix.h YES cnda ComplexNDArray ND CNDArray.h YES @@ -8,6 +11,9 @@ nda NDArray ND dNDArray.h YES s double S NONE NO # ops +bnda bnda bnda L false +bnda b bnda L false +bnda bnda b L false cdm cdm dm B cdm dm cdm B cm cs cdm B diff -r 7849788ca4bd -r 334a27c8f453 src/ChangeLog --- a/src/ChangeLog Wed Nov 26 04:28:39 2003 +0000 +++ b/src/ChangeLog Wed Nov 26 07:02:42 2003 +0000 @@ -1,5 +1,10 @@ 2003-11-25 John W. Eaton + * OPERATORS/op-b-bm.cc: New file. + + * OPERATORS/op-bm-b.cc (op_el_and, op_el_or): Define and install. + * OPERATORS/op-bm-bm.cc (op_el_and, op_el_or, assign): Likewise. + * ov-str-mat.cc (CHAR_MATRIX_CONV): New macro. * ov-str-mat.h (octave_char_matrix_str::double_value, octave_char_matrix_str::matrix_value, diff -r 7849788ca4bd -r 334a27c8f453 src/Makefile.in --- a/src/Makefile.in Wed Nov 26 04:28:39 2003 +0000 +++ b/src/Makefile.in Wed Nov 26 07:02:42 2003 +0000 @@ -95,8 +95,8 @@ TI_SRC := $(addprefix TEMPLATE-INST/, $(TI_XSRC)) -OP_XSRC := op-b-b.cc op-bm-b.cc op-bm-bm.cc op-cell.cc \ - op-chm.cc op-cm-cm.cc op-cm-cs.cc op-cm-m.cc \ +OP_XSRC := op-b-b.cc op-b-bm.cc op-bm-b.cc op-bm-bm.cc \ + op-cell.cc op-chm.cc op-cm-cm.cc op-cm-cs.cc op-cm-m.cc \ op-cm-s.cc op-cs-cm.cc op-cs-cs.cc op-cs-m.cc \ op-cs-s.cc op-fil-b.cc op-fil-bm.cc op-fil-cm.cc \ op-fil-cs.cc op-fil-m.cc op-fil-s.cc op-fil-lis.cc \ diff -r 7849788ca4bd -r 334a27c8f453 src/OPERATORS/op-b-bm.cc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/OPERATORS/op-b-bm.cc Wed Nov 26 07:02:42 2003 +0000 @@ -0,0 +1,57 @@ +/* + +Copyright (C) 2003 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 2, 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, write to the Free +Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +*/ + +#if defined (__GNUG__) && defined (USE_PRAGMA_INTERFACE_IMPLEMENTATION) +#pragma implementation +#endif + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include "gripes.h" +#include "oct-obj.h" +#include "ov.h" +#include "ov-bool.h" +#include "ov-bool-mat.h" +#include "ov-typeinfo.h" +#include "ops.h" +#include "xdiv.h" +#include "xpow.h" + +// bool matrix by bool ops. + +DEFNDBINOP_FN (el_and, bool, bool_matrix, bool, bool_array, mx_el_and) +DEFNDBINOP_FN (el_or, bool, bool_matrix, bool, bool_array, mx_el_or) + +void +install_b_bm_ops (void) +{ + INSTALL_BINOP (op_el_and, octave_bool, octave_bool_matrix, el_and); + INSTALL_BINOP (op_el_or, octave_bool, octave_bool_matrix, el_or); +} + +/* +;;; Local Variables: *** +;;; mode: C++ *** +;;; End: *** +*/ diff -r 7849788ca4bd -r 334a27c8f453 src/OPERATORS/op-bm-b.cc --- a/src/OPERATORS/op-bm-b.cc Wed Nov 26 04:28:39 2003 +0000 +++ b/src/OPERATORS/op-bm-b.cc Wed Nov 26 07:02:42 2003 +0000 @@ -40,11 +40,17 @@ // bool matrix by bool ops. +DEFNDBINOP_FN (el_and, bool_matrix, bool, bool_array, bool, mx_el_and) +DEFNDBINOP_FN (el_or, bool_matrix, bool, bool_array, bool, mx_el_or) + DEFASSIGNOP_FN (assign, bool_matrix, bool, assign) void install_bm_b_ops (void) { + INSTALL_BINOP (op_el_and, octave_bool_matrix, octave_bool, el_and); + INSTALL_BINOP (op_el_or, octave_bool_matrix, octave_bool, el_or); + INSTALL_ASSIGNOP (op_asn_eq, octave_bool_matrix, octave_bool, assign); } diff -r 7849788ca4bd -r 334a27c8f453 src/OPERATORS/op-bm-bm.cc --- a/src/OPERATORS/op-bm-bm.cc Wed Nov 26 04:28:39 2003 +0000 +++ b/src/OPERATORS/op-bm-bm.cc Wed Nov 26 07:02:42 2003 +0000 @@ -53,6 +53,14 @@ DEFNDBINOP_FN (eq, bool_matrix, bool_matrix, bool_array, bool_array, mx_el_eq) DEFNDBINOP_FN (ne, bool_matrix, bool_matrix, bool_array, bool_array, mx_el_ne) +DEFNDBINOP_FN (el_and, bool_matrix, bool_matrix, bool_array, bool_array, + mx_el_and) + +DEFNDBINOP_FN (el_or, bool_matrix, bool_matrix, bool_array, bool_array, + mx_el_or) + +DEFASSIGNOP_FN (assign, bool_matrix, bool_matrix, assign) + void install_bm_bm_ops (void) { @@ -62,6 +70,11 @@ INSTALL_BINOP (op_eq, octave_bool_matrix, octave_bool_matrix, eq); INSTALL_BINOP (op_ne, octave_bool_matrix, octave_bool_matrix, ne); + + INSTALL_BINOP (op_el_and, octave_bool_matrix, octave_bool_matrix, el_and); + INSTALL_BINOP (op_el_or, octave_bool_matrix, octave_bool_matrix, el_or); + + INSTALL_ASSIGNOP (op_asn_eq, octave_bool_matrix, octave_bool_matrix, assign); } /* diff -r 7849788ca4bd -r 334a27c8f453 src/ops.h --- a/src/ops.h Wed Nov 26 04:28:39 2003 +0000 +++ b/src/ops.h Wed Nov 26 07:02:42 2003 +0000 @@ -23,6 +23,8 @@ #if !defined (octave_ops_h) #define octave_ops_h 1 +#include "Array-util.h" + extern void install_ops (void); #define INSTALL_UNOP(op, t, f) \ diff -r 7849788ca4bd -r 334a27c8f453 src/xdiv.cc --- a/src/xdiv.cc Wed Nov 26 04:28:39 2003 +0000 +++ b/src/xdiv.cc Wed Nov 26 07:02:42 2003 +0000 @@ -26,6 +26,7 @@ #include +#include "Array-util.h" #include "CMatrix.h" #include "dMatrix.h" #include "CNDArray.h" diff -r 7849788ca4bd -r 334a27c8f453 src/xpow.cc --- a/src/xpow.cc Wed Nov 26 04:28:39 2003 +0000 +++ b/src/xpow.cc Wed Nov 26 07:02:42 2003 +0000 @@ -27,6 +27,7 @@ #include #include +#include "Array-util.h" #include "CColVector.h" #include "CDiagMatrix.h" #include "CMatrix.h"