1 #ifndef LinearEquation3_H
2 #define LinearEquation3_H
22 a_[0] = v.
x();
a_[1] = v.
y();
a_[2] = v.
z();
26 a_[0] = other[0];
a_[1] = other[1];
a_[2] = other[2];
31 a_[0] = v.
x();
a_[1] = v.
y();
a_[2] = v.
z();
48 a_[0] -= a[0]*
c;
a_[1] -= a[1]*
c;
a_[2] -= a[2]*
c;
77 T c1 = row[i1][0] / row[i0][0];
80 rhs[i1] -= c1*rhs[i0];
81 T c2 = row[i2][0] / row[i0][0];
84 rhs[i2] -= c2*rhs[i0];
90 T c3 = row[i2][1] / row[i1][1];
91 row[i2][1] -= c3 * row[i1][1];
92 row[i2][2] -= c3 * row[i1][2];
93 rhs[i2] -= c3*rhs[i1];
96 T x2 = rhs[i2] / row[i2][2];
97 T x1 = (rhs[i1] - x2*row[i1][2]) / row[i1][1];
98 T x0 = (rhs[i0] - x1*row[i0][1] - x2*row[i0][2]) / row[i0][0];
103 #ifdef DEBUG_SOLUTION
105 typedef Array3<T> AT;
106 void dump(
const AT row[])
const {
107 std::cout <<
" (" << row[0][0] <<
',' << row[0][1] <<
',' << row[0][2] <<
") " << std::endl;
108 std::cout <<
" (" << row[1][0] <<
',' << row[1][1] <<
',' << row[1][2] <<
") " << std::endl;
109 std::cout <<
" (" << row[2][0] <<
',' << row[2][1] <<
',' << row[2][2] <<
") " << std::endl;
void subtractScaled(const Array3 &a, U c)
T y() const
Cartesian y coordinate.
T x() const
Cartesian x coordinate.
Basic3DVector< T > solution(const Basic3DVector< T > &row0, const Basic3DVector< T > &row1, const Basic3DVector< T > &row2, const Basic3DVector< T > &rhsvec) const
const U & operator[](int i) const
void operator-=(const Array3 &other)
Array3 & operator=(const Array3 &other)
Array3 & operator=(const Basic3DVector< U > &v)
T z() const
Cartesian z coordinate.
void swap(edm::DataFrameContainer &lhs, edm::DataFrameContainer &rhs)
Abs< T >::type abs(const T &t)
Array3 operator*(U t) const
Array3(const Basic3DVector< U > &v)