33#ifndef MADNESS_TENSOR_ALIGNED_H__INCLUDED
34#define MADNESS_TENSOR_ALIGNED_H__INCLUDED
58 std::memset((
void *)
a, 0, n*
sizeof(
T));
62 for (
long i=0; i<n4; i+=4,
a+=4) {
68 for (
long i=0; i<rem; ++i) *
a++ = 0;
72 template <
typename T,
typename Q>
78 for (
long i=0; i<n4; i+=4,
a+=4,
b+=4) {
84 for (
long i=0; i<rem; ++i) *
a++ += s * *
b++;
96 void aligned_axpy(
long n,
double * MADNESS_RESTRICT
a,
const double * MADNESS_RESTRICT
b,
double s) {
117 template <
typename T,
typename Q>
123 for (
long i=0; i<n4; i+=4,
a+=4,
b+=4) {
129 for (
long i=0; i<rem; ++i) *
a++ += *
b++;
132 template <
typename T,
typename Q>
138 for (
long i=0; i<n4; i+=4,
a+=4,
b+=4) {
144 for (
long i=0; i<rem; ++i) *
a++ -= *
b++;
Define BLAS like functions.
std::complex< double > double_complex
Definition cfft.h:14
int integer
Definition crayio.c:25
std::complex< double > complex_real8
Fortran double complex.
Definition fortran_ctypes.h:83
auto T(World &world, response_space &f) -> response_space
Definition global_functions.cc:34
Macros and tools pertaining to the configuration of MADNESS.
void axpy(const integer n, const float alpha, float *x, const integer incx, float *y, const integer incy)
Scale and add a vector to another.
Definition cblas.h:687
Namespace for all elements and tools of MADNESS.
Definition DFParameters.h:10
void aligned_add(long n, double *MADNESS_RESTRICT a, const double *MADNESS_RESTRICT b)
static void aligned_zero(long n, T *a)
Definition aligned.h:55
void aligned_sub(long n, double *MADNESS_RESTRICT a, const double *MADNESS_RESTRICT b)
static void aligned_axpy(long n, T *MADNESS_RESTRICT a, const T *MADNESS_RESTRICT b, Q s)
Definition aligned.h:75
static const double b
Definition nonlinschro.cc:119
static const double a
Definition nonlinschro.cc:118
double Q(double a)
Definition relops.cc:20
Defines and implements most of Tensor.