44#include <initializer_list>
107 std::vector< double > :: iterator
begin() {
return this->values.begin(); }
108 std::vector< double > :: iterator
end() {
return this->values.end(); }
109 std::vector< double > :: const_iterator
begin()
const {
return this->values.begin(); }
110 std::vector< double > :: const_iterator
end()
const {
return this->values.end(); }
113 static constexpr int Dim = 1;
151 inline const double &operator[] (
Index i)
const {
161 void resize(
Index s);
164 void _resize_internal(
Index newsize);
167 static FloatArray fromVector(
const std::vector<double>& v);
168 static FloatArray fromList(
const std::list<double>& l);
169 static FloatArray fromConcatenated(std::initializer_list<FloatArray> ini);
170 static FloatArray fromIniList(std::initializer_list<double> ini);
171 template< std::
size_t N >
174 VectorXd::resize(src.
size());
178 for(
Index i=0; i<src.
size(); i++) (*
this)[i]=src[i];
187 template< std::
size_t N >
189 this->resize(src.
size());
190 for(
Index i=0; i<src.
size(); i++) (*
this)[i]=src[i];
195 bool isAllFinite()
const;
207 return (*
this)[ i - 1 ];
219 return (*
this)[ i - 1 ];
231 OOFEM_ERROR(
"array error on index : %d <= 0", (
int)i);
232 }
else if ( i >
size()) {
233 OOFEM_ERROR(
"array error on index : %d > %d", (
int)i, (
int)this->
size());
241 void checkSizeTowards(
const IntArray &loc);
249 void resizeWithValues(
Index s, std::size_t allocChunk = 0);
258 bool containsOnlyZeroes()
const;
274 virtual void printYourself()
const;
279 virtual void printYourself(
const std::string &name)
const;
285 virtual void printYourselfToFile(
const std::string filename,
const bool showDimensions=
true)
const;
289 virtual void pY()
const;
343 void add(
double offset);
354 void times(
double s);
417 void copySubVector(
const FloatArray &src,
int si);
443 int giveIndexMinElem(
void);
447 int giveIndexMaxElem(
void);
467 double normalize_giveNorm();
477 double computeNorm()
const;
482 double computeSquaredNorm()
const;
521 void beSymVectorFormOfStrain(
const FloatMatrix &aMatrix);
527 void changeComponentOrder();
533 void power(
const double exponent);
549 friend std :: ostream &operator << ( std :: ostream & out,
const FloatArray & x );
610inline static FloatArray Vec6(
const double& a,
const double& b,
const double& c,
const double& d,
const double& e,
const double& f){
return FloatArray::fromIniList({a,b,c,d,e,f}); }
611inline static FloatArray Vec7(
const double& a,
const double& b,
const double& c,
const double& d,
const double& e,
const double& f,
const double& g){
return FloatArray::fromIniList({a,b,c,d,e,f,g}); }
612inline static FloatArray Vec8(
const double& a,
const double& b,
const double& c,
const double& d,
const double& e,
const double& f,
const double& g,
const double& h){
return FloatArray::fromIniList({a,b,c,d,e,f,g,h}); }
613inline static FloatArray Vec9(
const double& a,
const double& b,
const double& c,
const double& d,
const double& e,
const double& f,
const double& g,
const double& h,
const double& i){
return FloatArray::fromIniList({a,b,c,d,e,f,g,h,i}); }
int size() const
Returns the size of receiver.
static FloatArray fromIniList(std::initializer_list< double > ini)
FloatArray(FloatArray &&src) noexcept
Move constructor. Creates the array from another array.
std::vector< double > values
Stored values.
std::vector< double >::const_iterator end() const
std::vector< double >::iterator begin()
Index giveSize() const
Returns the size of receiver.
std::vector< double >::const_iterator begin() const
double & operator[](Index i)
FloatArray(const FloatArray &src)
Copy constructor. Creates the array from another array.
virtual ~FloatArray()
Destructor.
const double * data() const
void checkBounds(Index i) const
FloatArray(std ::initializer_list< double >list)
Initializer list constructor.
FloatArray(double)=delete
Disallow double parameter, which can otherwise give unexpected results.
bool isEmpty() const
Returns true if receiver is empty.
FloatArray(const FloatArrayF< N > &src)
const double * givePointer() const
std::vector< double >::iterator end()
double distance(const FloatArray *x) const
FloatArray(int n=0)
Constructor for sized array. Data is zeroed.
bool isNotEmpty() const
Returns true if receiver is not empty.
static FloatArray Vec2(const double &a, const double &b)
FloatArray operator+(const FloatArray &x, const FloatArray &y)
double norm(const FloatArray &x)
OOFEM_EXPORT FloatArray operator/(const FloatArray &x, const double &a)
static FloatArray VecX(std::initializer_list< double > ini)
static FloatArray Vec9(const double &a, const double &b, const double &c, const double &d, const double &e, const double &f, const double &g, const double &h, const double &i)
double norm_square(const FloatArray &x)
bool iszero(const FloatArray &x)
FloatArray operator-(const FloatArray &x, const FloatArray &y)
FloatArrayF< N > assemble(const FloatArrayF< M > &x, int const (&c)[M])
Assemble components into zero matrix.
static FloatArray Vec6(const double &a, const double &b, const double &c, const double &d, const double &e, const double &f)
FloatArray & operator/=(FloatArray &x, const double &a)
FloatArray & operator+=(FloatArray &x, const FloatArray &y)
static FloatArray Vec5(const double &a, const double &b, const double &c, const double &d, const double &e)
double sum(const FloatArray &x)
static FloatArray Vec8(const double &a, const double &b, const double &c, const double &d, const double &e, const double &f, const double &g, const double &h)
double dot(const FloatArray &x, const FloatArray &y)
bool isfinite(const FloatArray &x)
FloatMatrixF< N, M > zero()
Constructs a zero matrix (this is the default behavior when constructing a matrix,...
FloatArray & operator-=(FloatArray &x, const FloatArray &y)
double product(const FloatArray &x)
FloatArray operator*(const double &a, const FloatArray &x)
FloatArrayF< N > normalize(const FloatArrayF< N > &x)
Normalizes vector (L2 norm).
static FloatArray Vec4(const double &a, const double &b, const double &c, const double &d)
FloatArray & operator*=(FloatArray &x, const double &a)
Vector multiplication by scalar.
static FloatArray Vec7(const double &a, const double &b, const double &c, const double &d, const double &e, const double &f, const double &g)
double distance(const FloatArray &x, const FloatArray &y)
double distance_square(const FloatArray &x, const FloatArray &y)
static FloatArray Vec1(const double &a)
static FloatArray Vec3(const double &a, const double &b, const double &c)