1718{
1719 puts(__FUNCTION__);
1720 {
1721 const mie::Vuint p_ok(
"16798108731015832284940804142231733909889187121439069848933715426072753864723");
1726 }
1727 {
1728 const mie::Vuint r_ok(
"16798108731015832284940804142231733909759579603404752749028378864165570215949");
1731 }
1732 {
1733 const Fp Z_ok(
"1807136345283977465813277102364620289631804529403213381639");
1734 Fp t = Z_ok * Z_ok + Z_ok + 1;
1736 t = Z_ok * Z_ok * Z_ok;
1739 t = Z * Z + Z + 1;
1741 t = Z * Z * Z;
1744 }
1745 {
1748 Fp(
"16798108731015832283133667796947756444075910019074449559301910896669540483083"));
1751 }
1752 {
1754 Fp(
"16226349498735898878582721725794281106152147739300925444201528929117996286405"),
1755 Fp(
"16226349498735898878582721725794281106152147739300925444201528929117996286405"));
1758 }
1759 struct Fp2_str {
1761 const char* b;
1762 };
1763 {
1764#ifdef BN_SUPPORT_SNARK
1766#else
1768#endif
1769 const Fp2_str gammar_str[] = {
1770 {
1771 "12310438583873020660552735091161044116898065562217439662059245424880585960937",
1772 "4487670147142811624388069051070689792991121559221630186874470001192167903786"
1773 },
1774 {
1775 "0",
1776 "16798108731015832283133667796947756444075910019074449559301910896669540483083"
1777 },
1778 {
1779 "16226349498735898878582721725794281106152147739300925444201528929117996286405",
1780 "16226349498735898878582721725794281106152147739300925444201528929117996286405"
1781 },
1782 {
1783 "16798108731015832283133667796947756444075910019074449559301910896669540483084",
1784 "0"
1785 },
1786 {
1787 "11738679351593087254194652674723591313161026180079295257327058927925828382619",
1788 "5059429379422745030746151467508142596728160941359774591606656498146925482104"
1789 },
1790 };
1792
1793 for (size_t i = 0; i < sizeof(gammar_ok) / sizeof(*gammar_ok); ++i) {
1794 gammar_ok[i].get()[0].
set(gammar_str[i].
a);
1795 gammar_ok[i].get()[1].
set(gammar_str[i].b);
1796
1797 if (gammar[i] != gammar_ok[i]) {
1800 }
1801 }
1802 }
1803 {
1805 const Fp2_str gammar2_str[] = {
1806 {
1807 "1807136345283977465813277102364620289631804529403213381640", "0"
1808 },
1809 {
1810 "1807136345283977465813277102364620289631804529403213381639", "0"
1811 },
1812 {
1813 "16798108731015832284940804142231733909889187121439069848933715426072753864722", "0"
1814 },
1815 {
1816 "16798108731015832283133667796947756444075910019074449559301910896669540483083", "0"
1817 },
1818 {
1819 "16798108731015832283133667796947756444075910019074449559301910896669540483084", "0"
1820 },
1821 };
1823
1824 for (size_t i = 0; i < sizeof(gammar2_ok) / sizeof(*gammar2_ok); ++i) {
1825 gammar2_ok[i].get()[0].
set(gammar2_str[i].
a);
1826 gammar2_ok[i].get()[1].
set(gammar2_str[i].b);
1827
1828 if (gammar2[i] != gammar2_ok[i]) {
1831 }
1832 }
1833 }
1834 {
1836 const Fp2_str gammar3_str[] = {
1837 {
1838 "571759232279933406358082416437452803737039382138144404732186496954757578318",
1839 "16226349498735898878582721725794281106152147739300925444201528929117996286405"
1840 },
1841 { "0", "1" },
1842 {
1843 "571759232279933406358082416437452803737039382138144404732186496954757578318",
1844 "571759232279933406358082416437452803737039382138144404732186496954757578318"
1845 },
1846 {
1847 "16798108731015832284940804142231733909889187121439069848933715426072753864722", "0"
1848 },
1849 {
1850 "16226349498735898878582721725794281106152147739300925444201528929117996286405",
1851 "571759232279933406358082416437452803737039382138144404732186496954757578318"
1852 },
1853 };
1855
1856 for (size_t i = 0; i < sizeof(gammar3_ok) / sizeof(*gammar3_ok); ++i) {
1857 gammar3_ok[i].get()[0].
set(gammar3_str[i].
a);
1858 gammar3_ok[i].get()[1].
set(gammar3_str[i].b);
1859
1860 if (gammar3[i] != gammar3_ok[i]) {
1863 }
1864 }
1865 }
1866}