Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'intern/iksolver/intern/TNT/region1d.h')
-rw-r--r--intern/iksolver/intern/TNT/region1d.h375
1 files changed, 0 insertions, 375 deletions
diff --git a/intern/iksolver/intern/TNT/region1d.h b/intern/iksolver/intern/TNT/region1d.h
deleted file mode 100644
index 8acaac3ae23..00000000000
--- a/intern/iksolver/intern/TNT/region1d.h
+++ /dev/null
@@ -1,375 +0,0 @@
-/**
- */
-
-/*
-
-*
-* Template Numerical Toolkit (TNT): Linear Algebra Module
-*
-* Mathematical and Computational Sciences Division
-* National Institute of Technology,
-* Gaithersburg, MD USA
-*
-*
-* This software was developed at the National Institute of Standards and
-* Technology (NIST) by employees of the Federal Government in the course
-* of their official duties. Pursuant to title 17 Section 105 of the
-* United States Code, this software is not subject to copyright protection
-* and is in the public domain. The Template Numerical Toolkit (TNT) is
-* an experimental system. NIST assumes no responsibility whatsoever for
-* its use by other parties, and makes no guarantees, expressed or implied,
-* about its quality, reliability, or any other characteristic.
-*
-* BETA VERSION INCOMPLETE AND SUBJECT TO CHANGE
-* see http://math.nist.gov/tnt for latest updates.
-*
-*/
-
-
-
-
-#ifndef REGION1D_H
-#define REGION1D_H
-
-
-#include "subscript.h"
-#include "index.h"
-#include <iostream>
-#include <cassert>
-
-namespace TNT
-{
-
-template <class Array1D>
-class const_Region1D;
-
-template <class Array1D>
-class Region1D
-{
- protected:
-
- Array1D & A_;
- Subscript offset_; // 0-based
- Subscript dim_;
-
- typedef typename Array1D::element_type T;
-
- public:
- const Array1D & array() const { return A_; }
-
- Subscript offset() const { return offset_;}
- Subscript dim() const { return dim_; }
-
- Subscript offset(Subscript i) const
- {
-#ifdef TNT_BOUNDS_CHECK
- assert(i==TNT_BASE_OFFSET);
-#endif
- return offset_;
- }
-
- Subscript dim(Subscript i) const
- {
-#ifdef TNT_BOUNDS_CHECK
- assert(i== TNT_BASE_OFFSET);
-#endif
- return offset_;
- }
-
-
- Region1D(Array1D &A, Subscript i1, Subscript i2) : A_(A)
- {
-#ifdef TNT_BOUNDS_CHECK
- assert(TNT_BASE_OFFSET <= i1 );
- assert(i2 <= A.dim() + (TNT_BASE_OFFSET-1));
- assert(i1 <= i2);
-#endif
- offset_ = i1 - TNT_BASE_OFFSET;
- dim_ = i2-i1 + 1;
- }
-
- Region1D(Array1D &A, const Index1D &I) : A_(A)
- {
-#ifdef TNT_BOUNDS_CHECK
- assert(TNT_BASE_OFFSET <=I.lbound());
- assert(I.ubound() <= A.dim() + (TNT_BASE_OFFSET-1));
- assert(I.lbound() <= I.ubound());
-#endif
- offset_ = I.lbound() - TNT_BASE_OFFSET;
- dim_ = I.ubound() - I.lbound() + 1;
- }
-
- Region1D(Region1D<Array1D> &A, Subscript i1, Subscript i2) :
- A_(A.A_)
- {
-#ifdef TNT_BOUNDS_CHECK
- assert(TNT_BASE_OFFSET <= i1 );
- assert(i2 <= A.dim() + (TNT_BASE_OFFSET - 1));
- assert(i1 <= i2);
-#endif
- // (old-offset) (new-offset)
- //
- offset_ = (i1 - TNT_BASE_OFFSET) + A.offset_;
- dim_ = i2-i1 + 1;
- }
-
- Region1D<Array1D> operator()(Subscript i1, Subscript i2)
- {
-#ifdef TNT_BOUNDS_CHECK
- assert(TNT_BASE_OFFSET <= i1);
- assert(i2 <= dim() + (TNT_BASE_OFFSET -1));
- assert(i1 <= i2);
-#endif
- // offset_ is 0-based, so no need for
- // ( - TNT_BASE_OFFSET)
- //
- return Region1D<Array1D>(A_, i1+offset_,
- offset_ + i2);
- }
-
-
- Region1D<Array1D> operator()(const Index1D &I)
- {
-#ifdef TNT_BOUNDS_CHECK
- assert(TNT_BASE_OFFSET<=I.lbound());
- assert(I.ubound() <= dim() + (TNT_BASE_OFFSET-1));
- assert(I.lbound() <= I.ubound());
-#endif
- return Region1D<Array1D>(A_, I.lbound()+offset_,
- offset_ + I.ubound());
- }
-
-
-
-
- T & operator()(Subscript i)
- {
-#ifdef TNT_BOUNDS_CHECK
- assert(TNT_BASE_OFFSET <= i);
- assert(i <= dim() + (TNT_BASE_OFFSET-1));
-#endif
- return A_(i+offset_);
- }
-
- const T & operator() (Subscript i) const
- {
-#ifdef TNT_BOUNDS_CHECK
- assert(TNT_BASE_OFFSET <= i);
- assert(i <= dim() + (TNT_BASE_OFFSET-1));
-#endif
- return A_(i+offset_);
- }
-
-
- Region1D<Array1D> & operator=(const Region1D<Array1D> &R)
- {
- // make sure both sides conform
- assert(dim() == R.dim());
-
- Subscript N = dim();
- Subscript i;
- Subscript istart = TNT_BASE_OFFSET;
- Subscript iend = istart + N-1;
-
- for (i=istart; i<=iend; i++)
- (*this)(i) = R(i);
-
- return *this;
- }
-
-
-
- Region1D<Array1D> & operator=(const const_Region1D<Array1D> &R)
- {
- // make sure both sides conform
- assert(dim() == R.dim());
-
- Subscript N = dim();
- Subscript i;
- Subscript istart = TNT_BASE_OFFSET;
- Subscript iend = istart + N-1;
-
- for (i=istart; i<=iend; i++)
- (*this)(i) = R(i);
-
- return *this;
-
- }
-
-
- Region1D<Array1D> & operator=(const T& t)
- {
- Subscript N=dim();
- Subscript i;
- Subscript istart = TNT_BASE_OFFSET;
- Subscript iend = istart + N-1;
-
- for (i=istart; i<= iend; i++)
- (*this)(i) = t;
-
- return *this;
-
- }
-
-
- Region1D<Array1D> & operator=(const Array1D &R)
- {
- // make sure both sides conform
- Subscript N = dim();
- assert(dim() == R.dim());
-
- Subscript i;
- Subscript istart = TNT_BASE_OFFSET;
- Subscript iend = istart + N-1;
-
- for (i=istart; i<=iend; i++)
- (*this)(i) = R(i);
-
- return *this;
-
- }
-
-};
-
-template <class Array1D>
-std::ostream& operator<<(std::ostream &s, Region1D<Array1D> &A)
-{
- Subscript N=A.dim();
- Subscript istart = TNT_BASE_OFFSET;
- Subscript iend = N - 1 + TNT_BASE_OFFSET;
-
- for (Subscript i=istart; i<=iend; i++)
- s << A(i) << endl;
-
- return s;
-}
-
-
-/* --------- class const_Region1D ------------ */
-
-template <class Array1D>
-class const_Region1D
-{
- protected:
-
- const Array1D & A_;
- Subscript offset_; // 0-based
- Subscript dim_;
- typedef typename Array1D::element_type T;
-
- public:
- const Array1D & array() const { return A_; }
-
- Subscript offset() const { return offset_;}
- Subscript dim() const { return dim_; }
-
- Subscript offset(Subscript i) const
- {
-#ifdef TNT_BOUNDS_CHECK
- assert(i==TNT_BASE_OFFSET);
-#endif
- return offset_;
- }
-
- Subscript dim(Subscript i) const
- {
-#ifdef TNT_BOUNDS_CHECK
- assert(i== TNT_BASE_OFFSET);
-#endif
- return offset_;
- }
-
-
- const_Region1D(const Array1D &A, Subscript i1, Subscript i2) : A_(A)
- {
-#ifdef TNT_BOUNDS_CHECK
- assert(TNT_BASE_OFFSET <= i1 );
- assert(i2 <= A.dim() + (TNT_BASE_OFFSET-1));
- assert(i1 <= i2);
-#endif
- offset_ = i1 - TNT_BASE_OFFSET;
- dim_ = i2-i1 + 1;
- }
-
- const_Region1D(const Array1D &A, const Index1D &I) : A_(A)
- {
-#ifdef TNT_BOUNDS_CHECK
- assert(TNT_BASE_OFFSET <=I.lbound());
- assert(I.ubound() <= A.dim() + (TNT_BASE_OFFSET-1));
- assert(I.lbound() <= I.ubound());
-#endif
- offset_ = I.lbound() - TNT_BASE_OFFSET;
- dim_ = I.ubound() - I.lbound() + 1;
- }
-
- const_Region1D(const_Region1D<Array1D> &A, Subscript i1, Subscript i2) :
- A_(A.A_)
- {
-#ifdef TNT_BOUNDS_CHECK
- assert(TNT_BASE_OFFSET <= i1 );
- assert(i2 <= A.dim() + (TNT_BASE_OFFSET - 1));
- assert(i1 <= i2);
-#endif
- // (old-offset) (new-offset)
- //
- offset_ = (i1 - TNT_BASE_OFFSET) + A.offset_;
- dim_ = i2-i1 + 1;
- }
-
- const_Region1D<Array1D> operator()(Subscript i1, Subscript i2)
- {
-#ifdef TNT_BOUNDS_CHECK
- assert(TNT_BASE_OFFSET <= i1);
- assert(i2 <= dim() + (TNT_BASE_OFFSET -1));
- assert(i1 <= i2);
-#endif
- // offset_ is 0-based, so no need for
- // ( - TNT_BASE_OFFSET)
- //
- return const_Region1D<Array1D>(A_, i1+offset_,
- offset_ + i2);
- }
-
-
- const_Region1D<Array1D> operator()(const Index1D &I)
- {
-#ifdef TNT_BOUNDS_CHECK
- assert(TNT_BASE_OFFSET<=I.lbound());
- assert(I.ubound() <= dim() + (TNT_BASE_OFFSET-1));
- assert(I.lbound() <= I.ubound());
-#endif
- return const_Region1D<Array1D>(A_, I.lbound()+offset_,
- offset_ + I.ubound());
- }
-
-
- const T & operator() (Subscript i) const
- {
-#ifdef TNT_BOUNDS_CHECK
- assert(TNT_BASE_OFFSET <= i);
- assert(i <= dim() + (TNT_BASE_OFFSET-1));
-#endif
- return A_(i+offset_);
- }
-
-
-
-
-};
-
-template <class Array1D>
-std::ostream& operator<<(std::ostream &s, const_Region1D<Array1D> &A)
-{
- Subscript N=A.dim();
-
- for (Subscript i=1; i<=N; i++)
- s << A(i) << endl;
-
- return s;
-}
-
-
-} // namespace TNT
-
-#endif // const_Region1D_H
-