|
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 |