/* Example programs from the book Scientific and Engineering Programming in C++: An Introduction with Advanced Techniques and Examples, Addison-Wesley, 1994. (c) COPYRIGHT INTERNATIONAL BUSINESS MACHINES CORPORATION 1994. ALL RIGHTS RESERVED. See README file for further details. */ #ifndef MetricRigidArithmeticH #define MetricRigidArithmeticH #include "Algebra/DivisionAlgebraCategory.h" #include "Algebra/MetricSpaceCategory.h" #include "Vector/DistributingDivisionAlgebra.h" #include "Vector/DistributingMetricSpace.h" #include "Array/RigidArray.h" template class MetricRigidArithmetic1d : public DivisionAlgebraCategory< MetricRigidArithmetic1d, T >, public MetricSpaceCategory< MetricRigidArithmetic1d, double>, public DistributingDivisionAlgebra,T>, public DistributingMetricSpace, double>, public RigidArray1d { public: MetricRigidArithmetic1d() : RigidArray1d() {} //MetricRigidArithmetic1d(Subscript n) : RigidArray1d(n) {} const MetricRigidArithmetic1d& operator=(const Array& rhs) { RigidArray1d::operator=(rhs); return *this; } const MetricRigidArithmetic1d& operator=(const MetricRigidArithmetic1d& rhs) { RigidArray1d::operator=(rhs); return *this; } const MetricRigidArithmetic1d& operator=(const T& rhs) { RigidArray1d::operator=(rhs); return *this; } }; template class MetricRigidArithmetic2d : public DivisionAlgebraCategory< MetricRigidArithmetic2d, T >, public DistributingDivisionAlgebra, T>, public RigidArray2d { public: MetricRigidArithmetic2d(Subscript n1, Subscript n2) : RigidArray2d(n1, n2) {} const MetricRigidArithmetic2d& operator=(const StridedArray& rhs) { RigidArray2d::operator=(rhs); return *this; } const MetricRigidArithmetic2d& operator=(const MetricRigidArithmetic2d& rhs) { RigidArray2d::operator=(rhs); return *this; } const MetricRigidArithmetic2d& operator=(const T& rhs) { RigidArray2d::operator=(rhs); return *this; } }; #endif