26#ifndef SCIMATH_RIGIDVECTOR_H 
   27#define SCIMATH_RIGIDVECTOR_H 
   29#include <casacore/casa/aips.h> 
   30#include <casacore/casa/Arrays/Vector.h> 
   31#include <casacore/casa/BasicSL/Complex.h> 
   32#include <casacore/casa/iosfwd.h> 
   37template <
class T, Int n> 
class SquareMatrix;
 
  145      for (
Int i=0; i<n; i++) 
v_p[i]=
T(0);
 
 
  149    for (
Int i=0; i<n; i++) 
v_p[i]=c;
 
 
  174                const T& 
v4, 
const T& 
v5) {
 
 
  180    for (
Int i=0; i<n; i++) 
v_p[i]=v[i];
 
 
  184    for (
Int i=0; i<n; i++) 
v_p[i]=v(i);
 
 
  197    for (
Int i=0; i<n; i++) 
v_p[i]=v(i);
 
 
  202    for (
Int i=0; i<n; i++) 
v_p[i]=c;
 
 
  212    for (
Int i=0; i<n; i++) 
v_p[i]+=v.
v_p[i];
 
 
  216    for (
Int i=0; i<n; i++) 
v_p[i]*=v.
v_p[i];
 
 
  221    for (
Int i=0; i<n; i++) 
v_p[i]-=v.
v_p[i];
 
 
  226    for (
Int i=0; i<n; i++) 
v_p[i]*=val;
 
 
  241    for (
Int i=0; i<n; i++) v(i)=
v_p[i];
 
 
 
  294#ifndef CASACORE_NO_AUTO_TEMPLATES 
  295#include <casacore/scimath/Mathematics/RigidVector.tcc> 
RigidVector(const RigidVector< T, n > &v)
Copy constructor, copy semantics.
 
RigidVector< T, n > & operator-=(const RigidVector< T, n > &v)
Subtraction.
 
RigidVector(const T v[n])
Construct from a c-array (copy semantics)
 
RigidVector(const T &v0, const T &v1)
Construct a 2-element vector, fails for wrong size vectors.
 
RigidVector(const Vector< T > &v)
Construct from a Vector.
 
RigidVector< T, n > & operator=(const T &c)
Assign a scalar, sets all elements to c.
 
Vector< T > vector() const
Convert to a regular Vector.
 
RigidVector(const T &v0, const T &v1, const T &v2, const T &v3)
Construct a 4-element vector, fails for wrong size vectors.
 
friend ostream & operator<<(ostream &os, const RigidVector< T, n > &v)
Write out a RigidVector using the Vector output method.
 
RigidVector< T, n > & operator-()
Negation.
 
RigidVector< T, n > & operator*=(const T &val)
Multiplication by scalar.
 
RigidVector()
RigidVector(Int dummy) { for (Int i=0; i<n; i++) v_p[i]=T(0); } Default constructor.
 
RigidVector< T, n > & operator=(const RigidVector< T, n > &v)
Assign from a RigidVector.
 
friend RigidVector< T, n > operator-(const RigidVector< T, n > &l, const RigidVector< T, n > &r)
Subtract two RigidVectors.
 
RigidVector< T, n > sqrt(const RigidVector< T, n > &v)
Square Root.
 
friend RigidVector< Complex, 4 > operator*(const SquareMatrix< Complex, 4 > &m, const RigidVector< Float, 4 > &v)
Special matrix multiply of Complex matrix * Float vector.
 
friend RigidVector< T, n > operator*(const T &f, const RigidVector< T, n > &v)
Multiply a RigidVector by a scalar.
 
friend RigidVector< T, n > operator*(const RigidVector< T, n > &v, const T &f)
Multiply a RigidVector by a scalar.
 
RigidVector< T, n > & operator+=(const RigidVector< T, n > &v)
Addition
 
T & operator()(Int i)
Indexing by reference.
 
RigidVector(const T &v0, const T &v1, const T &v2, const T &v3, const T &v4)
Construct a 5-element vector, fails for wrong size vectors.
 
const T & operator()(Int i) const
Indexing by const reference.
 
RigidVector(const T &c)
Construct from scalar, sets all elements to c.
 
RigidVector(const T &v0, const T &v1, const T &v2)
Construct a 3-element vector, fails for wrong size vectors.
 
RigidVector< T, n > & operator=(const Vector< T > &v)
Assign from a Vector.
 
RigidVector(const T &v0, const T &v1, const T &v2, const T &v3, const T &v4, const T &v5)
Construct a 6-element vector, fails for wrong size vectors.
 
RigidVector< T, n > & operator*=(const SquareMatrix< T, n > &m)
Multiply vector by matrix: v*=M is equivalent to v=M*v;.
 
friend RigidVector< T, n > operator+(const RigidVector< T, n > &l, const RigidVector< T, n > &r)
Add two RigidVectors.
 
friend T operator*(const RigidVector< T, n > &l, const RigidVector< T, n > &r)
The innerproduct of 2 RigidVectors.
 
RigidVector< T, n > & operator*=(const RigidVector< T, n > &v)
 
T v_p[n]
// The following are needed for Image<RigidVector>
 
this file contains all the compiler specific defines
 
LatticeExprNode sum(const LatticeExprNode &expr)
 
Mathematical operations involving RigidVectors
 
RigidVector< Complex, 4 > operator*(const SquareMatrix< Complex, 4 > &m, const RigidVector< Complex, 4 > &v)
Multiply vector by matrix.
 
RigidVector< Float, 4 > operator*(const SquareMatrix< Float, 4 > &m, const RigidVector< Float, 4 > &v)
Multiply vector by matrix.