conjugate_dot (Linear Algebra)


Import

#include <archr/algebra/conjugate_dot.h>
#include <archr/algebra/conjugate_dot.hpp>

Synopsis

 float archr_algebra_conjugate_dot_f32(const float *x, size_t nbelem, const float *y);
(1)
 double archr_algebra_conjugate_dot_f64(const double *x, size_t nbelem, const double *y);
(2)
 void archr_algebra_conjugate_dot_zf32(void *z, const void *x, size_t nbelem, const void *y);
(3)
 void archr_algebra_conjugate_dot_zf64(void *z, const void *x, size_t nbelem, const void *y);
(4)
 float archr_algebra_conjugate_dotr_f32(const float *first, const float *last, const float *y);
(5)
 double archr_algebra_conjugate_dotr_f64(const double *first, const double *last, const double *y);
(6)
 void archr_algebra_conjugate_dotr_zf32(void *z, const void *first, const void *last, const void *y);
(7)
 void archr_algebra_conjugate_dotr_zf64(void *z, const void *first, const void *last, const void *y);
(8)
 float conjugate_dot(const float *x, size_t nbelem, const float *y);
(1)
 double conjugate_dot(const double *x, size_t nbelem, const double *y);
(2)
 std::complex<float> conjugate_dot(const std::complex<float>*x, size_t nbelem, const std::complex<float>*y);
(3)
 std::complex<double> conjugate_dot(const std::complex<double>*x, size_t nbelem, const std::complex<double>*y);
(4)
 float conjugate_dot(const float *first, const float *last, const float *y);
(5)
 double conjugate_dot(const double *first, const double *last, const double *y);
(6)
 std::complex<float> conjugate_dot(const std::complex<float>*first, const std::complex<float>*last, const std::complex<float>*y);
(7)
 std::complex<double> conjugate_dot(const std::complex<double>*first, const std::complex<double>*last, const std::complex<double>*y);
(8)
template <typename Range> typename Range::value_type conjugate_dot(const Range& x, const Range& y);
(9)
subroutine archr_algebra_conjugate_dot_f32(real(4) :: r, real(4), dimension(*), parameter :: x, integer(4) :: nbelem, real(4), dimension(*), parameter :: y)
(1)
subroutine archr_algebra_conjugate_dot_f64(real(8) :: r, real(8), dimension(*), parameter :: x, integer(4) :: nbelem, real(8), dimension(*), parameter :: y)
(2)
subroutine archr_algebra_conjugate_dot_zf32(complex(4) :: r, complex(4), dimension(*), parameter :: x, integer(4) :: nbelem, complex(4), dimension(*), parameter :: y)
(3)
subroutine archr_algebra_conjugate_dot_zf64(complex(8) :: r, complex(8), dimension(*), parameter :: x, integer(4) :: nbelem, complex(8), dimension(*), parameter :: y)
(4)
function r = archr_algebra_conjugate_dot(x, y)
(1)

Description

This function computes the conjugate dot product between the elements of two data ranges stored in:

$$\sum_{i=0}^{nbelem} X[i] \overline{Y[i]}$$

where X is the vector stored in the x and Y is the vector stored in y.

Parameters

x, first

the beginning of the first conjugate dot product range.

last

the end of the first conjugate dot product range.

y

the beginning of the second conjugate dot product range.

nbelem

the number of elements to process.

Return value

The conjugate dot product between the elements of the two given ranges.

Example

Possible Output

Possible Output

Possible Output