# HG changeset patch # User Markus Mützel # Date 1639819560 -3600 # Node ID 6ffa6dbbf42a9c055a3b178d2b14a21f23fc1085 # Parent 07ac556286913e1779635e2af547ca72224e43e0# Parent 6f07492c9c20c6d41994689861cae0b85a60e65e maint: merge stable to default. diff -r 07ac55628691 -r 6ffa6dbbf42a liboctave/array/CSparse.h --- a/liboctave/array/CSparse.h Fri Dec 17 21:33:01 2021 +0100 +++ b/liboctave/array/CSparse.h Sat Dec 18 10:26:00 2021 +0100 @@ -39,12 +39,7 @@ #include "dMatrix.h" #include "dNDArray.h" #include "oct-cmplx.h" - -class PermMatrix; -class DiagMatrix; -class ComplexDiagMatrix; -class SparseMatrix; -class SparseBoolMatrix; +#include "mx-fwd.h" class OCTAVE_API diff -r 07ac55628691 -r 6ffa6dbbf42a liboctave/array/MatrixType.h --- a/liboctave/array/MatrixType.h Fri Dec 17 21:33:01 2021 +0100 +++ b/liboctave/array/MatrixType.h Sat Dec 18 10:26:00 2021 +0100 @@ -28,14 +28,9 @@ #include "octave-config.h" -#include "MSparse.h" +#include "mx-fwd.h" -class Matrix; -class ComplexMatrix; -class FloatMatrix; -class FloatComplexMatrix; -class SparseMatrix; -class SparseComplexMatrix; +#include "MSparse.h" class MatrixType diff -r 07ac55628691 -r 6ffa6dbbf42a liboctave/array/Sparse.h --- a/liboctave/array/Sparse.h Fri Dec 17 21:33:01 2021 +0100 +++ b/liboctave/array/Sparse.h Sat Dec 18 10:26:00 2021 +0100 @@ -37,8 +37,7 @@ #include "Array-fwd.h" #include "Sparse-fwd.h" - -class PermMatrix; +#include "mx-fwd.h" // Two dimensional sparse class. Handles the reference counting for // all the derived classes. diff -r 07ac55628691 -r 6ffa6dbbf42a liboctave/array/boolSparse.h --- a/liboctave/array/boolSparse.h Fri Dec 17 21:33:01 2021 +0100 +++ b/liboctave/array/boolSparse.h Sat Dec 18 10:26:00 2021 +0100 @@ -33,8 +33,7 @@ #include "Sparse.h" #include "boolMatrix.h" #include "boolNDArray.h" - -class SparseMatrix; +#include "mx-fwd.h" class OCTAVE_API diff -r 07ac55628691 -r 6ffa6dbbf42a liboctave/array/dSparse.h --- a/liboctave/array/dSparse.h Fri Dec 17 21:33:01 2021 +0100 +++ b/liboctave/array/dSparse.h Sat Dec 18 10:26:00 2021 +0100 @@ -28,6 +28,8 @@ #include "octave-config.h" +#include "mx-fwd.h" + #include "CColVector.h" #include "CMatrix.h" #include "DET.h" @@ -38,11 +40,6 @@ #include "dMatrix.h" #include "dNDArray.h" -class PermMatrix; -class DiagMatrix; -class SparseComplexMatrix; -class SparseBoolMatrix; - class SparseMatrix : public MSparse { diff -r 07ac55628691 -r 6ffa6dbbf42a liboctave/array/intNDArray.h --- a/liboctave/array/intNDArray.h Fri Dec 17 21:33:01 2021 +0100 +++ b/liboctave/array/intNDArray.h Sat Dec 18 10:26:00 2021 +0100 @@ -29,11 +29,10 @@ #include "octave-config.h" #include "intNDArray-fwd.h" +#include "mx-fwd.h" #include "MArray.h" #include "boolNDArray.h" -class NDArray; - template class intNDArray : public MArray diff -r 07ac55628691 -r 6ffa6dbbf42a liboctave/array/module.mk --- a/liboctave/array/module.mk Fri Dec 17 21:33:01 2021 +0100 +++ b/liboctave/array/module.mk Sat Dec 18 10:26:00 2021 +0100 @@ -48,6 +48,7 @@ %reldir%/int8NDArray.h \ %reldir%/intNDArray-fwd.h \ %reldir%/intNDArray.h \ + %reldir%/mx-fwd.h \ %reldir%/range-fwd.h \ %reldir%/uint16NDArray.h \ %reldir%/uint32NDArray.h \ diff -r 07ac55628691 -r 6ffa6dbbf42a liboctave/array/mx-fwd.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/liboctave/array/mx-fwd.h Sat Dec 18 10:26:00 2021 +0100 @@ -0,0 +1,66 @@ +//////////////////////////////////////////////////////////////////////// +// +// Copyright (C) 2021 The Octave Project Developers +// +// See the file COPYRIGHT.md in the top-level directory of this +// distribution or . +// +// 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 +// . +// +//////////////////////////////////////////////////////////////////////// + +#if ! defined (octave_mx_fwd_h) +#define octave_mx_fwd_h 1 + +#include "octave-config.h" + +class OCTAVE_API Matrix; +class OCTAVE_API ComplexMatrix; +class OCTAVE_API FloatMatrix; +class OCTAVE_API FloatComplexMatrix; +class OCTAVE_API boolMatrix; +class OCTAVE_API charMatrix; + +class OCTAVE_API NDArray; +class OCTAVE_API ComplexNDArray; +class OCTAVE_API FloatNDArray; +class OCTAVE_API FloatComplexNDArray; +class OCTAVE_API boolNDArray; +class OCTAVE_API charNDArray; + +class OCTAVE_API ColumnVector; +class OCTAVE_API ComplexColumnVector; +class OCTAVE_API FloatColumnVector; +class OCTAVE_API FloatComplexColumnVector; + +class OCTAVE_API RowVector; +class OCTAVE_API ComplexRowVector; +class OCTAVE_API FloatRowVector; +class OCTAVE_API FloatComplexRowVector; + +class OCTAVE_API SparseMatrix; +class OCTAVE_API SparseComplexMatrix; +class OCTAVE_API SparseBoolMatrix; + +class OCTAVE_API DiagMatrix; +class OCTAVE_API ComplexDiagMatrix; +class OCTAVE_API FloatDiagMatrix; +class OCTAVE_API FloatComplexDiagMatrix; + +class OCTAVE_API PermMatrix; + +#endif diff -r 07ac55628691 -r 6ffa6dbbf42a liboctave/numeric/DAEFunc.h --- a/liboctave/numeric/DAEFunc.h Fri Dec 17 21:33:01 2021 +0100 +++ b/liboctave/numeric/DAEFunc.h Sat Dec 18 10:26:00 2021 +0100 @@ -28,8 +28,7 @@ #include "octave-config.h" -class Matrix; -class ColumnVector; +#include "mx-fwd.h" class DAEFunc diff -r 07ac55628691 -r 6ffa6dbbf42a liboctave/numeric/DASPK.h --- a/liboctave/numeric/DASPK.h Fri Dec 17 21:33:01 2021 +0100 +++ b/liboctave/numeric/DASPK.h Sat Dec 18 10:26:00 2021 +0100 @@ -33,7 +33,7 @@ #include "Array.h" #include "DASPK-opts.h" -class Matrix; +#include "mx-fwd.h" class OCTAVE_API diff -r 07ac55628691 -r 6ffa6dbbf42a liboctave/numeric/DASSL.h --- a/liboctave/numeric/DASSL.h Fri Dec 17 21:33:01 2021 +0100 +++ b/liboctave/numeric/DASSL.h Sat Dec 18 10:26:00 2021 +0100 @@ -30,11 +30,11 @@ #include +#include "mx-fwd.h" + #include "Array.h" #include "DASSL-opts.h" -class Matrix; - class OCTAVE_API DASSL : public DAE, public DASSL_options diff -r 07ac55628691 -r 6ffa6dbbf42a liboctave/numeric/EIG.h --- a/liboctave/numeric/EIG.h Fri Dec 17 21:33:01 2021 +0100 +++ b/liboctave/numeric/EIG.h Sat Dec 18 10:26:00 2021 +0100 @@ -30,11 +30,11 @@ #include +#include "mx-fwd.h" + #include "CColVector.h" #include "CMatrix.h" -class Matrix; - class OCTAVE_API EIG diff -r 07ac55628691 -r 6ffa6dbbf42a liboctave/numeric/ODEFunc.h --- a/liboctave/numeric/ODEFunc.h Fri Dec 17 21:33:01 2021 +0100 +++ b/liboctave/numeric/ODEFunc.h Sat Dec 18 10:26:00 2021 +0100 @@ -28,8 +28,7 @@ #include "octave-config.h" -class Matrix; -class ColumnVector; +#include "mx-fwd.h" class ODEFunc diff -r 07ac55628691 -r 6ffa6dbbf42a liboctave/numeric/ODESFunc.h --- a/liboctave/numeric/ODESFunc.h Fri Dec 17 21:33:01 2021 +0100 +++ b/liboctave/numeric/ODESFunc.h Sat Dec 18 10:26:00 2021 +0100 @@ -28,9 +28,9 @@ #include "octave-config.h" -#include "dMatrix.h" +#include "mx-fwd.h" -class ColumnVector; +#include "dMatrix.h" class ODESFunc diff -r 07ac55628691 -r 6ffa6dbbf42a liboctave/numeric/eigs-base.h --- a/liboctave/numeric/eigs-base.h Fri Dec 17 21:33:01 2021 +0100 +++ b/liboctave/numeric/eigs-base.h Sat Dec 18 10:26:00 2021 +0100 @@ -32,13 +32,9 @@ #include #include +#include "mx-fwd.h" #include "oct-cmplx.h" -class ColumnVector; -class ComplexColumnVector; -class Matrix; -class ComplexMatrix; - typedef std::function EigsFunc; diff -r 07ac55628691 -r 6ffa6dbbf42a liboctave/numeric/fEIG.h --- a/liboctave/numeric/fEIG.h Fri Dec 17 21:33:01 2021 +0100 +++ b/liboctave/numeric/fEIG.h Sat Dec 18 10:26:00 2021 +0100 @@ -30,11 +30,11 @@ #include +#include "mx-fwd.h" + #include "fCColVector.h" #include "fCMatrix.h" -class FloatMatrix; - class OCTAVE_API FloatEIG diff -r 07ac55628691 -r 6ffa6dbbf42a liboctave/numeric/lo-specfun.h --- a/liboctave/numeric/lo-specfun.h Fri Dec 17 21:33:01 2021 +0100 +++ b/liboctave/numeric/lo-specfun.h Sat Dec 18 10:26:00 2021 +0100 @@ -28,22 +28,11 @@ #include "octave-config.h" +#include "mx-fwd.h" + #include "Array.h" #include "oct-cmplx.h" -class ComplexColumnVector; -class ComplexMatrix; -class ComplexNDArray; -class FloatComplexColumnVector; -class FloatComplexMatrix; -class FloatComplexNDArray; -class FloatMatrix; -class FloatNDArray; -class FloatRowVector; -class Matrix; -class NDArray; -class RowVector; - namespace octave { namespace math diff -r 07ac55628691 -r 6ffa6dbbf42a liboctave/numeric/lu.h --- a/liboctave/numeric/lu.h Fri Dec 17 21:33:01 2021 +0100 +++ b/liboctave/numeric/lu.h Sat Dec 18 10:26:00 2021 +0100 @@ -28,10 +28,9 @@ #include "octave-config.h" -#include "Array.h" +#include "mx-fwd.h" -class ColumnVector; -class PermMatrix; +#include "Array.h" namespace octave { diff -r 07ac55628691 -r 6ffa6dbbf42a liboctave/numeric/oct-convn.h --- a/liboctave/numeric/oct-convn.h Fri Dec 17 21:33:01 2021 +0100 +++ b/liboctave/numeric/oct-convn.h Sat Dec 18 10:26:00 2021 +0100 @@ -28,25 +28,7 @@ #include "octave-config.h" -class ColumnVector; -class RowVector; -class Matrix; -class NDArray; - -class ComplexColumnVector; -class ComplexRowVector; -class ComplexMatrix; -class ComplexNDArray; - -class FloatColumnVector; -class FloatRowVector; -class FloatMatrix; -class FloatNDArray; - -class FloatComplexColumnVector; -class FloatComplexRowVector; -class FloatComplexMatrix; -class FloatComplexNDArray; +#include "mx-fwd.h" // The remaining includes can be removed when the global enum // declaration, the convert_enum function, and the deprecated functions diff -r 07ac55628691 -r 6ffa6dbbf42a liboctave/numeric/oct-norm.h --- a/liboctave/numeric/oct-norm.h Fri Dec 17 21:33:01 2021 +0100 +++ b/liboctave/numeric/oct-norm.h Sat Dec 18 10:26:00 2021 +0100 @@ -28,26 +28,9 @@ #include "octave-config.h" -#include "oct-cmplx.h" - -class ColumnVector; -class RowVector; -class Matrix; - -class FloatColumnVector; -class FloatRowVector; -class FloatMatrix; +#include "mx-fwd.h" -class ComplexColumnVector; -class ComplexRowVector; -class ComplexMatrix; - -class FloatComplexColumnVector; -class FloatComplexRowVector; -class FloatComplexMatrix; - -class SparseMatrix; -class SparseComplexMatrix; +#include "oct-cmplx.h" // The remaining includes can be removed when the deprecated functions // at the end of this file are removed. diff -r 07ac55628691 -r 6ffa6dbbf42a liboctave/numeric/sparse-chol.h --- a/liboctave/numeric/sparse-chol.h Fri Dec 17 21:33:01 2021 +0100 +++ b/liboctave/numeric/sparse-chol.h Sat Dec 18 10:26:00 2021 +0100 @@ -30,11 +30,9 @@ #include -#include "CSparse.h" +#include "mx-fwd.h" -class RowVector; -class SparseMatrix; -class SparseComplexMatrix; +#include "CSparse.h" namespace octave { diff -r 07ac55628691 -r 6ffa6dbbf42a liboctave/numeric/sparse-lu.h --- a/liboctave/numeric/sparse-lu.h Fri Dec 17 21:33:01 2021 +0100 +++ b/liboctave/numeric/sparse-lu.h Sat Dec 18 10:26:00 2021 +0100 @@ -28,13 +28,12 @@ #include "octave-config.h" +#include "mx-fwd.h" + #include "MArray.h" #include "dMatrix.h" #include "dSparse.h" -class ColumnVector; -class PermMatrix; - namespace octave { namespace math @@ -46,6 +45,7 @@ template class + OCTAVE_API sparse_lu { public: diff -r 07ac55628691 -r 6ffa6dbbf42a liboctave/numeric/sparse-qr.h --- a/liboctave/numeric/sparse-qr.h Fri Dec 17 21:33:01 2021 +0100 +++ b/liboctave/numeric/sparse-qr.h Sat Dec 18 10:26:00 2021 +0100 @@ -32,12 +32,7 @@ #include "oct-cmplx.h" #include "MArray-fwd.h" - -class Matrix; -class ComplexMatrix; -class SparseMatrix; -class SparseComplexMatrix; -class ColumnVector; +#include "mx-fwd.h" namespace octave { diff -r 07ac55628691 -r 6ffa6dbbf42a liboctave/operators/Sparse-op-decls.h --- a/liboctave/operators/Sparse-op-decls.h Fri Dec 17 21:33:01 2021 +0100 +++ b/liboctave/operators/Sparse-op-decls.h Sat Dec 18 10:26:00 2021 +0100 @@ -28,7 +28,7 @@ #include "octave-config.h" -class SparseBoolMatrix; +#include "mx-fwd.h" #define SPARSE_BIN_OP_DECL(R, OP, X, Y, API) \ extern API R OP (const X&, const Y&) diff -r 07ac55628691 -r 6ffa6dbbf42a liboctave/operators/mx-defs.h --- a/liboctave/operators/mx-defs.h Fri Dec 17 21:33:01 2021 +0100 +++ b/liboctave/operators/mx-defs.h Sat Dec 18 10:26:00 2021 +0100 @@ -30,36 +30,7 @@ // Classes we declare. -class Matrix; -class ComplexMatrix; -class FloatMatrix; -class FloatComplexMatrix; -class boolMatrix; -class charMatrix; - -class NDArray; -class ComplexNDArray; -class FloatNDArray; -class FloatComplexNDArray; -class boolNDArray; -class charNDArray; - -class ColumnVector; -class ComplexColumnVector; -class FloatColumnVector; -class FloatComplexColumnVector; - -class RowVector; -class ComplexRowVector; -class FloatRowVector; -class FloatComplexRowVector; - -class DiagMatrix; -class ComplexDiagMatrix; -class FloatDiagMatrix; -class FloatComplexDiagMatrix; - -class PermMatrix; +#include "mx-fwd.h" template class aepbalance; diff -r 07ac55628691 -r 6ffa6dbbf42a liboctave/operators/mx-op-decl.h --- a/liboctave/operators/mx-op-decl.h Fri Dec 17 21:33:01 2021 +0100 +++ b/liboctave/operators/mx-op-decl.h Sat Dec 18 10:26:00 2021 +0100 @@ -31,8 +31,7 @@ #define BIN_OP_DECL(R, OP, X, Y, API) \ extern API R OP (const X&, const Y&) -class boolMatrix; -class boolNDArray; +#include "mx-fwd.h" #define CMP_OP_DECL(OP, X, Y, API) \ extern API boolMatrix OP (const X&, const Y&)