The function toMontgomery translates a field element into the Montgomery domain.
Preconditions: 0 ≤ eval arg1 < m Postconditions: eval (from_montgomery out1) mod m = eval arg1 mod m 0 ≤ eval out1 < m
pub fn toMontgomery(out1: *MontgomeryDomainFieldElement, arg1: NonMontgomeryDomainFieldElement) void
pub fn toMontgomery(out1: *MontgomeryDomainFieldElement, arg1: NonMontgomeryDomainFieldElement) void {
@setRuntimeSafety(mode == .debug);
const x1 = (arg1[1]);
const x2 = (arg1[2]);
const x3 = (arg1[3]);
const x4 = (arg1[0]);
var x5: u64 = undefined;
var x6: u64 = undefined;
mulxU64(&x5, &x6, x4, 0x4fffffffd);
var x7: u64 = undefined;
var x8: u64 = undefined;
mulxU64(&x7, &x8, x4, 0xfffffffffffffffe);
var x9: u64 = undefined;
var x10: u64 = undefined;
mulxU64(&x9, &x10, x4, 0xfffffffbffffffff);
var x11: u64 = undefined;
var x12: u64 = undefined;
mulxU64(&x11, &x12, x4, 0x3);
var x13: u64 = undefined;
var x14: u1 = undefined;
addcarryxU64(&x13, &x14, 0x0, x12, x9);
var x15: u64 = undefined;
var x16: u1 = undefined;
addcarryxU64(&x15, &x16, x14, x10, x7);
var x17: u64 = undefined;
var x18: u1 = undefined;
addcarryxU64(&x17, &x18, x16, x8, x5);
var x19: u64 = undefined;
var x20: u64 = undefined;
mulxU64(&x19, &x20, x11, 0xffffffff00000001);
var x21: u64 = undefined;
var x22: u64 = undefined;
mulxU64(&x21, &x22, x11, 0xffffffff);
var x23: u64 = undefined;
var x24: u64 = undefined;
mulxU64(&x23, &x24, x11, 0xffffffffffffffff);
var x25: u64 = undefined;
var x26: u1 = undefined;
addcarryxU64(&x25, &x26, 0x0, x24, x21);
var x27: u64 = undefined;
var x28: u1 = undefined;
addcarryxU64(&x27, &x28, 0x0, x11, x23);
var x29: u64 = undefined;
var x30: u1 = undefined;
addcarryxU64(&x29, &x30, x28, x13, x25);
var x31: u64 = undefined;
var x32: u1 = undefined;
addcarryxU64(&x31, &x32, x30, x15, (@as(u64, x26) + x22));
var x33: u64 = undefined;
var x34: u1 = undefined;
addcarryxU64(&x33, &x34, x32, x17, x19);
var x35: u64 = undefined;
var x36: u1 = undefined;
addcarryxU64(&x35, &x36, x34, (@as(u64, x18) + x6), x20);
var x37: u64 = undefined;
var x38: u64 = undefined;
mulxU64(&x37, &x38, x1, 0x4fffffffd);
var x39: u64 = undefined;
var x40: u64 = undefined;
mulxU64(&x39, &x40, x1, 0xfffffffffffffffe);
var x41: u64 = undefined;
var x42: u64 = undefined;
mulxU64(&x41, &x42, x1, 0xfffffffbffffffff);
var x43: u64 = undefined;
var x44: u64 = undefined;
mulxU64(&x43, &x44, x1, 0x3);
var x45: u64 = undefined;
var x46: u1 = undefined;
addcarryxU64(&x45, &x46, 0x0, x44, x41);
var x47: u64 = undefined;
var x48: u1 = undefined;
addcarryxU64(&x47, &x48, x46, x42, x39);
var x49: u64 = undefined;
var x50: u1 = undefined;
addcarryxU64(&x49, &x50, x48, x40, x37);
var x51: u64 = undefined;
var x52: u1 = undefined;
addcarryxU64(&x51, &x52, 0x0, x29, x43);
var x53: u64 = undefined;
var x54: u1 = undefined;
addcarryxU64(&x53, &x54, x52, x31, x45);
var x55: u64 = undefined;
var x56: u1 = undefined;
addcarryxU64(&x55, &x56, x54, x33, x47);
var x57: u64 = undefined;
var x58: u1 = undefined;
addcarryxU64(&x57, &x58, x56, x35, x49);
var x59: u64 = undefined;
var x60: u64 = undefined;
mulxU64(&x59, &x60, x51, 0xffffffff00000001);
var x61: u64 = undefined;
var x62: u64 = undefined;
mulxU64(&x61, &x62, x51, 0xffffffff);
var x63: u64 = undefined;
var x64: u64 = undefined;
mulxU64(&x63, &x64, x51, 0xffffffffffffffff);
var x65: u64 = undefined;
var x66: u1 = undefined;
addcarryxU64(&x65, &x66, 0x0, x64, x61);
var x67: u64 = undefined;
var x68: u1 = undefined;
addcarryxU64(&x67, &x68, 0x0, x51, x63);
var x69: u64 = undefined;
var x70: u1 = undefined;
addcarryxU64(&x69, &x70, x68, x53, x65);
var x71: u64 = undefined;
var x72: u1 = undefined;
addcarryxU64(&x71, &x72, x70, x55, (@as(u64, x66) + x62));
var x73: u64 = undefined;
var x74: u1 = undefined;
addcarryxU64(&x73, &x74, x72, x57, x59);
var x75: u64 = undefined;
var x76: u1 = undefined;
addcarryxU64(&x75, &x76, x74, ((@as(u64, x58) + @as(u64, x36)) + (@as(u64, x50) + x38)), x60);
var x77: u64 = undefined;
var x78: u64 = undefined;
mulxU64(&x77, &x78, x2, 0x4fffffffd);
var x79: u64 = undefined;
var x80: u64 = undefined;
mulxU64(&x79, &x80, x2, 0xfffffffffffffffe);
var x81: u64 = undefined;
var x82: u64 = undefined;
mulxU64(&x81, &x82, x2, 0xfffffffbffffffff);
var x83: u64 = undefined;
var x84: u64 = undefined;
mulxU64(&x83, &x84, x2, 0x3);
var x85: u64 = undefined;
var x86: u1 = undefined;
addcarryxU64(&x85, &x86, 0x0, x84, x81);
var x87: u64 = undefined;
var x88: u1 = undefined;
addcarryxU64(&x87, &x88, x86, x82, x79);
var x89: u64 = undefined;
var x90: u1 = undefined;
addcarryxU64(&x89, &x90, x88, x80, x77);
var x91: u64 = undefined;
var x92: u1 = undefined;
addcarryxU64(&x91, &x92, 0x0, x69, x83);
var x93: u64 = undefined;
var x94: u1 = undefined;
addcarryxU64(&x93, &x94, x92, x71, x85);
var x95: u64 = undefined;
var x96: u1 = undefined;
addcarryxU64(&x95, &x96, x94, x73, x87);
var x97: u64 = undefined;
var x98: u1 = undefined;
addcarryxU64(&x97, &x98, x96, x75, x89);
var x99: u64 = undefined;
var x100: u64 = undefined;
mulxU64(&x99, &x100, x91, 0xffffffff00000001);
var x101: u64 = undefined;
var x102: u64 = undefined;
mulxU64(&x101, &x102, x91, 0xffffffff);
var x103: u64 = undefined;
var x104: u64 = undefined;
mulxU64(&x103, &x104, x91, 0xffffffffffffffff);
var x105: u64 = undefined;
var x106: u1 = undefined;
addcarryxU64(&x105, &x106, 0x0, x104, x101);
var x107: u64 = undefined;
var x108: u1 = undefined;
addcarryxU64(&x107, &x108, 0x0, x91, x103);
var x109: u64 = undefined;
var x110: u1 = undefined;
addcarryxU64(&x109, &x110, x108, x93, x105);
var x111: u64 = undefined;
var x112: u1 = undefined;
addcarryxU64(&x111, &x112, x110, x95, (@as(u64, x106) + x102));
var x113: u64 = undefined;
var x114: u1 = undefined;
addcarryxU64(&x113, &x114, x112, x97, x99);
var x115: u64 = undefined;
var x116: u1 = undefined;
addcarryxU64(&x115, &x116, x114, ((@as(u64, x98) + @as(u64, x76)) + (@as(u64, x90) + x78)), x100);
var x117: u64 = undefined;
var x118: u64 = undefined;
mulxU64(&x117, &x118, x3, 0x4fffffffd);
var x119: u64 = undefined;
var x120: u64 = undefined;
mulxU64(&x119, &x120, x3, 0xfffffffffffffffe);
var x121: u64 = undefined;
var x122: u64 = undefined;
mulxU64(&x121, &x122, x3, 0xfffffffbffffffff);
var x123: u64 = undefined;
var x124: u64 = undefined;
mulxU64(&x123, &x124, x3, 0x3);
var x125: u64 = undefined;
var x126: u1 = undefined;
addcarryxU64(&x125, &x126, 0x0, x124, x121);
var x127: u64 = undefined;
var x128: u1 = undefined;
addcarryxU64(&x127, &x128, x126, x122, x119);
var x129: u64 = undefined;
var x130: u1 = undefined;
addcarryxU64(&x129, &x130, x128, x120, x117);
var x131: u64 = undefined;
var x132: u1 = undefined;
addcarryxU64(&x131, &x132, 0x0, x109, x123);
var x133: u64 = undefined;
var x134: u1 = undefined;
addcarryxU64(&x133, &x134, x132, x111, x125);
var x135: u64 = undefined;
var x136: u1 = undefined;
addcarryxU64(&x135, &x136, x134, x113, x127);
var x137: u64 = undefined;
var x138: u1 = undefined;
addcarryxU64(&x137, &x138, x136, x115, x129);
var x139: u64 = undefined;
var x140: u64 = undefined;
mulxU64(&x139, &x140, x131, 0xffffffff00000001);
var x141: u64 = undefined;
var x142: u64 = undefined;
mulxU64(&x141, &x142, x131, 0xffffffff);
var x143: u64 = undefined;
var x144: u64 = undefined;
mulxU64(&x143, &x144, x131, 0xffffffffffffffff);
var x145: u64 = undefined;
var x146: u1 = undefined;
addcarryxU64(&x145, &x146, 0x0, x144, x141);
var x147: u64 = undefined;
var x148: u1 = undefined;
addcarryxU64(&x147, &x148, 0x0, x131, x143);
var x149: u64 = undefined;
var x150: u1 = undefined;
addcarryxU64(&x149, &x150, x148, x133, x145);
var x151: u64 = undefined;
var x152: u1 = undefined;
addcarryxU64(&x151, &x152, x150, x135, (@as(u64, x146) + x142));
var x153: u64 = undefined;
var x154: u1 = undefined;
addcarryxU64(&x153, &x154, x152, x137, x139);
var x155: u64 = undefined;
var x156: u1 = undefined;
addcarryxU64(&x155, &x156, x154, ((@as(u64, x138) + @as(u64, x116)) + (@as(u64, x130) + x118)), x140);
var x157: u64 = undefined;
var x158: u1 = undefined;
subborrowxU64(&x157, &x158, 0x0, x149, 0xffffffffffffffff);
var x159: u64 = undefined;
var x160: u1 = undefined;
subborrowxU64(&x159, &x160, x158, x151, 0xffffffff);
var x161: u64 = undefined;
var x162: u1 = undefined;
subborrowxU64(&x161, &x162, x160, x153, @as(u64, 0x0));
var x163: u64 = undefined;
var x164: u1 = undefined;
subborrowxU64(&x163, &x164, x162, x155, 0xffffffff00000001);
var x165: u64 = undefined;
var x166: u1 = undefined;
subborrowxU64(&x165, &x166, x164, @as(u64, x156), @as(u64, 0x0));
var x167: u64 = undefined;
cmovznzU64(&x167, x166, x157, x149);
var x168: u64 = undefined;
cmovznzU64(&x168, x166, x159, x151);
var x169: u64 = undefined;
cmovznzU64(&x169, x166, x161, x153);
var x170: u64 = undefined;
cmovznzU64(&x170, x166, x163, x155);
out1[0] = x167;
out1[1] = x168;
out1[2] = x169;
out1[3] = x170;
}