public static function fe_mul121666(ParagonIE_Sodium_Core32_Curve25519_Fe
$f) { /** @var array<int, ParagonIE_Sodium_Core32_Int64> $h */
$h = array
();
for ($i = 0;
$i < 10; ++
$i) { $h[$i] =
$f[$i]->
toInt64()->
mulInt(121666, 17
);
} $carry9 =
$h[9
]->
addInt(1 << 24
)->
shiftRight(25
);
$h[0
] =
$h[0
]->
addInt64($carry9->
mulInt(19, 5
));
$h[9
] =
$h[9
]->
subInt64($carry9->
shiftLeft(25
));
$carry1 =
$h[1
]->
addInt(1 << 24
)->
shiftRight(25
);
$h[2
] =
$h[2
]->
addInt64($carry1);
$h[1
] =
$h[1
]->
subInt64($carry1->
shiftLeft(25
));
$carry3 =
$h[3
]->
addInt(1 << 24
)->
shiftRight(25
);
$h[4
] =
$h[4
]->
addInt64($carry3);
$h[3
] =
$h[3
]->
subInt64($carry3->
shiftLeft(25
));
$carry5 =
$h[5
]->
addInt(1 << 24
)->
shiftRight(25
);
$h[6
] =
$h[6
]->
addInt64($carry5);