MCPcopy Create free account
hub / github.com/DOSNetwork/core / feSquare

Function feSquare

group/edwards25519/fe.go:547–691  ·  view source on GitHub ↗

feSquare calculates h = f*f. Can overlap h with f. Preconditions: |f| bounded by 1.1*2^26,1.1*2^25,1.1*2^26,1.1*2^25,etc. Postconditions: |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc.

(h, f *fieldElement)

Source from the content-addressed store, hash-verified

545// Postconditions:
546// |h| bounded by 1.1*2^25,1.1*2^24,1.1*2^25,1.1*2^24,etc.
547func feSquare(h, f *fieldElement) {
548 f0 := f[0]
549 f1 := f[1]
550 f2 := f[2]
551 f3 := f[3]
552 f4 := f[4]
553 f5 := f[5]
554 f6 := f[6]
555 f7 := f[7]
556 f8 := f[8]
557 f9 := f[9]
558 f0_2 := 2 * f0
559 f1_2 := 2 * f1
560 f2_2 := 2 * f2
561 f3_2 := 2 * f3
562 f4_2 := 2 * f4
563 f5_2 := 2 * f5
564 f6_2 := 2 * f6
565 f7_2 := 2 * f7
566 f5_38 := 38 * f5 // 1.31*2^30
567 f6_19 := 19 * f6 // 1.31*2^30
568 f7_38 := 38 * f7 // 1.31*2^30
569 f8_19 := 19 * f8 // 1.31*2^30
570 f9_38 := 38 * f9 // 1.31*2^30
571 f0f0 := int64(f0) * int64(f0)
572 f0f1_2 := int64(f0_2) * int64(f1)
573 f0f2_2 := int64(f0_2) * int64(f2)
574 f0f3_2 := int64(f0_2) * int64(f3)
575 f0f4_2 := int64(f0_2) * int64(f4)
576 f0f5_2 := int64(f0_2) * int64(f5)
577 f0f6_2 := int64(f0_2) * int64(f6)
578 f0f7_2 := int64(f0_2) * int64(f7)
579 f0f8_2 := int64(f0_2) * int64(f8)
580 f0f9_2 := int64(f0_2) * int64(f9)
581 f1f1_2 := int64(f1_2) * int64(f1)
582 f1f2_2 := int64(f1_2) * int64(f2)
583 f1f3_4 := int64(f1_2) * int64(f3_2)
584 f1f4_2 := int64(f1_2) * int64(f4)
585 f1f5_4 := int64(f1_2) * int64(f5_2)
586 f1f6_2 := int64(f1_2) * int64(f6)
587 f1f7_4 := int64(f1_2) * int64(f7_2)
588 f1f8_2 := int64(f1_2) * int64(f8)
589 f1f9_76 := int64(f1_2) * int64(f9_38)
590 f2f2 := int64(f2) * int64(f2)
591 f2f3_2 := int64(f2_2) * int64(f3)
592 f2f4_2 := int64(f2_2) * int64(f4)
593 f2f5_2 := int64(f2_2) * int64(f5)
594 f2f6_2 := int64(f2_2) * int64(f6)
595 f2f7_2 := int64(f2_2) * int64(f7)
596 f2f8_38 := int64(f2_2) * int64(f8_19)
597 f2f9_38 := int64(f2) * int64(f9_38)
598 f3f3_2 := int64(f3_2) * int64(f3)
599 f3f4_2 := int64(f3_2) * int64(f4)
600 f3f5_4 := int64(f3_2) * int64(f5_2)
601 f3f6_2 := int64(f3_2) * int64(f6)
602 f3f7_76 := int64(f3_2) * int64(f7_38)
603 f3f8_38 := int64(f3_2) * int64(f8_19)
604 f3f9_76 := int64(f3_2) * int64(f9_38)

Callers 8

feInvertFunction · 0.85
fePow22523Function · 0.85
DoubleMethod · 0.85
FromBytesMethod · 0.85
pointToRepFunction · 0.85
q58Function · 0.85
chiFunction · 0.85
repToCurve25519Function · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected