Skip to content

Commit cd49afc

Browse files
committed
Fixed incorrect calculation with non default precision
1 parent 9b17b8e commit cd49afc

File tree

1 file changed

+40
-40
lines changed

1 file changed

+40
-40
lines changed

src/tapp/product.c

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -3164,22 +3164,22 @@ void calculate_beta_C_prec(const void* beta, bool is_complex_beta, const void* v
31643164
{
31653165
if (is_complex_beta)
31663166
{
3167-
*(complex float*)accum += *(complex float*)beta * *(complex float*)val_C;
3167+
*(complex float*)accum = *(complex float*)beta * *(complex float*)val_C;
31683168
}
31693169
else
31703170
{
3171-
*(complex float*)accum += *(float*)beta * *(complex float*)val_C;
3171+
*(complex float*)accum = *(float*)beta * *(complex float*)val_C;
31723172
}
31733173
}
31743174
else
31753175
{
31763176
if (is_complex_beta)
31773177
{
3178-
*(complex float*)accum += *(complex float*)beta * *(float*)val_C;
3178+
*(complex float*)accum = *(complex float*)beta * *(float*)val_C;
31793179
}
31803180
else
31813181
{
3182-
*(complex float*)accum += *(float*)beta * *(float*)val_C;
3182+
*(complex float*)accum = *(float*)beta * *(float*)val_C;
31833183
}
31843184
}
31853185
}
@@ -3189,22 +3189,22 @@ void calculate_beta_C_prec(const void* beta, bool is_complex_beta, const void* v
31893189
{
31903190
if (is_complex_beta)
31913191
{
3192-
*(float*)accum += *(complex float*)beta * *(complex float*)val_C;
3192+
*(float*)accum = *(complex float*)beta * *(complex float*)val_C;
31933193
}
31943194
else
31953195
{
3196-
*(float*)accum += *(float*)beta * *(complex float*)val_C;
3196+
*(float*)accum = *(float*)beta * *(complex float*)val_C;
31973197
}
31983198
}
31993199
else
32003200
{
32013201
if (is_complex_beta)
32023202
{
3203-
*(float*)accum += *(complex float*)beta * *(float*)val_C;
3203+
*(float*)accum = *(complex float*)beta * *(float*)val_C;
32043204
}
32053205
else
32063206
{
3207-
*(float*)accum += *(float*)beta * *(float*)val_C;
3207+
*(float*)accum = *(float*)beta * *(float*)val_C;
32083208
}
32093209
}
32103210
}
@@ -3216,22 +3216,22 @@ void calculate_beta_C_prec(const void* beta, bool is_complex_beta, const void* v
32163216
{
32173217
if (is_complex_beta)
32183218
{
3219-
*(complex double*)accum += *(complex double*)beta * *(complex double*)val_C;
3219+
*(complex double*)accum = *(complex double*)beta * *(complex double*)val_C;
32203220
}
32213221
else
32223222
{
3223-
*(complex double*)accum += *(double*)beta * *(complex double*)val_C;
3223+
*(complex double*)accum = *(double*)beta * *(complex double*)val_C;
32243224
}
32253225
}
32263226
else
32273227
{
32283228
if (is_complex_beta)
32293229
{
3230-
*(complex double*)accum += *(complex double*)beta * *(double*)val_C;
3230+
*(complex double*)accum = *(complex double*)beta * *(double*)val_C;
32313231
}
32323232
else
32333233
{
3234-
*(complex double*)accum += *(double*)beta * *(double*)val_C;
3234+
*(complex double*)accum = *(double*)beta * *(double*)val_C;
32353235
}
32363236
}
32373237
}
@@ -3241,22 +3241,22 @@ void calculate_beta_C_prec(const void* beta, bool is_complex_beta, const void* v
32413241
{
32423242
if (is_complex_beta)
32433243
{
3244-
*(double*)accum += *(complex double*)beta * *(complex double*)val_C;
3244+
*(double*)accum = *(complex double*)beta * *(complex double*)val_C;
32453245
}
32463246
else
32473247
{
3248-
*(double*)accum += *(double*)beta * *(complex double*)val_C;
3248+
*(double*)accum = *(double*)beta * *(complex double*)val_C;
32493249
}
32503250
}
32513251
else
32523252
{
32533253
if (is_complex_beta)
32543254
{
3255-
*(double*)accum += *(complex double*)beta * *(double*)val_C;
3255+
*(double*)accum = *(complex double*)beta * *(double*)val_C;
32563256
}
32573257
else
32583258
{
3259-
*(double*)accum += *(double*)beta * *(double*)val_C;
3259+
*(double*)accum = *(double*)beta * *(double*)val_C;
32603260
}
32613261
}
32623262
}
@@ -3269,22 +3269,22 @@ void calculate_beta_C_prec(const void* beta, bool is_complex_beta, const void* v
32693269
{
32703270
if (is_complex_beta)
32713271
{
3272-
*(complex _Float16*)accum += *(complex _Float16*)beta * *(complex _Float16*)val_C;
3272+
*(complex _Float16*)accum = *(complex _Float16*)beta * *(complex _Float16*)val_C;
32733273
}
32743274
else
32753275
{
3276-
*(complex _Float16*)accum += *(_Float16*)beta * *(complex _Float16*)val_C;
3276+
*(complex _Float16*)accum = *(_Float16*)beta * *(complex _Float16*)val_C;
32773277
}
32783278
}
32793279
else
32803280
{
32813281
if (is_complex_beta)
32823282
{
3283-
*(complex _Float16*)accum += *(complex _Float16*)beta * *(_Float16*)val_C;
3283+
*(complex _Float16*)accum = *(complex _Float16*)beta * *(_Float16*)val_C;
32843284
}
32853285
else
32863286
{
3287-
*(complex _Float16*)accum += *(_Float16*)beta * *(_Float16*)val_C;
3287+
*(complex _Float16*)accum = *(_Float16*)beta * *(_Float16*)val_C;
32883288
}
32893289
}
32903290
}
@@ -3294,22 +3294,22 @@ void calculate_beta_C_prec(const void* beta, bool is_complex_beta, const void* v
32943294
{
32953295
if (is_complex_beta)
32963296
{
3297-
*(_Float16*)accum += *(complex _Float16*)beta * *(complex _Float16*)val_C;
3297+
*(_Float16*)accum = *(complex _Float16*)beta * *(complex _Float16*)val_C;
32983298
}
32993299
else
33003300
{
3301-
*(_Float16*)accum += *(_Float16*)beta * *(complex _Float16*)val_C;
3301+
*(_Float16*)accum = *(_Float16*)beta * *(complex _Float16*)val_C;
33023302
}
33033303
}
33043304
else
33053305
{
33063306
if (is_complex_beta)
33073307
{
3308-
*(_Float16*)accum += *(complex _Float16*)beta * *(_Float16*)val_C;
3308+
*(_Float16*)accum = *(complex _Float16*)beta * *(_Float16*)val_C;
33093309
}
33103310
else
33113311
{
3312-
*(_Float16*)accum += *(_Float16*)beta * *(_Float16*)val_C;
3312+
*(_Float16*)accum = *(_Float16*)beta * *(_Float16*)val_C;
33133313
}
33143314
}
33153315
}
@@ -3323,22 +3323,22 @@ void calculate_beta_C_prec(const void* beta, bool is_complex_beta, const void* v
33233323
{
33243324
if (is_complex_beta)
33253325
{
3326-
*(complex float*)accum += *(complex _Float16*)beta * *(complex _Float16*)val_C;
3326+
*(complex float*)accum = *(complex _Float16*)beta * *(complex _Float16*)val_C;
33273327
}
33283328
else
33293329
{
3330-
*(complex float*)accum += *(_Float16*)beta * *(complex _Float16*)val_C;
3330+
*(complex float*)accum = *(_Float16*)beta * *(complex _Float16*)val_C;
33313331
}
33323332
}
33333333
else
33343334
{
33353335
if (is_complex_beta)
33363336
{
3337-
*(complex float*)accum += *(complex _Float16*)beta * *(_Float16*)val_C;
3337+
*(complex float*)accum = *(complex _Float16*)beta * *(_Float16*)val_C;
33383338
}
33393339
else
33403340
{
3341-
*(complex float*)accum += *(_Float16*)beta * *(_Float16*)val_C;
3341+
*(complex float*)accum = *(_Float16*)beta * *(_Float16*)val_C;
33423342
}
33433343
}
33443344
}
@@ -3348,22 +3348,22 @@ void calculate_beta_C_prec(const void* beta, bool is_complex_beta, const void* v
33483348
{
33493349
if (is_complex_beta)
33503350
{
3351-
*(float*)accum += *(complex _Float16*)beta * *(complex _Float16*)val_C;
3351+
*(float*)accum = *(complex _Float16*)beta * *(complex _Float16*)val_C;
33523352
}
33533353
else
33543354
{
3355-
*(float*)accum += *(_Float16*)beta * *(complex _Float16*)val_C;
3355+
*(float*)accum = *(_Float16*)beta * *(complex _Float16*)val_C;
33563356
}
33573357
}
33583358
else
33593359
{
33603360
if (is_complex_beta)
33613361
{
3362-
*(float*)accum += *(complex _Float16*)beta * *(_Float16*)val_C;
3362+
*(float*)accum = *(complex _Float16*)beta * *(_Float16*)val_C;
33633363
}
33643364
else
33653365
{
3366-
*(float*)accum += *(_Float16*)beta * *(_Float16*)val_C;
3366+
*(float*)accum = *(_Float16*)beta * *(_Float16*)val_C;
33673367
}
33683368
}
33693369
}
@@ -3377,22 +3377,22 @@ void calculate_beta_C_prec(const void* beta, bool is_complex_beta, const void* v
33773377
{
33783378
if (is_complex_beta)
33793379
{
3380-
*(complex float*)accum += *(complex __bf16*)beta * *(complex __bf16*)val_C;
3380+
*(complex float*)accum = *(complex __bf16*)beta * *(complex __bf16*)val_C;
33813381
}
33823382
else
33833383
{
3384-
*(complex float*)accum += *(__bf16*)beta * *(complex __bf16*)val_C;
3384+
*(complex float*)accum = *(__bf16*)beta * *(complex __bf16*)val_C;
33853385
}
33863386
}
33873387
else
33883388
{
33893389
if (is_complex_beta)
33903390
{
3391-
*(complex float*)accum += *(complex __bf16*)beta * *(__bf16*)val_C;
3391+
*(complex float*)accum = *(complex __bf16*)beta * *(__bf16*)val_C;
33923392
}
33933393
else
33943394
{
3395-
*(complex float*)accum += *(__bf16*)beta * *(__bf16*)val_C;
3395+
*(complex float*)accum = *(__bf16*)beta * *(__bf16*)val_C;
33963396
}
33973397
}
33983398
}
@@ -3402,22 +3402,22 @@ void calculate_beta_C_prec(const void* beta, bool is_complex_beta, const void* v
34023402
{
34033403
if (is_complex_beta)
34043404
{
3405-
*(float*)accum += *(complex __bf16*)beta * *(complex __bf16*)val_C;
3405+
*(float*)accum = *(complex __bf16*)beta * *(complex __bf16*)val_C;
34063406
}
34073407
else
34083408
{
3409-
*(float*)accum += *(__bf16*)beta * *(complex __bf16*)val_C;
3409+
*(float*)accum = *(__bf16*)beta * *(complex __bf16*)val_C;
34103410
}
34113411
}
34123412
else
34133413
{
34143414
if (is_complex_beta)
34153415
{
3416-
*(float*)accum += *(complex __bf16*)beta * *(__bf16*)val_C;
3416+
*(float*)accum = *(complex __bf16*)beta * *(__bf16*)val_C;
34173417
}
34183418
else
34193419
{
3420-
*(float*)accum += *(__bf16*)beta * *(__bf16*)val_C;
3420+
*(float*)accum = *(__bf16*)beta * *(__bf16*)val_C;
34213421
}
34223422
}
34233423
}

0 commit comments

Comments
 (0)