ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
basic_funcs.h
Go to the documentation of this file.
1#ifndef BASIC_FUNCS_H
2#define BASIC_FUNCS_H
3
4#include <cmath>
5#include <vector>
6#include <ostream>
7
9
13double maxval_abs_2d(const std::vector<ModuleBase::Vector3<double>>& array);
14
18std::pair<int,int> maxloc_abs_2d(const std::vector<ModuleBase::Vector3<double>>& array);
19
23template <typename T>
24T sum_2d(const std::vector<ModuleBase::Vector3<T>>& array);
25
29void scalar_multiply_2d(const std::vector<ModuleBase::Vector3<double>>& array,
30 double scalar,
31 std::vector<ModuleBase::Vector3<double>>& result);
32
36void add_scalar_multiply_2d(const std::vector<ModuleBase::Vector3<double>>& array_1,
37 const std::vector<ModuleBase::Vector3<double>>& array_2,
38 double scalar,
39 std::vector<ModuleBase::Vector3<double>>& result);
40
44void subtract_2d(const std::vector<ModuleBase::Vector3<double>>& array_1,
45 const std::vector<ModuleBase::Vector3<double>>& array_2,
46 std::vector<ModuleBase::Vector3<double>>& result);
47
51void fill_scalar_2d(double scalar, std::vector<ModuleBase::Vector3<double>>& result);
52
56void where_fill_scalar_2d(const std::vector<ModuleBase::Vector3<int>>& array_mask,
57 int mask,
58 double scalar,
59 std::vector<ModuleBase::Vector3<double>>& result);
60
61void where_fill_scalar_else_2d(const std::vector<ModuleBase::Vector3<int>>& array_mask,
62 int mask,
63 double scalar,
64 const std::vector<ModuleBase::Vector3<double>>& rest,
65 std::vector<ModuleBase::Vector3<double>>& result);
66
67void print_2d(const std::string info, const std::vector<ModuleBase::Vector3<double>> &array, const int nspin, const double unit_convert = 1.0, std::ostream& ofs = std::cout);
68
69#endif // BASIC_FUNCS_H
void subtract_2d(const std::vector< ModuleBase::Vector3< double > > &array_1, const std::vector< ModuleBase::Vector3< double > > &array_2, std::vector< ModuleBase::Vector3< double > > &result)
array_1 - array_2.
Definition basic_funcs.cpp:80
void where_fill_scalar_else_2d(const std::vector< ModuleBase::Vector3< int > > &array_mask, int mask, double scalar, const std::vector< ModuleBase::Vector3< double > > &rest, std::vector< ModuleBase::Vector3< double > > &result)
Definition basic_funcs.cpp:121
void print_2d(const std::string info, const std::vector< ModuleBase::Vector3< double > > &array, const int nspin, const double unit_convert=1.0, std::ostream &ofs=std::cout)
Definition basic_funcs.cpp:138
double maxval_abs_2d(const std::vector< ModuleBase::Vector3< double > > &array)
Find the maximum absolute value in a 2D array.
Definition basic_funcs.cpp:7
void where_fill_scalar_2d(const std::vector< ModuleBase::Vector3< int > > &array_mask, int mask, double scalar, std::vector< ModuleBase::Vector3< double > > &result)
fill a 2D array with a scalar if the corresponding element is equal to mask.
Definition basic_funcs.cpp:102
void fill_scalar_2d(double scalar, std::vector< ModuleBase::Vector3< double > > &result)
fill a 2D array with a scalar.
Definition basic_funcs.cpp:92
void scalar_multiply_2d(const std::vector< ModuleBase::Vector3< double > > &array, double scalar, std::vector< ModuleBase::Vector3< double > > &result)
scalar multiply a 2D array.
Definition basic_funcs.cpp:55
T sum_2d(const std::vector< ModuleBase::Vector3< T > > &array)
sum of all elements in a 2D array.
Definition basic_funcs.cpp:40
std::pair< int, int > maxloc_abs_2d(const std::vector< ModuleBase::Vector3< double > > &array)
Find the maximum absolute value in a 2D array and its index.
Definition basic_funcs.cpp:19
void add_scalar_multiply_2d(const std::vector< ModuleBase::Vector3< double > > &array_1, const std::vector< ModuleBase::Vector3< double > > &array_2, double scalar, std::vector< ModuleBase::Vector3< double > > &result)
array_1 + scalar * array_2.
Definition basic_funcs.cpp:67
3 elements vector
Definition vector3.h:22
#define T
Definition exp.cpp:237