Loading...
Searching...
No Matches
q3::precision Namespace Reference

Functions

void cast_double_to_single (int count, const Complex *source, ComplexSingle *destination)
 
void cast_real_double_to_single (int count, const Real *source, RealSingle *destination)
 
void cast_real_single_to_double (int count, const RealSingle *source, Real *destination)
 
void cast_single_to_double (int count, const ComplexSingle *source, Complex *destination)
 

Function Documentation

◆ cast_double_to_single()

void q3::precision::cast_double_to_single ( int  count,
const Complex *  source,
ComplexSingle *  destination 
)
inline

Cast an array of double-precision complex values to single-precision.

Element-wise narrowing conversion: each Complex element is converted to ComplexSingle by truncating the mantissa from 52 to 23 bits.

Parameters
countNumber of elements to convert.
sourceInput array of Complex (FP64) values.
destinationOutput array of ComplexSingle (FP32) values. Must be pre-allocated with at least count elements.

Definition at line 35 of file precision_cast.hpp.

Referenced by q3::GPUPlanewaveHamiltonianApplicator::prepare_kpoint().

◆ cast_real_double_to_single()

void q3::precision::cast_real_double_to_single ( int  count,
const Real *  source,
RealSingle *  destination 
)
inline

Cast an array of double-precision real values to single-precision.

Parameters
countNumber of elements to convert.
sourceInput array of Real (FP64) values.
destinationOutput array of RealSingle (FP32) values.

Definition at line 67 of file precision_cast.hpp.

Referenced by q3::GPUPlanewaveHamiltonianApplicator::prepare_kpoint(), and q3::GPUPlanewaveHamiltonianApplicator::update_potential().

◆ cast_real_single_to_double()

void q3::precision::cast_real_single_to_double ( int  count,
const RealSingle *  source,
Real *  destination 
)
inline

Cast an array of single-precision real values to double-precision.

Parameters
countNumber of elements to convert.
sourceInput array of RealSingle (FP32) values.
destinationOutput array of Real (FP64) values.

Definition at line 80 of file precision_cast.hpp.

◆ cast_single_to_double()

void q3::precision::cast_single_to_double ( int  count,
const ComplexSingle *  source,
Complex *  destination 
)
inline

Cast an array of single-precision complex values to double-precision.

Element-wise widening conversion: each ComplexSingle element is converted to Complex by zero-extending the mantissa.

Parameters
countNumber of elements to convert.
sourceInput array of ComplexSingle (FP32) values.
destinationOutput array of Complex (FP64) values. Must be pre-allocated with at least count elements.

Definition at line 53 of file precision_cast.hpp.