/* 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 MetricFormedArithmeticH #define MetricFormedArithmeticH #include "Algebra/DivisionAlgebraCategory.h" #include "Algebra/MetricSpaceCategory.h" #include "Vector/DistributingDivisionAlgebra.h" #include "Vector/DistributingMetricSpace.h" #include "Array/FormedArray.h" template class MetricFormedArithmetic1d : public DivisionAlgebraCategory< MetricFormedArithmetic1d, T >, public MetricSpaceCategory< MetricFormedArithmetic1d, M>, public DistributingDivisionAlgebra,T, T>, public DistributingMetricSpace, M>, public ConcreteFormedArray1d { public: MetricFormedArithmetic1d(Subscript n) : ConcreteFormedArray1d(n) {} MetricFormedArithmetic1d(const MetricFormedArithmetic1d& a) : ConcreteFormedArray1d(a) {} const MetricFormedArithmetic1d& operator=(const Array1d& rhs); const MetricFormedArithmetic1d& operator=(const MetricFormedArithmetic1d& rhs) { ConcreteFormedArray1d::operator=(rhs); return *this; } const MetricFormedArithmetic1d& operator=(const T& rhs) { ConcreteFormedArray1d::operator=(rhs); return *this; } }; #endif