SOFUS ..
|
SOFUS interfaces and implementations. More...
Classes | |
class | AperturePulses |
class | focus_line_t |
struct | proj_limit_dist_t |
struct | sysparm_t |
struct | TransmissionTypeNS |
Typedefs | |
template<class T > | |
using | ApertureData = fnm::ApertureData< T > |
typedef TransmissionTypeNS::Value | TransmissionType |
typedef SOFUS_ImpulseTypeNS::ImpulseType_Value | ImpulseType |
typedef FNM_ExcitationTypeNS::ExcitationType_Value | ExcitationType |
typedef SOFUS_TimeDomainCalcTypeNS::Value | TimeDomainCalcType |
typedef SOFUS_TimeDomainIntOrderNS::Value | TimeDomainIntOrder |
Functions | |
template<class T > | |
int | calcProjectionAndLimits (const sysparm_t< T > &__restrict sysparm, const sps::element_rect_t< T > &__restrict element, const sps::point_t< T > &__restrict point, const T &__restrict delay, proj_limit_dist_t< T > *__restrict limits) |
template<class T > | |
int | calcProjectionAndBoundaries (const sysparm_t< T > &sysparm, const sps::element_rect_t< T > &element, const sps::point_t< T > &point, const T &delay, T *u, T *v, T *dist2plane, T(*arrivalTimes)[3], T(*vdists)[4]) |
template<typename T > | |
bool | calcProjectionAndIntegrationLimitsSIMD (const sysparm_t< T > &sysparm, const sps::element_rect_t< T > &element, const sps::point_t< T > &point, const T delay, __m128 *v_vuvu, __m128 *v_dist2plane, __m128 *v_hwhw, __m128 *v_vdists, T *fSampleStart, T *fSampleStop) |
template<typename T > | |
bool | calcProjectionAndIntegrationLimitsSIMD2 (const sysparm_t< T > &sysparm, const sps::element_rect_t< T > &element, const sps::point_t< T > &point, const T delay, __m256d *v_vuvu, __m256d *v_dist2plane, __m256d *v_hwhw, __m256d *v_vdists, T *fSampleStart, T *fSampleStop) |
template<> | |
bool | calcProjectionAndIntegrationLimitsSIMD (const sysparm_t< double > &sysparm, const sps::element_rect_t< double > &element, const sps::point_t< double > &point, const double delay, __m128 *v_vuvu, __m128 *v_dist2plane, __m128 *v_hwhw, __m128 *v_vdists, double *fSampleStart, double *fSampleStop) |
template<> | |
bool | calcProjectionAndIntegrationLimitsSIMD (const sysparm_t< float > &sysparm, const sps::element_rect_t< float > &element, const sps::point_t< float > &point, const float delay, __m128 *v_vuvu, __m128 *v_dist2plane, __m128 *v_hwhw, __m128 *v_vdists, float *fSampleStart, float *fSampleStop) |
template<> | |
bool | calcProjectionAndIntegrationLimitsSIMD2 (const sysparm_t< double > &sysparm, const sps::element_rect_t< double > &element, const sps::point_t< double > &point, const double delay, __m256d *v_vuvu, __m256d *v_dist2plane, __m256d *v_hwhw, __m256d *v_vdists, double *fSampleStart, double *fSampleStop) |
template<typename T > | |
int | calcArrivalTimesSIMD (const sysparm_t< T > &sysparm, const sps::element_rect_t< T > &element, const sps::point_t< T > &point, const T &delay, __m128 *v_hwhw, __m128 *v_vuvu, __m128 *v_dist2plane, __m128 *v_vdists, T(*arrivalTimes)[9]) |
template<> | |
int | calcArrivalTimesSIMD (const sysparm_t< double > &sysparm, const sps::element_rect_t< double > &element, const sps::point_t< double > &point, const double &delay, __m128 *v_hwhw, __m128 *v_vuvu, __m128 *v_dist2plane, __m128 *v_vdists, double(*arrivalTimes)[9]) |
template<> | |
int | calcArrivalTimesSIMD (const sysparm_t< float > &sysparm, const sps::element_rect_t< float > &element, const sps::point_t< float > &point, const float &delay, __m128 *v_hwhw, __m128 *v_vuvu, __m128 *v_dist2plane, __m128 *v_vdists, float(*arrivalTimes)[9]) |
template<> | |
int | calcProjectionAndLimits (const sysparm_t< double > &__restrict sysparm, const sps::element_rect_t< double > &__restrict element, const sps::point_t< double > &__restrict point, const double &__restrict delay, proj_limit_dist_t< double > *__restrict limits) |
template<> | |
int | calcProjectionAndLimits (const sysparm_t< float > &__restrict sysparm, const sps::element_rect_t< float > &__restrict element, const sps::point_t< float > &__restrict point, const float &__restrict delay, proj_limit_dist_t< float > *__restrict limits) |
template<class T > | |
void | ComputeBoxTimes (const sysparm_t< T > &sysparm, const sps::bbox_t< T > &box, const T *points, const size_t nPoints, const T *delays, const T *apodizations, const size_t nElements, T *tStart, int *iStartSample, size_t *nSamples) |
SOFUS interfaces and implementations.
: Use T* and restrict in prototypes and __builtin_assume_aligned inside function bodies
: Replace _mm256_dp_pd with _mm256_hsum_pd
using ApertureData = fnm::ApertureData<T> |
|
inline |
References SPS_UNREFERENCED_PARAMETERS.
|
inline |
References sysparm_t< T >::c, element_rect_t< T >::hh, and element_rect_t< T >::hw.
int calcArrivalTimesSIMD | ( | const sysparm_t< T > & | sysparm, |
const sps::element_rect_t< T > & | element, | ||
const sps::point_t< T > & | point, | ||
const T & | delay, | ||
__m128 * | v_hwhw, | ||
__m128 * | v_vuvu, | ||
__m128 * | v_dist2plane, | ||
__m128 * | v_vdists, | ||
T(*) | arrivalTimes[9] | ||
) |
|
inline |
Compute distance to plane, projection, distance to vertices and sample interval
sysparm | |
element | |
point | |
delay | |
u | Projection, u-coordinate [m] |
v | Projection, v-coordinate [m] |
dist2plane | Distance to plane [m] |
arrivalTimes | Arrivaltimes [s] |
vdists | Distance to vertices [m] |
References sysparm_t< T >::c, sps::dot(), element_rect_t< T >::hh, element_rect_t< T >::hw, and sps::norm().
Referenced by calcProjectionAndLimits().
|
inline |
References SPS_UNREFERENCED_PARAMETERS.
|
inline |
References sysparm_t< T >::c, sysparm_t< T >::fs, element_rect_t< T >::hh, and element_rect_t< T >::hw.
bool calcProjectionAndIntegrationLimitsSIMD | ( | const sysparm_t< T > & | sysparm, |
const sps::element_rect_t< T > & | element, | ||
const sps::point_t< T > & | point, | ||
const T | delay, | ||
__m128 * | v_vuvu, | ||
__m128 * | v_dist2plane, | ||
__m128 * | v_hwhw, | ||
__m128 * | v_vdists, | ||
T * | fSampleStart, | ||
T * | fSampleStop | ||
) |
Compute distance to plane, projection, distance to vertices and sample interval
sysparm | |
element | |
point | |
delay | |
v_vuvu | Projection [m] |
v_dist2plane | Distance to plane [m] |
v_hwhw | Half width/height [m] |
v_vdists | Distance to vertices [m] |
fSampleStart | Fractional sample start |
fSampleStop | Fractional sample stop |
Referenced by calcProjectionAndLimits().
|
inline |
References sysparm_t< T >::c, sysparm_t< T >::fs, element_rect_t< T >::hh, and element_rect_t< T >::hw.
bool calcProjectionAndIntegrationLimitsSIMD2 | ( | const sysparm_t< T > & | sysparm, |
const sps::element_rect_t< T > & | element, | ||
const sps::point_t< T > & | point, | ||
const T | delay, | ||
__m256d * | v_vuvu, | ||
__m256d * | v_dist2plane, | ||
__m256d * | v_hwhw, | ||
__m256d * | v_vdists, | ||
T * | fSampleStart, | ||
T * | fSampleStop | ||
) |
|
inline |
References calcProjectionAndBoundaries(), proj_limit_dist_t< T >::dist2plane, sysparm_t< T >::fs, proj_limit_dist_t< T >::fSampleStart, proj_limit_dist_t< T >::fSampleStop, proj_limit_dist_t< T >::u, and proj_limit_dist_t< T >::v.
|
inline |
References sysparm_t< T >::c, calcProjectionAndIntegrationLimitsSIMD(), proj_limit_dist_t< T >::dist2plane, sysparm_t< T >::fs, proj_limit_dist_t< T >::fSampleStart, proj_limit_dist_t< T >::fSampleStop, proj_limit_dist_t< T >::u, proj_limit_dist_t< T >::v, and proj_limit_dist_t< T >::vdists.
int calcProjectionAndLimits | ( | const sysparm_t< T > &__restrict | sysparm, |
const sps::element_rect_t< T > &__restrict | element, | ||
const sps::point_t< T > &__restrict | point, | ||
const T &__restrict | delay, | ||
proj_limit_dist_t< T > *__restrict | limits | ||
) |
sysparm | |
element | |
point | |
delay | |
limits |
void ComputeBoxTimes | ( | const sysparm_t< T > & | sysparm, |
const sps::bbox_t< T > & | box, | ||
const T * | points, | ||
const size_t | nPoints, | ||
const T * | delays, | ||
const T * | apodizations, | ||
const size_t | nElements, | ||
T * | tStart, | ||
int * | iStartSample, | ||
size_t * | nSamples | ||
) |
Compute boundary for signals at points from an aperture confined to a box. This can be used for allocating memory for a one-way response.
sysparm | |
box | A box encapsulating the aperture |
points | |
nPoints | |
delays | |
apodizations | |
nElements | |
tStart | |
iStartSample | |
nSamples |