Files
radio/Complex.cpp.bak.cpp
T
jens 290fd5f5e0 Initial import
git-svn-id: http://moon:8086/svn/software/trunk/libsrc/radio@1 b431acfa-c32f-4a4a-93f1-934dc6c82436
2014-07-19 07:44:42 +00:00

1028 lines
22 KiB
C++
Executable File

#include <windows.h>
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include "Complex.hpp"
void ComplexDebug(char *fmtstr, ...)
{
char buf[1024];
va_list args;
va_start(args, fmtstr);
vsprintf(buf, fmtstr, args);
va_end(args);
OutputDebugString(buf);
}
// = src
ComplexVector& ComplexVector::operator=(const ComplexVector &src)
{
uint32_t i;
uint32_t j;
uint32_t dj;
checkSize(m_size, src.m_size);
j = 0;
dj = src.m_size > 1;
for (i=0; i < m_size; i++)
{
m_pPtrReal[i] = src.m_pPtrReal[j];
m_pPtrImag[i] = src.m_pPtrImag[j];
j += dj;
}
return *this;
}
// = src
ComplexVector& ComplexVector::operator=(const radio_float_t &b)
{
*this = ComplexVector (b, 0);
return *this;
}
// *= src
ComplexVector& ComplexVector::operator*=(const radio_float_t &b)
{
*this = *this * ComplexVector (b, 0);
return *this;
}
// += src
ComplexVector& ComplexVector::operator+=(const radio_float_t &b)
{
*this = *this + ComplexVector (b, 0);
return *this;
}
ComplexVector& ComplexVector::operator-=(const radio_float_t &b)
{
*this = *this - ComplexVector (b, 0);
return *this;
}
// *= src
ComplexVector& ComplexVector::operator*=(const ComplexVector &src)
{
*this = *this * src;
return *this;
}
// += src
ComplexVector& ComplexVector::operator+=(const ComplexVector &src)
{
*this = *this + src;
return *this;
}
// -= src
ComplexVector& ComplexVector::operator-=(const ComplexVector &src)
{
*this = *this - src;
return *this;
}
// = -src
ComplexVector& ComplexVector::operator=(const Negate &src)
{
uint32_t i;
uint32_t j;
uint32_t dj;
checkSize(m_size, src.src.m_size);
j = 0;
dj = src.src.m_size > 1;
for (i=0; i < m_size; i++)
{
m_pPtrReal[i] = -src.src.m_pPtrReal[j];
m_pPtrImag[i] = -src.src.m_pPtrImag[j];
j += dj;
}
return *this;
}
// *= -src
ComplexVector& ComplexVector::operator*=(const Negate &src)
{
*this = *this * src;
return *this;
}
// += -src
ComplexVector& ComplexVector::operator+=(const Negate &src)
{
*this = *this + src;
return *this;
}
// -= -src
ComplexVector& ComplexVector::operator-=(const Negate &src)
{
*this = *this + src;
return *this;
}
// = src*
ComplexVector& ComplexVector::operator=(const Conjugate &src)
{
uint32_t i;
uint32_t j;
uint32_t dj;
checkSize(m_size, src.src.m_size);
j = 0;
dj = src.src.m_size > 1;
for (i=0; i < m_size; i++)
{
m_pPtrReal[i] = + src.src.m_pPtrReal[j];
m_pPtrImag[i] = - src.src.m_pPtrImag[j];
j += dj;
}
return *this;
}
// *= src*
ComplexVector& ComplexVector::operator*=(const Conjugate &src)
{
*this = *this * src;
return *this;
}
// += src*
ComplexVector& ComplexVector::operator+=(const Conjugate &src)
{
*this = *this + src;
return *this;
}
// += src*
ComplexVector& ComplexVector::operator-=(const Conjugate &src)
{
*this = *this - src;
return *this;
}
// *= -src*
ComplexVector& ComplexVector::operator=(const ConjugateNegate &src)
{
uint32_t i;
uint32_t j;
uint32_t dj;
checkSize(m_size, src.src.m_size);
j = 0;
dj = src.src.m_size > 1;
for (i=0; i < m_size; i++)
{
m_pPtrReal[i] = - src.src.m_pPtrReal[j];
m_pPtrImag[i] = + src.src.m_pPtrImag[j];
j += dj;
}
return *this;
}
// *= -src*
ComplexVector& ComplexVector::operator*=(const ConjugateNegate &src)
{
*this = *this * src;
return *this;
}
// += -src*
ComplexVector& ComplexVector::operator+=(const ConjugateNegate &src)
{
*this = *this + src;
return *this;
}
// -= -src*
ComplexVector& ComplexVector::operator-=(const ConjugateNegate &src)
{
*this = *this - src;
return *this;
}
// 1.
// = a * b
ComplexVector& ComplexVector::operator=(const Mul_A_B &src)
{
uint32_t i;
uint32_t j;
uint32_t dj;
checkSize(src.a.m_size, src.b.m_size);
j = 0;
dj = src.b.m_size > 1;
for (i=0; i < m_size; i++)
{
m_pPtrReal[i] = + src.a.m_pPtrReal[i] * src.b.m_pPtrReal[j] - src.a.m_pPtrImag[i] * src.b.m_pPtrImag[j];
m_pPtrImag[i] = + src.a.m_pPtrReal[i] * src.b.m_pPtrImag[j] + src.a.m_pPtrImag[i] * src.b.m_pPtrReal[j];
j += dj;
}
return *this;
}
// 1.
// += a * b
ComplexVector& ComplexVector::operator+=(const Mul_A_B &src)
{
uint32_t i;
uint32_t j;
uint32_t dj;
checkSize(src.a.m_size, src.b.m_size);
j = 0;
dj = src.b.m_size > 1;
for (i=0; i < m_size; i++)
{
m_pPtrReal[i] += + src.a.m_pPtrReal[i] * src.b.m_pPtrReal[j] - src.a.m_pPtrImag[i] * src.b.m_pPtrImag[j];
m_pPtrImag[i] += + src.a.m_pPtrReal[i] * src.b.m_pPtrImag[j] + src.a.m_pPtrImag[i] * src.b.m_pPtrReal[j];
j += dj;
}
return *this;
}
// 1.
// -= a * b
ComplexVector& ComplexVector::operator-=(const Mul_A_B &src)
{
uint32_t i;
uint32_t j;
uint32_t dj;
checkSize(src.a.m_size, src.b.m_size);
j = 0;
dj = src.b.m_size > 1;
for (i=0; i < m_size; i++)
{
m_pPtrReal[i] -= + src.a.m_pPtrReal[i] * src.b.m_pPtrReal[j] - src.a.m_pPtrImag[i] * src.b.m_pPtrImag[j];
m_pPtrImag[i] -= + src.a.m_pPtrReal[i] * src.b.m_pPtrImag[j] + src.a.m_pPtrImag[i] * src.b.m_pPtrReal[j];
j += dj;
}
return *this;
}
// 2.
// = (-a) * b
// = a * (-b)
// = -(a * b)
ComplexVector& ComplexVector::operator=(const NegMul_A_B &src)
{
uint32_t i;
uint32_t j;
uint32_t dj;
checkSize(src.a.m_size, src.b.m_size);
j = 0;
dj = src.b.m_size > 1;
for (i=0; i < m_size; i++)
{
m_pPtrReal[i] = - src.a.m_pPtrReal[i] * src.b.m_pPtrReal[j] + src.a.m_pPtrImag[i] * src.b.m_pPtrImag[j];
m_pPtrImag[i] = - src.a.m_pPtrReal[i] * src.b.m_pPtrImag[j] - src.a.m_pPtrImag[i] * src.b.m_pPtrReal[j];
j += dj;
}
return *this;
}
// 2.
// += (-a) * b
// += a * (-b)
// += -(a * b)
ComplexVector& ComplexVector::operator+=(const NegMul_A_B &src)
{
uint32_t i;
uint32_t j;
uint32_t dj;
checkSize(src.a.m_size, src.b.m_size);
j = 0;
dj = src.b.m_size > 1;
for (i=0; i < m_size; i++)
{
m_pPtrReal[i] += - src.a.m_pPtrReal[i] * src.b.m_pPtrReal[j] + src.a.m_pPtrImag[i] * src.b.m_pPtrImag[j];
m_pPtrImag[i] += - src.a.m_pPtrReal[i] * src.b.m_pPtrImag[j] - src.a.m_pPtrImag[i] * src.b.m_pPtrReal[j];
j += dj;
}
return *this;
}
// 2.
// -= (-a) * b
// -= a * (-b)
// -= -(a * b)
ComplexVector& ComplexVector::operator-=(const NegMul_A_B &src)
{
uint32_t i;
uint32_t j;
uint32_t dj;
checkSize(src.a.m_size, src.b.m_size);
j = 0;
dj = src.b.m_size > 1;
for (i=0; i < m_size; i++)
{
m_pPtrReal[i] -= - src.a.m_pPtrReal[i] * src.b.m_pPtrReal[j] + src.a.m_pPtrImag[i] * src.b.m_pPtrImag[j];
m_pPtrImag[i] -= - src.a.m_pPtrReal[i] * src.b.m_pPtrImag[j] - src.a.m_pPtrImag[i] * src.b.m_pPtrReal[j];
j += dj;
}
return *this;
}
// 3.
// = a* * b
// = a * b*
ComplexVector& ComplexVector::operator=(const Mul_A_ConjB &src)
{
uint32_t i;
uint32_t j;
uint32_t dj;
checkSize(src.a.m_size, src.b.m_size);
j = 0;
dj = src.b.m_size > 1;
for (i=0; i < m_size; i++)
{
m_pPtrReal[i] = + src.a.m_pPtrReal[i] * src.b.m_pPtrReal[j] + src.a.m_pPtrImag[i] * src.b.m_pPtrImag[j];
m_pPtrImag[i] = - src.a.m_pPtrReal[i] * src.b.m_pPtrImag[j] + src.a.m_pPtrImag[i] * src.b.m_pPtrReal[j];
j += dj;
}
return *this;
}
// 3.
// += a* * b
// += a * b*
ComplexVector& ComplexVector::operator+=(const Mul_A_ConjB &src)
{
uint32_t i;
uint32_t j;
uint32_t dj;
checkSize(src.a.m_size, src.b.m_size);
j = 0;
dj = src.b.m_size > 1;
for (i=0; i < m_size; i++)
{
m_pPtrReal[i] += + src.a.m_pPtrReal[i] * src.b.m_pPtrReal[j] + src.a.m_pPtrImag[i] * src.b.m_pPtrImag[j];
m_pPtrImag[i] += - src.a.m_pPtrReal[i] * src.b.m_pPtrImag[j] + src.a.m_pPtrImag[i] * src.b.m_pPtrReal[j];
j += dj;
}
return *this;
}
// 3.
// -= a* * b
// -= a * b*
ComplexVector& ComplexVector::operator-=(const Mul_A_ConjB &src)
{
uint32_t i;
uint32_t j;
uint32_t dj;
checkSize(src.a.m_size, src.b.m_size);
j = 0;
dj = src.b.m_size > 1;
for (i=0; i < m_size; i++)
{
m_pPtrReal[i] -= + src.a.m_pPtrReal[i] * src.b.m_pPtrReal[j] + src.a.m_pPtrImag[i] * src.b.m_pPtrImag[j];
m_pPtrImag[i] -= - src.a.m_pPtrReal[i] * src.b.m_pPtrImag[j] + src.a.m_pPtrImag[i] * src.b.m_pPtrReal[j];
j += dj;
}
return *this;
}
// 4.
// = (a * b)*
// = a* * b*
ComplexVector& ComplexVector::operator=(const ConjMul_A_B &src)
{
uint32_t i;
uint32_t j;
uint32_t dj;
checkSize(src.a.m_size, src.b.m_size);
j = 0;
dj = src.b.m_size > 1;
for (i=0; i < m_size; i++)
{
m_pPtrReal[i] = + src.a.m_pPtrReal[i] * src.b.m_pPtrReal[j] - src.a.m_pPtrImag[i] * src.b.m_pPtrImag[j];
m_pPtrImag[i] = - src.a.m_pPtrReal[i] * src.b.m_pPtrImag[j] - src.a.m_pPtrImag[i] * src.b.m_pPtrReal[j];
j += dj;
}
return *this;
}
// 4.
// += (a * b)*
// += a* * b*
ComplexVector& ComplexVector::operator+=(const ConjMul_A_B &src)
{
uint32_t i;
uint32_t j;
uint32_t dj;
checkSize(src.a.m_size, src.b.m_size);
j = 0;
dj = src.b.m_size > 1;
for (i=0; i < m_size; i++)
{
m_pPtrReal[i] += + src.a.m_pPtrReal[i] * src.b.m_pPtrReal[j] - src.a.m_pPtrImag[i] * src.b.m_pPtrImag[j];
m_pPtrImag[i] += - src.a.m_pPtrReal[i] * src.b.m_pPtrImag[j] - src.a.m_pPtrImag[i] * src.b.m_pPtrReal[j];
j += dj;
}
return *this;
}
// 4.
// -= (a * b)*
// -= a* * b*
ComplexVector& ComplexVector::operator-=(const ConjMul_A_B &src)
{
uint32_t i;
uint32_t j;
uint32_t dj;
checkSize(src.a.m_size, src.b.m_size);
j = 0;
dj = src.b.m_size > 1;
for (i=0; i < m_size; i++)
{
m_pPtrReal[i] -= + src.a.m_pPtrReal[i] * src.b.m_pPtrReal[j] - src.a.m_pPtrImag[i] * src.b.m_pPtrImag[j];
m_pPtrImag[i] -= - src.a.m_pPtrReal[i] * src.b.m_pPtrImag[j] - src.a.m_pPtrImag[i] * src.b.m_pPtrReal[j];
j += dj;
}
return *this;
}
// 5.
// = -(a * b)*
// = (-a)* * (-b)*
ComplexVector& ComplexVector::operator=(const ConjNegMul_A_B &src)
{
uint32_t i;
uint32_t j;
uint32_t dj;
checkSize(src.a.m_size, src.b.m_size);
j = 0;
dj = src.b.m_size > 1;
for (i=0; i < m_size; i++)
{
m_pPtrReal[i] = - src.a.m_pPtrReal[i] * src.b.m_pPtrReal[j] + src.a.m_pPtrImag[i] * src.b.m_pPtrImag[j];
m_pPtrImag[i] = + src.a.m_pPtrReal[i] * src.b.m_pPtrImag[j] + src.a.m_pPtrImag[i] * src.b.m_pPtrReal[j];
j += dj;
}
return *this;
}
// 5.
// += -(a * b)*
// += (-a)* * (-b)*
ComplexVector& ComplexVector::operator+=(const ConjNegMul_A_B &src)
{
uint32_t i;
uint32_t j;
uint32_t dj;
checkSize(src.a.m_size, src.b.m_size);
j = 0;
dj = src.b.m_size > 1;
for (i=0; i < m_size; i++)
{
m_pPtrReal[i] += - src.a.m_pPtrReal[i] * src.b.m_pPtrReal[j] + src.a.m_pPtrImag[i] * src.b.m_pPtrImag[j];
m_pPtrImag[i] += + src.a.m_pPtrReal[i] * src.b.m_pPtrImag[j] + src.a.m_pPtrImag[i] * src.b.m_pPtrReal[j];
j += dj;
}
return *this;
}
// 5.
// -= -(a * b)*
// -= (-a)* * (-b)*
ComplexVector& ComplexVector::operator-=(const ConjNegMul_A_B &src)
{
uint32_t i;
uint32_t j;
uint32_t dj;
checkSize(src.a.m_size, src.b.m_size);
j = 0;
dj = src.b.m_size > 1;
for (i=0; i < m_size; i++)
{
m_pPtrReal[i] -= - src.a.m_pPtrReal[i] * src.b.m_pPtrReal[j] + src.a.m_pPtrImag[i] * src.b.m_pPtrImag[j];
m_pPtrImag[i] -= + src.a.m_pPtrReal[i] * src.b.m_pPtrImag[j] + src.a.m_pPtrImag[i] * src.b.m_pPtrReal[j];
j += dj;
}
return *this;
}
// 6.
// = (-a) * b*
// = a * (-b)*
// = (-a)* * b
// = a* * (-b)
ComplexVector& ComplexVector::operator=(const NegMul_A_ConjB &src)
{
uint32_t i;
uint32_t j;
uint32_t dj;
checkSize(src.a.m_size, src.b.m_size);
j = 0;
dj = src.b.m_size > 1;
for (i=0; i < m_size; i++)
{
m_pPtrReal[i] = - src.a.m_pPtrReal[i] * src.b.m_pPtrReal[j] - src.a.m_pPtrImag[i] * src.b.m_pPtrImag[j];
m_pPtrImag[i] = + src.a.m_pPtrReal[i] * src.b.m_pPtrImag[j] - src.a.m_pPtrImag[i] * src.b.m_pPtrReal[j];
j += dj;
}
return *this;
}
// 6.
// += (-a) * b*
// += a * (-b)*
// += (-a)* * b
// += a* * (-b)
ComplexVector& ComplexVector::operator+=(const NegMul_A_ConjB &src)
{
uint32_t i;
uint32_t j;
uint32_t dj;
checkSize(src.a.m_size, src.b.m_size);
j = 0;
dj = src.b.m_size > 1;
for (i=0; i < m_size; i++)
{
m_pPtrReal[i] += - src.a.m_pPtrReal[i] * src.b.m_pPtrReal[j] - src.a.m_pPtrImag[i] * src.b.m_pPtrImag[j];
m_pPtrImag[i] += + src.a.m_pPtrReal[i] * src.b.m_pPtrImag[j] - src.a.m_pPtrImag[i] * src.b.m_pPtrReal[j];
j += dj;
}
return *this;
}
// 6.
// -= (-a) * b*
// -= a * (-b)*
// -= (-a)* * b
// -= a* * (-b)
ComplexVector& ComplexVector::operator-=(const NegMul_A_ConjB &src)
{
uint32_t i;
uint32_t j;
uint32_t dj;
checkSize(src.a.m_size, src.b.m_size);
j = 0;
dj = src.b.m_size > 1;
for (i=0; i < m_size; i++)
{
m_pPtrReal[i] -= - src.a.m_pPtrReal[i] * src.b.m_pPtrReal[j] - src.a.m_pPtrImag[i] * src.b.m_pPtrImag[j];
m_pPtrImag[i] -= + src.a.m_pPtrReal[i] * src.b.m_pPtrImag[j] - src.a.m_pPtrImag[i] * src.b.m_pPtrReal[j];
j += dj;
}
return *this;
}
// 1.
// a + b
ComplexVector& ComplexVector::operator=(const Add_A_B &src)
{
uint32_t i;
uint32_t j;
uint32_t dj;
checkSize(src.a.m_size, src.b.m_size);
j = 0;
dj = src.b.m_size > 1;
for (i=0; i < m_size; i++)
{
m_pPtrReal[i] = + src.a.m_pPtrReal[i] + src.b.m_pPtrReal[j];
m_pPtrImag[i] = + src.a.m_pPtrImag[i] + src.b.m_pPtrImag[j];
j += dj;
}
return *this;
}
// 2.
// - (a + b)
// -a - b
ComplexVector& ComplexVector::operator=(const NegAdd_A_B &src)
{
uint32_t i;
uint32_t j;
uint32_t dj;
checkSize(src.a.m_size, src.b.m_size);
j = 0;
dj = src.b.m_size > 1;
for (i=0; i < m_size; i++)
{
m_pPtrReal[i] = - src.a.m_pPtrReal[i] - src.b.m_pPtrReal[j];
m_pPtrImag[i] = - src.a.m_pPtrImag[i] - src.b.m_pPtrImag[j];
j += dj;
}
return *this;
}
// 3.
// (a + b)*
ComplexVector& ComplexVector::operator=(const ConjAdd_A_B &src)
{
uint32_t i;
uint32_t j;
uint32_t dj;
checkSize(src.a.m_size, src.b.m_size);
j = 0;
dj = src.b.m_size > 1;
for (i=0; i < m_size; i++)
{
m_pPtrReal[i] = + src.a.m_pPtrReal[i] + src.b.m_pPtrReal[j];
m_pPtrImag[i] = + src.a.m_pPtrImag[i] - src.b.m_pPtrImag[j];
j += dj;
}
return *this;
}
// 4.
// -(a + b)*
// (-a)* + (-b)*
ComplexVector& ComplexVector::operator=(const ConjNegAdd_A_B &src)
{
uint32_t i;
uint32_t j;
uint32_t dj;
checkSize(src.a.m_size, src.b.m_size);
j = 0;
dj = src.b.m_size > 1;
for (i=0; i < m_size; i++)
{
m_pPtrReal[i] = + src.a.m_pPtrReal[i] - src.b.m_pPtrReal[j];
m_pPtrImag[i] = + src.a.m_pPtrImag[i] + src.b.m_pPtrImag[j];
j += dj;
}
return *this;
}
// 5.
// a - b
// a + (b-)
// (-a) + b
ComplexVector& ComplexVector::operator=(const Add_A_NegB &src)
{
uint32_t i;
uint32_t j;
uint32_t dj;
checkSize(src.a.m_size, src.b.m_size);
j = 0;
dj = src.b.m_size > 1;
for (i=0; i < m_size; i++)
{
m_pPtrReal[i] = + src.a.m_pPtrReal[i] - src.b.m_pPtrReal[j];
m_pPtrImag[i] = + src.a.m_pPtrImag[i] - src.b.m_pPtrImag[j];
j += dj;
}
return *this;
}
// 6.
// a + b*
// a* + b
ComplexVector& ComplexVector::operator=(const Add_A_ConjB &src)
{
uint32_t i;
uint32_t j;
uint32_t dj;
checkSize(src.a.m_size, src.b.m_size);
j = 0;
dj = src.b.m_size > 1;
for (i=0; i < m_size; i++)
{
m_pPtrReal[i] = + src.a.m_pPtrReal[i] + src.b.m_pPtrReal[j];
m_pPtrImag[i] = + src.a.m_pPtrImag[i] - src.b.m_pPtrImag[j];
j += dj;
}
return *this;
}
// 7.
// - (a + b*)
// - (a* + b)
// -a* - b
ComplexVector& ComplexVector::operator=(const NegAdd_A_ConjB &src)
{
uint32_t i;
uint32_t j;
uint32_t dj;
checkSize(src.a.m_size, src.b.m_size);
j = 0;
dj = src.b.m_size > 1;
for (i=0; i < m_size; i++)
{
m_pPtrReal[i] = - src.a.m_pPtrReal[i] - src.b.m_pPtrReal[j];
m_pPtrImag[i] = - src.a.m_pPtrImag[i] + src.b.m_pPtrImag[j];
j += dj;
}
return *this;
}
// 8.
// a - b*
// (-a)* + b
ComplexVector& ComplexVector::operator=(const Add_A_ConjNegB &src)
{
uint32_t i;
uint32_t j;
uint32_t dj;
checkSize(src.a.m_size, src.b.m_size);
j = 0;
dj = src.b.m_size > 1;
for (i=0; i < m_size; i++)
{
m_pPtrReal[i] = + src.a.m_pPtrReal[i] - src.b.m_pPtrReal[j];
m_pPtrImag[i] = + src.a.m_pPtrImag[i] + src.b.m_pPtrImag[j];
j += dj;
}
return *this;
}
ComplexVector::Mul_A_B operator*(const ComplexVector &a, radio_float_t b)
{
const ComplexVector bb = ComplexVector(b, 0);
const ComplexVector::Mul_A_B ab(a, bb);
return ab;
}
ComplexVector::Mul_A_B operator*(const ComplexVector &a, const ComplexVector &b)
{
const ComplexVector::Mul_A_B ab(a, b);
return ab;
}
ComplexVector::Mul_A_B operator*(const ComplexVector::Negate &a, const ComplexVector::Negate &b)
{
const ComplexVector::Mul_A_B ab(a.src, b.src);
return ab;
}
ComplexVector::NegMul_A_B operator*(const ComplexVector::Negate &a, const ComplexVector &b)
{
const ComplexVector::NegMul_A_B ab(a.src, b);
return ab;
}
ComplexVector::NegMul_A_B operator*(const ComplexVector &a, const ComplexVector::Negate &b)
{
const ComplexVector::NegMul_A_B ab(a, b.src);
return ab;
}
ComplexVector::ConjMul_A_B operator*(const ComplexVector::Conjugate &a, const ComplexVector::Conjugate &b)
{
const ComplexVector::ConjMul_A_B ab(a.src, b.src);
return ab;
}
ComplexVector::Mul_A_ConjB operator*(const ComplexVector::Conjugate &a, const ComplexVector &b)
{
const ComplexVector::Mul_A_ConjB ab(b, a);
return ab;
}
ComplexVector::Mul_A_ConjB operator*(const ComplexVector &a, const ComplexVector::Conjugate &b)
{
const ComplexVector::Mul_A_ConjB ab(a, b);
return ab;
}
ComplexVector::ConjMul_A_B operator*(const ComplexVector::ConjugateNegate &a, const ComplexVector::ConjugateNegate &b)
{
const ComplexVector::ConjMul_A_B ab(a.src, b.src);
return ab;
}
ComplexVector::NegMul_A_ConjB operator*(const ComplexVector &a, const ComplexVector::ConjugateNegate &b)
{
const ComplexVector::NegMul_A_ConjB ab(a, b.src);
return ab;
}
ComplexVector::NegMul_A_ConjB operator*(const ComplexVector::ConjugateNegate &a, const ComplexVector &b)
{
const ComplexVector::NegMul_A_ConjB ab(b, a.src);
return ab;
}
ComplexVector::NegMul_A_ConjB operator*(const ComplexVector::Negate &a, const ComplexVector::Conjugate &b)
{
const ComplexVector::NegMul_A_ConjB ab(a.src, b.src);
return ab;
}
ComplexVector::NegMul_A_ConjB operator*(const ComplexVector::Conjugate &a, const ComplexVector::Negate &b)
{
const ComplexVector::NegMul_A_ConjB ab(b.src, a.src);
return ab;
}
ComplexVector::Mul_A_ConjB operator*(const ComplexVector::Negate &a, const ComplexVector::ConjugateNegate &b)
{
const ComplexVector::Mul_A_ConjB ab(a.src, b.src);
return ab;
}
ComplexVector::Mul_A_ConjB operator*(const ComplexVector::ConjugateNegate &a, const ComplexVector::Negate &b)
{
const ComplexVector::Mul_A_ConjB ab(b.src, a.src);
return ab;
}
ComplexVector::Add_A_B operator+(const ComplexVector &a, radio_float_t b)
{
const ComplexVector bb = ComplexVector(b, 0);
const ComplexVector::Add_A_B ab(a, bb);
return ab;
}
ComplexVector::Add_A_B operator+(const ComplexVector &a, const ComplexVector &b)
{
const ComplexVector::Add_A_B ab(a, b);
return ab;
}
ComplexVector::Add_A_NegB operator+(const ComplexVector::Negate &a, const ComplexVector &b)
{
const ComplexVector::Add_A_NegB ab(b, a);
return ab;
}
ComplexVector::Add_A_NegB operator+(const ComplexVector &a, const ComplexVector::Negate &b)
{
const ComplexVector::Add_A_NegB ab(a, b);
return ab;
}
ComplexVector::Add_A_ConjB operator+(const ComplexVector::Conjugate &a, const ComplexVector &b)
{
const ComplexVector::Add_A_ConjB ab(b, a);
return ab;
}
ComplexVector::Add_A_ConjB operator+(const ComplexVector &a, const ComplexVector::Conjugate &b)
{
const ComplexVector::Add_A_ConjB ab(a, b);
return ab;
}
ComplexVector::ConjAdd_A_B operator+(const ComplexVector::Conjugate &a, const ComplexVector::Conjugate &b)
{
const ComplexVector::ConjAdd_A_B ab(a.src, b.src);
return ab;
}
ComplexVector::Add_A_ConjNegB operator+(const ComplexVector::ConjugateNegate &a, const ComplexVector &b)
{
const ComplexVector::Add_A_ConjNegB ab(b, a);
return ab;
}
ComplexVector::Add_A_ConjNegB operator+(const ComplexVector &a, const ComplexVector::ConjugateNegate &b)
{
const ComplexVector::Add_A_ConjNegB ab(a, b);
return ab;
}
ComplexVector::Add_A_B operator-(const ComplexVector &a, radio_float_t b)
{
const ComplexVector bb = ComplexVector(-b, 0);
const ComplexVector::Add_A_B ab(a, bb);
return ab;
}
ComplexVector::Add_A_NegB operator-(const ComplexVector &a, const ComplexVector &b)
{
const ComplexVector::Add_A_NegB ab(a, b);
return ab;
}
ComplexVector::NegAdd_A_B operator-(const ComplexVector::Negate &a, const ComplexVector &b)
{
const ComplexVector::NegAdd_A_B ab(a.src, b);
return ab;
}
ComplexVector::Add_A_B operator-(const ComplexVector &a, const ComplexVector::Negate &b)
{
const ComplexVector::Add_A_B ab(a, b.src);
return ab;
}
ComplexVector::Add_A_NegB operator-(const ComplexVector::Negate &a, const ComplexVector::Negate &b)
{
const ComplexVector::Add_A_NegB ab(b.src, a);
return ab;
}
ComplexVector::Add_A_ConjNegB operator-(const ComplexVector::Conjugate &a, const ComplexVector &b)
{
const ComplexVector::Add_A_ConjNegB ab(b, a);
return ab;
}
ComplexVector::Add_A_ConjNegB operator-(const ComplexVector &a, const ComplexVector::Conjugate &b)
{
const ComplexVector::Add_A_ConjNegB ab(a, b);
return ab;
}
ComplexVector::ConjAdd_A_B operator-(const ComplexVector::Conjugate &a, const ComplexVector::Conjugate &b)
{
const ComplexVector::ConjAdd_A_B ab(a.src, b.src);
return ab;
}
ComplexVector::NegAdd_A_ConjB operator-(const ComplexVector::ConjugateNegate &a, const ComplexVector &b)
{
const ComplexVector::NegAdd_A_ConjB ab(b, a.src);
return ab;
}
ComplexVector::Add_A_ConjB operator-(const ComplexVector &a, const ComplexVector::ConjugateNegate &b)
{
const ComplexVector::Add_A_ConjB ab(a, b.src);
return ab;
}