Man pages sections > man2 > tensor3

# tensor3 - a third order tensor

 tensor3(2rheolef) rheolef-6.7 tensor3(2rheolef)

## NAME

tensor3 - a third order tensor

## SYNOPSYS

The tensor3 class defines a fourth tensor where indices varie from zero to 2 (aka 3D physical space).

## IMPLEMENTATION

```template<class T>
class tensor3_basic {
public:

typedef size_t size_type;
typedef T      element_type;
typedef T      float_type;

// allocators:

tensor3_basic (const T& init_val = 0);
tensor3_basic (const tensor3_basic<T>& a);

// affectation:

tensor3_basic<T>& operator= (const tensor3_basic<T>& a);
tensor3_basic<T>& operator= (const T& val);

// accessors:

T&       operator()(size_type i, size_type j, size_type k);
const T& operator()(size_type i, size_type j, size_type k) const;

// algebra
tensor3_basic<T>& operator*= (const T& k);
tensor3_basic<T>& operator/= (const T& k) { return operator*= (1./k); }
tensor3_basic<T>  operator*  (const T& k) const;
tensor3_basic<T>  operator/  (const T& k) const;
tensor_basic<T>   operator*  (const point_basic<T>& v) const;
tensor3_basic<T>  operator*  (const tensor_basic<T>& b) const;
tensor3_basic<T>  operator+  (const tensor3_basic<T>& b) const;
tensor3_basic<T>  operator-  (const tensor3_basic<T>& b) const;

// inputs/outputs:

std::ostream& put (std::ostream& s, size_type d = 3) const;
std::istream& get (std::istream&);

// data:
protected:
T _x [3][3][3];
};
typedef tensor3_basic<Float> tensor3;

```
 rheolef-6.7 rheolef-6.7