105 #define binned_DBMAXINDEX (((DBL_MAX_EXP - DBL_MIN_EXP + DBL_MANT_DIG - 1)/DBWIDTH) - 1) 115 #define binned_SBMAXINDEX (((FLT_MAX_EXP - FLT_MIN_EXP + FLT_MANT_DIG - 1)/SBWIDTH) - 1) 123 #define binned_DBMAXFOLD (binned_DBMAXINDEX + 1) 131 #define binned_SBMAXFOLD (binned_SBMAXINDEX + 1) 142 #define binned_DBENDURANCE (1 << (DBL_MANT_DIG - DBWIDTH - 2)) 153 #define binned_SBENDURANCE (1 << (FLT_MANT_DIG - SBWIDTH - 2)) 163 #define binned_DBCAPACITY (binned_DBENDURANCE*(1.0/DBL_EPSILON - 1.0)) 173 #define binned_SBCAPACITY (binned_SBENDURANCE*(1.0/FLT_EPSILON - 1.0)) 184 #define binned_DMCOMPRESSION (1.0/(1 << (DBL_MANT_DIG - DBWIDTH + 1))) 195 #define binned_SMCOMPRESSION (1.0/(1 << (FLT_MANT_DIG - SBWIDTH + 1))) 206 #define binned_DMEXPANSION (1.0*(1 << (DBL_MANT_DIG - DBWIDTH + 1))) 217 #define binned_SMEXPANSION (1.0*(1 << (FLT_MANT_DIG - SBWIDTH + 1))) 234 double binned_dbbound(
const int fold,
const int N,
const double X,
const double S);
235 float binned_sbbound(
const int fold,
const int N,
const float X,
const float S);
254 void binned_dmprint(
const int fold,
const double *priX,
const int incpriX,
const double *carX,
const int inccarX);
256 void binned_zmprint(
const int fold,
const double *priX,
const int incpriX,
const double *carX,
const int inccarX);
258 void binned_smprint(
const int fold,
const float *priX,
const int incpriX,
const float *carX,
const int inccarX);
260 void binned_cmprint(
const int fold,
const float* priX,
const int incpriX,
const float* carX,
const int inccarX);
263 void binned_dmdmset(
const int fold,
const double *priX,
const int incpriX,
const double *carX,
const int inccarX,
double *priY,
const int incpriY,
double *carY,
const int inccarY);
265 void binned_zmzmset(
const int fold,
const double *priX,
const int incpriX,
const double *carX,
const int inccarX,
double *priY,
const int incpriY,
double *carY,
const int inccarY);
267 void binned_zmdmset(
const int fold,
const double *priX,
const int incpriX,
const double *carX,
const int inccarX,
double *priY,
const int incpriY,
double *carY,
const int inccarY);
269 void binned_smsmset(
const int fold,
const float *priX,
const int incpriX,
const float *carX,
const int inccarX,
float *priY,
const int incpriY,
float *carY,
const int inccarY);
271 void binned_cmcmset(
const int fold,
const float *priX,
const int incpriX,
const float *carX,
const int inccarX,
float *priY,
const int incpriY,
float *carY,
const int inccarY);
273 void binned_cmsmset(
const int fold,
const float *priX,
const int incpriX,
const float *carX,
const int inccarX,
float *priY,
const int incpriY,
float *carY,
const int inccarY);
276 void binned_dmsetzero(
const int fold,
double *priX,
const int incpriX,
double *carX,
const int inccarX);
278 void binned_zmsetzero(
const int fold,
double *priX,
const int incpriX,
double *carX,
const int inccarX);
280 void binned_smsetzero(
const int fold,
float *priX,
const int incpriX,
float *carX,
const int inccarX);
282 void binned_cmsetzero(
const int fold,
float *priX,
const int incpriX,
float *carX,
const int inccarX);
285 void binned_dmdmadd(
const int fold,
const double *priX,
const int incpriX,
const double *carX,
const int inccarX,
double* priY,
const int incpriY,
double* carY,
const int inccarY);
287 void binned_zmzmadd(
const int fold,
const double *priX,
const int incpriX,
const double *carX,
const int inccarX,
double* priY,
const int incpriY,
double* carY,
const int inccarY);
289 void binned_smsmadd(
const int fold,
const float *priX,
const int incpriX,
const float *carX,
const int inccarX,
float* priY,
const int incpriY,
float* carY,
const int inccarY) ;
291 void binned_cmcmadd(
const int fold,
const float *priX,
const int incpriX,
const float *carX,
const int inccarX,
float* priY,
const int incpriY,
float* carY,
const int inccarY) ;
299 void binned_dmdadd(
const int fold,
const double X,
double *priY,
const int incpriY,
double *carY,
const int inccarY);
301 void binned_zmzadd(
const int fold,
const void *X,
double *priY,
const int incpriY,
double *carY,
const int inccarY);
303 void binned_smsadd(
const int fold,
const float X,
float *priY,
const int incpriY,
float *carY,
const int inccarY);
305 void binned_cmcadd(
const int fold,
const void *X,
float *priY,
const int incpriY,
float *carY,
const int inccarY);
308 void binned_dmdupdate(
const int fold,
const double X,
double* priY,
const int incpriY,
double* carY,
const int inccarY);
310 void binned_zmzupdate(
const int fold,
const void *X,
double* priY,
const int incpriY,
double* carY,
const int inccarY);
312 void binned_zmdupdate(
const int fold,
const double X,
double* priY,
const int incpriY,
double* carY,
const int inccarY);
314 void binned_smsupdate(
const int fold,
const float X,
float* priY,
const int incpriY,
float* carY,
const int inccarY);
316 void binned_cmcupdate(
const int fold,
const void *X,
float* priY,
const int incpriY,
float* carY,
const int inccarY);
318 void binned_cmsupdate(
const int fold,
const float X,
float* priY,
const int incpriY,
float* carY,
const int inccarY);
321 void binned_dmddeposit(
const int fold,
const double X,
double *priY,
const int incpriY);
323 void binned_zmzdeposit(
const int fold,
const void *X,
double *priY,
const int incpriY);
325 void binned_smsdeposit(
const int fold,
const float X,
float *priY,
const int incpriY);
327 void binned_cmcdeposit(
const int fold,
const void *X,
float *priY,
const int incpriY);
330 void binned_dmrenorm(
const int fold,
double* priX,
const int incpriX,
double* carX,
const int inccarX);
332 void binned_zmrenorm(
const int fold,
double* priX,
const int incpriX,
double* carX,
const int inccarX);
334 void binned_smrenorm(
const int fold,
float* priX,
const int incpriX,
float* carX,
const int inccarX);
336 void binned_cmrenorm(
const int fold,
float* priX,
const int incpriX,
float* carX,
const int inccarX);
339 void binned_dmdconv(
const int fold,
const double X,
double* priY,
const int incpriY,
double* carY,
const int inccarY);
341 void binned_zmzconv(
const int fold,
const void *X,
double *priY,
const int incpriY,
double *carY,
const int inccarY);
343 void binned_smsconv(
const int fold,
const float X,
float* priY,
const int incpriY,
float* carY,
const int inccarY);
345 void binned_cmcconv(
const int fold,
const void *X,
float *priY,
const int incpriY,
float *carY,
const int inccarY);
347 double binned_ddmconv(
const int fold,
const double* priX,
const int incpriX,
const double* carX,
const int inccarX);
349 void binned_zzmconv_sub(
const int fold,
const double *priX,
const int incpriX,
const double *carX,
const int inccarX,
void *conv);
351 float binned_ssmconv(
const int fold,
const float* priX,
const int incpriX,
const float* carX,
const int inccarX);
353 void binned_ccmconv_sub(
const int fold,
const float *priX,
const int incpriX,
const float *carX,
const int inccarX,
void *conv);
356 void binned_dmnegate(
const int fold,
double* priX,
const int incpriX,
double* carX,
const int inccarX);
358 void binned_zmnegate(
const int fold,
double* priX,
const int incpriX,
double* carX,
const int inccarX);
360 void binned_smnegate(
const int fold,
float* priX,
const int incpriX,
float* carX,
const int inccarX);
362 void binned_cmnegate(
const int fold,
float* priX,
const int incpriX,
float* carX,
const int inccarX);
367 void binned_dmdrescale(
const int fold,
const double X,
const double scaleY,
double *priY,
const int incpriY,
double *carY,
const int inccarY);
368 void binned_zmdrescale(
const int fold,
const double X,
const double scaleY,
double *priY,
const int incpriY,
double *carY,
const int inccarY);
369 void binned_smsrescale(
const int fold,
const float X,
const float scaleY,
float *priY,
const int incpriY,
float *carY,
const int inccarY);
370 void binned_cmsrescale(
const int fold,
const float X,
const float scaleY,
float *priY,
const int incpriY,
float *carY,
const int inccarY);
372 double binned_dmdmaddsq(
const int fold,
const double scaleX,
const double *priX,
const int incpriX,
const double *carX,
const int inccarX,
const double scaleY,
double *priY,
const int incpriY,
double *carY,
const int inccarY);
374 float binned_smsmaddsq(
const int fold,
const float scaleX,
const float *priX,
const int incpriX,
const float *carX,
const int inccarX,
const float scaleY,
float *priY,
const int incpriY,
float *carY,
const int inccarY);
int binned_smindex(const float *priX)
Get index of manually specified binned single precision.
Definition: smindex.c:22
void binned_dmdmset(const int fold, const double *priX, const int incpriX, const double *carX, const int inccarX, double *priY, const int incpriY, double *carY, const int inccarY)
Set manually specified binned double precision (Y = X)
Definition: dmdmset.c:23
void binned_zmrenorm(const int fold, double *priX, const int incpriX, double *carX, const int inccarX)
Renormalize manually specified binned complex double precision.
Definition: zmrenorm.c:19
void binned_dmrenorm(const int fold, double *priX, const int incpriX, double *carX, const int inccarX)
Renormalize manually specified binned double precision.
Definition: dmrenorm.c:23
size_t binned_dbsize(const int fold)
binned double precision size
Definition: dbsize.c:13
void binned_cbcadd(const int fold, const void *X, float_complex_binned *Y)
Add complex single precision to binned complex single precision (Y += X)
Definition: cbcadd.c:16
void binned_zmzmadd(const int fold, const double *priX, const int incpriX, const double *carX, const int inccarX, double *priY, const int incpriY, double *carY, const int inccarY)
Add manually specified binned complex double precision (Y += X)
Definition: zmzmadd.c:23
int binned_dbnum(const int fold)
binned double precision size
Definition: dbnum.c:12
void binned_zbdbset(const int fold, const double_binned *X, double_complex_binned *Y)
Set binned complex double precision to binned double precision (Y = X)
Definition: zbdbset.c:16
int binned_zmdenorm(const int fold, const double *priX)
Check if binned type has denormal bits.
Definition: zmdenorm.c:20
void binned_cmcmadd(const int fold, const float *priX, const int incpriX, const float *carX, const int inccarX, float *priY, const int incpriY, float *carY, const int inccarY)
Add manually specified binned complex single precision (Y += X)
Definition: cmcmadd.c:23
float binned_sbsbaddsq(const int fold, const float scaleX, const float_binned *X, const float scaleY, float_binned *Y)
Add binned single precision scaled sums of squares (Y += X)
Definition: sbsbaddsq.c:19
void binned_zmzconv(const int fold, const void *X, double *priY, const int incpriY, double *carY, const int inccarY)
Convert complex double precision to manually specified binned complex double precision (X -> Y) ...
Definition: zmzconv.c:18
double binned_ufp(const double X)
unit in the first place
Definition: ufp.c:20
const double * binned_dmbins(const int X)
Get binned double precision reference bins.
Definition: dmbins.c:23
void binned_cbrenorm(const int fold, float_complex_binned *X)
Renormalize binned complex single precision.
Definition: cbrenorm.c:15
int binned_smindex0(const float *priX)
Check if index of manually specified binned single precision is 0.
Definition: smindex0.c:19
float float_complex_binned
The binned complex float datatype.
Definition: binned.h:73
int binned_sbnum(const int fold)
binned single precision size
Definition: sbnum.c:12
void binned_cmcmset(const int fold, const float *priX, const int incpriX, const float *carX, const int inccarX, float *priY, const int incpriY, float *carY, const int inccarY)
Set manually specified binned complex single precision (Y = X)
Definition: cmcmset.c:23
void binned_zmzdeposit(const int fold, const void *X, double *priY, const int incpriY)
Add complex double precision to suitably binned manually specified binned complex double precision (Y...
Definition: zmzdeposit.c:24
void binned_smnegate(const int fold, float *priX, const int incpriX, float *carX, const int inccarX)
Negate manually specified binned single precision (X = -X)
Definition: smnegate.c:19
int binned_cmdenorm(const int fold, const float *priX)
Check if binned type has denormal bits.
Definition: cmdenorm.c:20
void binned_dbddeposit(const int fold, const double X, double_binned *Y)
Add double precision to suitably binned binned double precision (Y += X)
Definition: dbddeposit.c:18
int binned_dmindex0(const double *priX)
Check if index of manually specified binned double precision is 0.
Definition: dmindex0.c:19
void binned_dbdbaddv(const int fold, const int N, const double_binned *X, const int incX, double_binned *Y, const int incY)
Add binned double precision vectors (Y += X)
Definition: dbdbaddv.c:18
void binned_smsadd(const int fold, const float X, float *priY, const int incpriY, float *carY, const int inccarY)
Add single precision to manually specified binned single precision (Y += X)
Definition: smsadd.c:20
void binned_zmprint(const int fold, const double *priX, const int incpriX, const double *carX, const int inccarX)
Print manually specified binned complex double precision.
Definition: zmprint.c:22
double binned_dbbound(const int fold, const int N, const double X, const double S)
Get binned double precision summation error bound.
Definition: dbbound.c:21
int binned_cbnum(const int fold)
binned complex single precision size
Definition: cbnum.c:12
void binned_cmcdeposit(const int fold, const void *X, float *priY, const int incpriY)
Add complex single precision to suitably binned manually specified binned complex single precision (Y...
Definition: cmcdeposit.c:24
void binned_zzbconv_sub(const int fold, const double_complex_binned *X, void *conv)
Convert binned complex double precision to complex double precision (X -> Y)
Definition: zzbconv_sub.c:14
int binned_dmdenorm(const int fold, const double *priX)
Check if binned type has denormal bits.
Definition: dmdenorm.c:20
void binned_dmsetzero(const int fold, double *priX, const int incpriX, double *carX, const int inccarX)
Set manually specified binned double precision to 0 (X = 0)
Definition: dmsetzero.c:19
void binned_ccbconv_sub(const int fold, const float_complex_binned *X, void *conv)
Convert binned complex single precision to complex single precision (X -> Y)
Definition: ccbconv_sub.c:14
void binned_cmsmset(const int fold, const float *priX, const int incpriX, const float *carX, const int inccarX, float *priY, const int incpriY, float *carY, const int inccarY)
Set manually specified binned complex single precision to manually specified binned single precision ...
Definition: cmsmset.c:23
void binned_dbdupdate(const int fold, const double X, double_binned *Y)
Update binned double precision with double precision (X -> Y)
Definition: dbdupdate.c:16
double binned_ddbconv(const int fold, const double_binned *X)
Convert binned double precision to double precision (X -> Y)
Definition: ddbconv.c:14
void binned_dmdadd(const int fold, const double X, double *priY, const int incpriY, double *carY, const int inccarY)
Add double precision to manually specified binned double precision (Y += X)
Definition: dmdadd.c:20
void binned_sbsbaddv(const int fold, const int N, const float_binned *X, const int incX, float_binned *Y, const int incY)
Add binned single precision vectors (Y += X)
Definition: sbsbaddv.c:18
void binned_dbdadd(const int fold, const double X, double_binned *Y)
Add double precision to binned double precision (Y += X)
Definition: dbdadd.c:16
void binned_dbprint(const int fold, const double_binned *X)
Print binned double precision.
Definition: dbprint.c:13
void binned_cbsetzero(const int fold, float_complex_binned *X)
Set binned single precision to 0 (X = 0)
Definition: cbsetzero.c:17
void binned_zbzbset(const int fold, const double_complex_binned *X, double_complex_binned *Y)
Set binned complex double precision (Y = X)
Definition: zbzbset.c:18
void binned_cmnegate(const int fold, float *priX, const int incpriX, float *carX, const int inccarX)
Negate manually specified binned complex single precision (X = -X)
Definition: cmnegate.c:19
float binned_sbbound(const int fold, const int N, const float X, const float S)
Get binned single precision summation error bound.
Definition: sbbound.c:25
void binned_sbsbadd(const int fold, const float_binned *X, float_binned *Y)
Add binned single precision (Y += X)
Definition: sbsbadd.c:16
void binned_zzmconv_sub(const int fold, const double *priX, const int incpriX, const double *carX, const int inccarX, void *conv)
Convert manually specified binned complex double precision to complex double precision (X -> Y) ...
Definition: zzmconv_sub.c:18
void binned_zmzmset(const int fold, const double *priX, const int incpriX, const double *carX, const int inccarX, double *priY, const int incpriY, double *carY, const int inccarY)
Set manually specified binned complex double precision (Y = X)
Definition: zmzmset.c:23
void binned_dbdbset(const int fold, const double_binned *X, double_binned *Y)
Set binned double precision (Y = X)
Definition: dbdbset.c:18
void binned_dmnegate(const int fold, double *priX, const int incpriX, double *carX, const int inccarX)
Negate manually specified binned double precision (X = -X)
Definition: dmnegate.c:19
int binned_smdenorm(const int fold, const float *priX)
Check if binned type has denormal bits.
Definition: smdenorm.c:20
double_binned * binned_dballoc(const int fold)
binned double precision allocation
Definition: dballoc.c:12
void binned_sbsupdate(const int fold, const float X, float_binned *Y)
Update binned single precision with single precision (X -> Y)
Definition: sbsupdate.c:16
void binned_zbzconv(const int fold, const void *X, double_complex_binned *Y)
Convert complex double precision to binned complex double precision (X -> Y)
Definition: zbzconv.c:14
void binned_zbzadd(const int fold, const void *X, double_complex_binned *Y)
Add complex double precision to binned complex double precision (Y += X)
Definition: zbzadd.c:16
void binned_sbnegate(const int fold, float_binned *X)
Negate binned single precision (X = -X)
Definition: sbnegate.c:15
void binned_cbnegate(const int fold, float_complex_binned *X)
Negate binned complex single precision (X = -X)
Definition: cbnegate.c:15
void binned_dbdbadd(const int fold, const double_binned *X, double_binned *Y)
Add binned double precision (Y += X)
Definition: dbdbadd.c:16
int binned_zbnum(const int fold)
binned complex double precision size
Definition: zbnum.c:12
void binned_dbsetzero(const int fold, double_binned *X)
Set binned double precision to 0 (X = 0)
Definition: dbsetzero.c:17
void binned_sbsbset(const int fold, const float_binned *X, float_binned *Y)
Set binned single precision (Y = X)
Definition: sbsbset.c:18
void binned_smsconv(const int fold, const float X, float *priY, const int incpriY, float *carY, const int inccarY)
Convert single precision to manually specified binned single precision (X -> Y)
Definition: smsconv.c:18
double double_binned
The binned double datatype.
Definition: binned.h:46
void binned_cmrenorm(const int fold, float *priX, const int incpriX, float *carX, const int inccarX)
Renormalize manually specified binned complex single precision.
Definition: cmrenorm.c:19
void binned_zmzadd(const int fold, const void *X, double *priY, const int incpriY, double *carY, const int inccarY)
Add complex double precision to manually specified binned complex double precision (Y += X) ...
Definition: zmzadd.c:20
void binned_smrenorm(const int fold, float *priX, const int incpriX, float *carX, const int inccarX)
Renormalize manually specified binned single precision.
Definition: smrenorm.c:23
void binned_dmdconv(const int fold, const double X, double *priY, const int incpriY, double *carY, const int inccarY)
Convert double precision to manually specified binned double precision (X -> Y)
Definition: dmdconv.c:18
void binned_zmdmset(const int fold, const double *priX, const int incpriX, const double *carX, const int inccarX, double *priY, const int incpriY, double *carY, const int inccarY)
Set manually specified binned complex double precision to manually specified binned double precision ...
Definition: zmdmset.c:23
void binned_sbprint(const int fold, const float_binned *X)
Print binned single precision.
Definition: sbprint.c:13
void binned_cbcbset(const int fold, const float_complex_binned *X, float_complex_binned *Y)
Set binned complex single precision (Y = X)
Definition: cbcbset.c:18
double binned_dmdmaddsq(const int fold, const double scaleX, const double *priX, const int incpriX, const double *carX, const int inccarX, const double scaleY, double *priY, const int incpriY, double *carY, const int inccarY)
Add manually specified binned double precision scaled sums of squares (Y += X)
Definition: dmdmaddsq.c:26
double binned_ddmconv(const int fold, const double *priX, const int incpriX, const double *carX, const int inccarX)
Convert manually specified binned double precision to double precision (X -> Y)
Definition: ddmconv.c:23
size_t binned_sbsbze(const int fold)
binned single precision size
Definition: sbsbze.c:13
float_complex_binned * binned_cballoc(const int fold)
binned complex single precision allocation
Definition: cballoc.c:12
const float * binned_smbins(const int X)
Get binned single precision reference bins.
Definition: smbins.c:23
void binned_ccmconv_sub(const int fold, const float *priX, const int incpriX, const float *carX, const int inccarX, void *conv)
Convert manually specified binned complex single precision to complex single precision (X -> Y) ...
Definition: ccmconv_sub.c:18
void binned_dmdmadd(const int fold, const double *priX, const int incpriX, const double *carX, const int inccarX, double *priY, const int incpriY, double *carY, const int inccarY)
Add manually specified binned double precision (Y += X)
Definition: dmdmadd.c:27
void binned_smsrescale(const int fold, const float X, const float scaleY, float *priY, const int incpriY, float *carY, const int inccarY)
rescale manually specified binned single precision sum of squares
Definition: smsrescale.c:20
void binned_cmsupdate(const int fold, const float X, float *priY, const int incpriY, float *carY, const int inccarY)
Update manually specified binned complex single precision with single precision (X -> Y) ...
Definition: cmsupdate.c:20
void binned_sbsconv(const int fold, const float X, float_binned *Y)
Convert single precision to binned single precision (X -> Y)
Definition: sbsconv.c:14
void binned_zbzdeposit(const int fold, const void *X, double_complex_binned *Y)
Add complex double precision to suitably binned binned complex double precision (Y += X) ...
Definition: zbzdeposit.c:18
float binned_smsmaddsq(const int fold, const float scaleX, const float *priX, const int incpriX, const float *carX, const int inccarX, const float scaleY, float *priY, const int incpriY, float *carY, const int inccarY)
Add manually specified binned single precision scaled sums of squares (Y += X)
Definition: smsmaddsq.c:27
void binned_dmdrescale(const int fold, const double X, const double scaleY, double *priY, const int incpriY, double *carY, const int inccarY)
rescale manually specified binned double precision sum of squares
Definition: dmdrescale.c:20
void binned_zbprint(const int fold, const double_complex_binned *X)
Print binned complex double precision.
Definition: zbprint.c:13
void binned_cbcdeposit(const int fold, const void *X, float_complex_binned *Y)
Add complex single precision to suitably binned binned complex single precision (Y += X) ...
Definition: cbcdeposit.c:18
double binned_dscale(const double X)
Get a reproducible double precision scale.
Definition: dscale.c:25
void binned_zmsetzero(const int fold, double *priX, const int incpriX, double *carX, const int inccarX)
Set manually specified binned complex double precision to 0 (X = 0)
Definition: zmsetzero.c:19
void binned_smsmadd(const int fold, const float *priX, const int incpriX, const float *carX, const int inccarX, float *priY, const int incpriY, float *carY, const int inccarY)
Add manually specified binned single precision (Y += X)
Definition: smsmadd.c:27
void binned_zmdrescale(const int fold, const double X, const double scaleY, double *priY, const int incpriY, double *carY, const int inccarY)
rescale manually specified binned complex double precision sum of squares
Definition: zmdrescale.c:20
void binned_dmprint(const int fold, const double *priX, const int incpriX, const double *carX, const int inccarX)
Print manually specified binned double precision.
Definition: dmprint.c:22
void binned_smsetzero(const int fold, float *priX, const int incpriX, float *carX, const int inccarX)
Set manually specified binned single precision to 0 (X = 0)
Definition: smsetzero.c:19
int binned_dmindex(const double *priX)
Get index of manually specified binned double precision.
Definition: dmindex.c:22
void binned_cmsrescale(const int fold, const float X, const float scaleY, float *priY, const int incpriY, float *carY, const int inccarY)
rescale manually specified binned complex single precision sum of squares
Definition: cmsrescale.c:20
void binned_sbsdeposit(const int fold, const float X, float_binned *Y)
Add single precision to suitably binned binned single precision (Y += X)
Definition: sbsdeposit.c:18
void binned_zmdupdate(const int fold, const double X, double *priY, const int incpriY, double *carY, const int inccarY)
Update manually specified binned complex double precision with double precision (X -> Y) ...
Definition: zmdupdate.c:20
void binned_zbsetzero(const int fold, double_complex_binned *X)
Set binned double precision to 0 (X = 0)
Definition: zbsetzero.c:17
void binned_smsupdate(const int fold, const float X, float *priY, const int incpriY, float *carY, const int inccarY)
Update manually specified binned single precision with single precision (X -> Y)
Definition: smsupdate.c:24
void binned_dbnegate(const int fold, double_binned *X)
Negate binned double precision (X = -X)
Definition: dbnegate.c:15
float binned_sscale(const float X)
Get a reproducible single precision scale.
Definition: sscale.c:25
void binned_dmddeposit(const int fold, const double X, double *priY, const int incpriY)
Add double precision to suitably binned manually specified binned double precision (Y += X) ...
Definition: dmddeposit.c:24
void binned_cbcbadd(const int fold, const float_complex_binned *X, float_complex_binned *Y)
Add binned complex single precision (Y += X)
Definition: cbcbadd.c:16
void binned_cbcconv(const int fold, const void *X, float_complex_binned *Y)
Convert complex single precision to binned complex single precision (X -> Y)
Definition: cbcconv.c:14
void binned_cbcupdate(const int fold, const void *X, float_complex_binned *Y)
Update binned complex single precision with complex single precision (X -> Y)
Definition: cbcupdate.c:16
void binned_cbprint(const int fold, const float_complex_binned *X)
Print binned complex single precision.
Definition: cbprint.c:13
void binned_cmsetzero(const int fold, float *priX, const int incpriX, float *carX, const int inccarX)
Set manually specified binned complex single precision to 0 (X = 0)
Definition: cmsetzero.c:19
void binned_cmcadd(const int fold, const void *X, float *priY, const int incpriY, float *carY, const int inccarY)
Add complex single precision to manually specified binned complex single precision (Y += X) ...
Definition: cmcadd.c:20
double_complex_binned * binned_zballoc(const int fold)
binned complex double precision allocation
Definition: zballoc.c:12
void binned_cbsupdate(const int fold, const float X, float_complex_binned *Y)
Update binned complex single precision with single precision (X -> Y)
Definition: cbsupdate.c:16
size_t binned_zbsize(const int fold)
binned complex double precision size
Definition: zbsize.c:13
float binned_ufpf(const float X)
unit in the first place
Definition: ufpf.c:20
void binned_cmprint(const int fold, const float *priX, const int incpriX, const float *carX, const int inccarX)
Print manually specified binned complex single precision.
Definition: cmprint.c:22
double double_complex_binned
The binned complex double datatype.
Definition: binned.h:55
void binned_smsmset(const int fold, const float *priX, const int incpriX, const float *carX, const int inccarX, float *priY, const int incpriY, float *carY, const int inccarY)
Set manually specified binned single precision (Y = X)
Definition: smsmset.c:23
void binned_cbcbaddv(const int fold, const int N, const float_complex_binned *X, const int incX, float_complex_binned *Y, const int incY)
Add binned complex single precision vectors (Y += X)
Definition: cbcbaddv.c:18
float binned_ssmconv(const int fold, const float *priX, const int incpriX, const float *carX, const int inccarX)
Convert manually specified binned single precision to single precision (X -> Y)
Definition: ssmconv.c:22
void binned_cmcconv(const int fold, const void *X, float *priY, const int incpriY, float *carY, const int inccarY)
Convert complex single precision to manually specified binned complex single precision (X -> Y) ...
Definition: cmcconv.c:18
void binned_zbzupdate(const int fold, const void *X, double_complex_binned *Y)
Update binned complex double precision with complex double precision (X -> Y)
Definition: zbzupdate.c:16
void binned_smsdeposit(const int fold, const float X, float *priY, const int incpriY)
Add single precision to suitably binned manually specified binned single precision (Y += X) ...
Definition: smsdeposit.c:24
void binned_dbrenorm(const int fold, double_binned *X)
Renormalize binned double precision.
Definition: dbrenorm.c:15
void binned_sbsadd(const int fold, const float X, float_binned *Y)
Add single precision to binned single precision (Y += X)
Definition: sbsadd.c:16
int binned_dindex(const double X)
Get index of double precision.
Definition: dindex.c:19
size_t binned_cbsize(const int fold)
binned complex single precision size
Definition: cbsize.c:13
int binned_sindex(const float X)
Get index of single precision.
Definition: sindex.c:19
void binned_zmnegate(const int fold, double *priX, const int incpriX, double *carX, const int inccarX)
Negate manually specified binned complex double precision (X = -X)
Definition: zmnegate.c:19
void binned_sbsetzero(const int fold, float_binned *X)
Set binned single precision to 0 (X = 0)
Definition: sbsetzero.c:17
void binned_zbzbadd(const int fold, const double_complex_binned *X, double_complex_binned *Y)
Add binned complex double precision (Y += X)
Definition: zbzbadd.c:16
void binned_smprint(const int fold, const float *priX, const int incpriX, const float *carX, const int inccarX)
Print manually specified binned single precision.
Definition: smprint.c:22
void binned_dbdconv(const int fold, const double X, double_binned *Y)
Convert double precision to binned double precision (X -> Y)
Definition: dbdconv.c:14
double binned_dbdbaddsq(const int fold, const double scaleX, const double_binned *X, const double scaleY, double_binned *Y)
Add binned double precision scaled sums of squares (Y += X)
Definition: dbdbaddsq.c:19
float_binned * binned_sballoc(const int fold)
binned single precision allocation
Definition: sballoc.c:12
void binned_zmzupdate(const int fold, const void *X, double *priY, const int incpriY, double *carY, const int inccarY)
Update manually specified binned complex double precision with complex double precision (X -> Y) ...
Definition: zmzupdate.c:20
void binned_sbrenorm(const int fold, float_binned *X)
Renormalize binned single precision.
Definition: sbrenorm.c:15
float float_binned
The binned float datatype.
Definition: binned.h:64
void binned_dmdupdate(const int fold, const double X, double *priY, const int incpriY, double *carY, const int inccarY)
Update manually specified binned double precision with double precision (X -> Y)
Definition: dmdupdate.c:24
float binned_ssbconv(const int fold, const float_binned *X)
Convert binned single precision to single precision (X -> Y)
Definition: ssbconv.c:14
void binned_cbsbset(const int fold, const float_binned *X, float_complex_binned *Y)
Set binned complex single precision to binned single precision (Y = X)
Definition: cbsbset.c:16
void binned_zbdupdate(const int fold, const double X, double_complex_binned *Y)
Update binned complex double precision with double precision (X -> Y)
Definition: zbdupdate.c:16
void binned_zbrenorm(const int fold, double_complex_binned *X)
Renormalize binned complex double precision.
Definition: zbrenorm.c:15
void binned_zbzbaddv(const int fold, const int N, const double_complex_binned *X, const int incX, double_complex_binned *Y, const int incY)
Add binned complex double precision vectors (Y += X)
Definition: zbzbaddv.c:18
void binned_cmcupdate(const int fold, const void *X, float *priY, const int incpriY, float *carY, const int inccarY)
Update manually specified binned complex single precision with complex single precision (X -> Y) ...
Definition: cmcupdate.c:20
void binned_zbnegate(const int fold, double_complex_binned *X)
Negate binned complex double precision (X = -X)
Definition: zbnegate.c:15