1#ifndef _STANDARD_FUNCTIONS_H_
2#define _STANDARD_FUNCTIONS_H_
12#include "../../Constants.h"
15extern const double mu_0;
33extern MatrixXcd
vectorToMatrix(
const vector<vector<complex<double>>>& vec);
47extern vector<vector<complex<double>>>
matrixToVector(
const MatrixXcd& mat);
64extern MatrixXcd
stack_u_4x_3xN(
const MatrixXcd& u1,
const MatrixXcd& u2,
const MatrixXcd& u3,
const MatrixXcd& u4);
72extern vector<vector<complex<double>>>
mat_mul(
const vector<vector<complex<double>>>& A,
const vector<vector<complex<double>>>& B);
80extern vector<vector<complex<double>>>
mul_scalar(
const vector<vector<complex<double>>>& A,
const complex<double>& scalar);
88extern vector<vector<complex<double>>>
mat_add(
const vector<vector<complex<double>>>& A,
const vector<vector<complex<double>>>& B);
96extern vector<vector<complex<double>>>
mat_sub(
const vector<vector<complex<double>>>& A,
const vector<vector<complex<double>>>& B);
103extern vector<vector<complex<double>>>
mat_transpose(
const vector<vector<complex<double>>>& A);
114extern vector<vector<complex<double>>>
get_block(
const vector<vector<complex<double>>>& Y,
int r_off,
int c_off,
int r_num,
int c_num);
vector< vector< complex< double > > > matrixToVector(const MatrixXcd &mat)
Converts an Eigen MatrixXcd to a nested complex vector.
Definition Standard_functions.cpp:80
vector< vector< complex< double > > > mat_add(const vector< vector< complex< double > > > &A, const vector< vector< complex< double > > > &B)
Element-wise addition of two complex matrices.
Definition Standard_functions.cpp:196
vector< vector< complex< double > > > mul_scalar(const vector< vector< complex< double > > > &A, const complex< double > &scalar)
Scales every entry of a complex matrix by a scalar.
Definition Standard_functions.cpp:180
vector< vector< complex< double > > > mat_mul(const vector< vector< complex< double > > > &A, const vector< vector< complex< double > > > &B)
Complex matrix multiplication using nested vectors.
Definition Standard_functions.cpp:141
MatrixXcd vectorToMatrix(const vector< vector< complex< double > > > &vec)
Converts a nested complex vector to an Eigen MatrixXcd.
Definition Standard_functions.cpp:27
const double mu_0
Vacuum permeability (H/m).
Definition Standard_functions.cpp:8
int sgn(int v)
Returns the sign of an integer.
Definition Standard_functions.cpp:17
vector< vector< complex< double > > > mat_sub(const vector< vector< complex< double > > > &A, const vector< vector< complex< double > > > &B)
Element-wise subtraction of two complex matrices.
Definition Standard_functions.cpp:212
const double epsilon_0
Vacuum permittivity (F/m).
Definition Standard_functions.cpp:9
vector< vector< complex< double > > > mat_transpose(const vector< vector< complex< double > > > &A)
Transposes a complex matrix stored as nested vectors.
Definition Standard_functions.cpp:227
MatrixXcd stack_u_4x_3xN(const MatrixXcd &u1, const MatrixXcd &u2, const MatrixXcd &u3, const MatrixXcd &u4)
Stacks four input matrices into a single block column.
Definition Standard_functions.cpp:113
vector< vector< complex< double > > > get_block(const vector< vector< complex< double > > > &Y, int r_off, int c_off, int r_num, int c_num)
Extracts a rectangular sub-block from a complex matrix.
Definition Standard_functions.cpp:246
const double gamma_num
Euler–Mascheroni constant.
Definition Standard_functions.cpp:10