@@ -301,48 +301,44 @@ func (h *HurwitzInt) Prod(a, b *HurwitzInt) *HurwitzInt {
301
301
if h .dblR == nil {
302
302
h .dblR = new (big.Int )
303
303
}
304
- r := h .dblR
305
304
if h .dblI == nil {
306
305
h .dblI = new (big.Int )
307
306
}
308
- i := h .dblI
309
307
if h .dblJ == nil {
310
308
h .dblJ = new (big.Int )
311
309
}
312
- j := h .dblJ
313
310
if h .dblK == nil {
314
311
h .dblK = new (big.Int )
315
312
}
316
- k := h .dblK
317
313
opt := iPool .Get ().(* big.Int )
318
314
defer iPool .Put (opt )
319
315
// 1 part
320
- r .Mul (a .dblR , b .dblR )
321
- r . Sub (r , opt .Mul (a .dblI , b .dblI ))
322
- r . Sub (r , opt .Mul (a .dblJ , b .dblJ ))
323
- r . Sub (r , opt .Mul (a .dblK , b .dblK ))
324
- r . Rsh (r , 1 )
316
+ h . dblR .Mul (a .dblR , b .dblR )
317
+ h . dblR . Sub (h . dblR , opt .Mul (a .dblI , b .dblI ))
318
+ h . dblR . Sub (h . dblR , opt .Mul (a .dblJ , b .dblJ ))
319
+ h . dblR . Sub (h . dblR , opt .Mul (a .dblK , b .dblK ))
320
+ h . dblR . Rsh (h . dblR , 1 )
325
321
326
322
// i part
327
- i .Mul (a .dblR , b .dblI )
328
- i . Add (i , opt .Mul (a .dblI , b .dblR ))
329
- i . Add (i , opt .Mul (a .dblJ , b .dblK ))
330
- i . Sub (i , opt .Mul (a .dblK , b .dblJ ))
331
- i . Rsh (i , 1 )
323
+ h . dblI .Mul (a .dblR , b .dblI )
324
+ h . dblI . Add (h . dblI , opt .Mul (a .dblI , b .dblR ))
325
+ h . dblI . Add (h . dblI , opt .Mul (a .dblJ , b .dblK ))
326
+ h . dblI . Sub (h . dblI , opt .Mul (a .dblK , b .dblJ ))
327
+ h . dblI . Rsh (h . dblI , 1 )
332
328
333
329
// j part
334
- j .Mul (a .dblR , b .dblJ )
335
- j . Sub (j , opt .Mul (a .dblI , b .dblK ))
336
- j . Add (j , opt .Mul (a .dblJ , b .dblR ))
337
- j . Add (j , opt .Mul (a .dblK , b .dblI ))
338
- j . Rsh (j , 1 )
330
+ h . dblJ .Mul (a .dblR , b .dblJ )
331
+ h . dblJ . Sub (h . dblJ , opt .Mul (a .dblI , b .dblK ))
332
+ h . dblJ . Add (h . dblJ , opt .Mul (a .dblJ , b .dblR ))
333
+ h . dblJ . Add (h . dblJ , opt .Mul (a .dblK , b .dblI ))
334
+ h . dblJ . Rsh (h . dblJ , 1 )
339
335
340
336
// k part
341
- k .Mul (a .dblR , b .dblK )
342
- k . Add (k , opt .Mul (a .dblI , b .dblJ ))
343
- k . Sub (k , opt .Mul (a .dblJ , b .dblI ))
344
- k . Add (k , opt .Mul (a .dblK , b .dblR ))
345
- k . Rsh (k , 1 )
337
+ h . dblK .Mul (a .dblR , b .dblK )
338
+ h . dblK . Add (h . dblK , opt .Mul (a .dblI , b .dblJ ))
339
+ h . dblK . Sub (h . dblK , opt .Mul (a .dblJ , b .dblI ))
340
+ h . dblK . Add (h . dblK , opt .Mul (a .dblK , b .dblR ))
341
+ h . dblK . Rsh (h . dblK , 1 )
346
342
347
343
return h
348
344
}
0 commit comments