From 69ecfed370ea9f807f684c7de874996de3c82aaa Mon Sep 17 00:00:00 2001 From: bones_was_here Date: Sun, 24 Dec 2023 17:38:35 +1000 Subject: [PATCH] Remove builddeps: linux32/* These files have been unused for years. --- .../linux32/d0_blind_id/bin/blind_id | Bin 318011 -> 0 bytes .../d0_blind_id/include/d0_blind_id/d0.h | 66 - .../include/d0_blind_id/d0_blind_id.h | 91 - .../include/d0_blind_id/d0_rijndael.h | 21 - .../linux32/d0_blind_id/lib/libd0_blind_id.a | Bin 139586 -> 0 bytes .../linux32/d0_blind_id/lib/libd0_blind_id.la | 41 - .../linux32/d0_blind_id/lib/libd0_blind_id.so | 1 - .../d0_blind_id/lib/libd0_blind_id.so.0 | 1 - .../d0_blind_id/lib/libd0_blind_id.so.0.0.0 | Bin 105080 -> 0 bytes .../linux32/d0_blind_id/lib/libd0_rijndael.a | Bin 31622 -> 0 bytes .../linux32/d0_blind_id/lib/libd0_rijndael.la | 41 - .../linux32/d0_blind_id/lib/libd0_rijndael.so | 1 - .../d0_blind_id/lib/libd0_rijndael.so.0 | 1 - .../d0_blind_id/lib/libd0_rijndael.so.0.0.0 | Bin 31114 -> 0 bytes .../d0_blind_id/lib/pkgconfig/d0_blind_id.pc | 11 - .../d0_blind_id/lib/pkgconfig/d0_rijndael.pc | 11 - misc/builddeps/linux32/gmp/include/gmp.h | 2280 ------ misc/builddeps/linux32/gmp/lib/libgmp.a | Bin 806574 -> 0 bytes misc/builddeps/linux32/gmp/lib/libgmp.la | 41 - .../builddeps/linux32/gmp/share/info/gmp.info | 178 - .../linux32/gmp/share/info/gmp.info-1 | 7084 ----------------- .../linux32/gmp/share/info/gmp.info-2 | 3489 -------- misc/builddeps/linux32/jpeg/bin/cjpeg | Bin 432646 -> 0 bytes misc/builddeps/linux32/jpeg/bin/djpeg | Bin 528873 -> 0 bytes misc/builddeps/linux32/jpeg/bin/jpegtran | Bin 425467 -> 0 bytes misc/builddeps/linux32/jpeg/bin/rdjpgcom | Bin 17911 -> 0 bytes misc/builddeps/linux32/jpeg/bin/wrjpgcom | Bin 19259 -> 0 bytes misc/builddeps/linux32/jpeg/include/jconfig.h | 54 - misc/builddeps/linux32/jpeg/include/jerror.h | 304 - .../builddeps/linux32/jpeg/include/jmorecfg.h | 371 - misc/builddeps/linux32/jpeg/include/jpeglib.h | 1158 --- misc/builddeps/linux32/jpeg/lib/libjpeg.a | Bin 1176654 -> 0 bytes misc/builddeps/linux32/jpeg/lib/libjpeg.la | 41 - .../linux32/jpeg/share/man/man1/cjpeg.1 | 325 - .../linux32/jpeg/share/man/man1/djpeg.1 | 252 - .../linux32/jpeg/share/man/man1/jpegtran.1 | 285 - .../linux32/jpeg/share/man/man1/rdjpgcom.1 | 63 - .../linux32/jpeg/share/man/man1/wrjpgcom.1 | 103 - misc/builddeps/linux32/ode/bin/ode-config | 53 - .../linux32/ode/include/ode/collision.h | 1523 ---- .../linux32/ode/include/ode/collision_space.h | 182 - .../ode/include/ode/collision_trimesh.h | 216 - .../linux32/ode/include/ode/common.h | 420 - .../linux32/ode/include/ode/compatibility.h | 40 - .../linux32/ode/include/ode/contact.h | 104 - .../builddeps/linux32/ode/include/ode/error.h | 63 - .../linux32/ode/include/ode/export-dif.h | 40 - misc/builddeps/linux32/ode/include/ode/mass.h | 144 - .../linux32/ode/include/ode/matrix.h | 280 - .../linux32/ode/include/ode/memory.h | 59 - misc/builddeps/linux32/ode/include/ode/misc.h | 85 - .../linux32/ode/include/ode/objects.h | 2975 ------- misc/builddeps/linux32/ode/include/ode/ode.h | 48 - .../linux32/ode/include/ode/odeconfig.h | 93 - .../linux32/ode/include/ode/odecpp.h | 1353 ---- .../ode/include/ode/odecpp_collision.h | 429 - .../linux32/ode/include/ode/odeinit.h | 236 - .../linux32/ode/include/ode/odemath.h | 473 -- .../linux32/ode/include/ode/odemath_legacy.h | 181 - .../linux32/ode/include/ode/rotation.h | 70 - .../builddeps/linux32/ode/include/ode/timer.h | 76 - misc/builddeps/linux32/ode/lib/libode.a | Bin 5305756 -> 0 bytes misc/builddeps/linux32/ode/lib/libode.la | 41 - .../linux32/ode/lib/pkgconfig/ode.pc | 11 - 64 files changed, 25509 deletions(-) delete mode 100755 misc/builddeps/linux32/d0_blind_id/bin/blind_id delete mode 100644 misc/builddeps/linux32/d0_blind_id/include/d0_blind_id/d0.h delete mode 100644 misc/builddeps/linux32/d0_blind_id/include/d0_blind_id/d0_blind_id.h delete mode 100644 misc/builddeps/linux32/d0_blind_id/include/d0_blind_id/d0_rijndael.h delete mode 100644 misc/builddeps/linux32/d0_blind_id/lib/libd0_blind_id.a delete mode 100755 misc/builddeps/linux32/d0_blind_id/lib/libd0_blind_id.la delete mode 120000 misc/builddeps/linux32/d0_blind_id/lib/libd0_blind_id.so delete mode 120000 misc/builddeps/linux32/d0_blind_id/lib/libd0_blind_id.so.0 delete mode 100755 misc/builddeps/linux32/d0_blind_id/lib/libd0_blind_id.so.0.0.0 delete mode 100644 misc/builddeps/linux32/d0_blind_id/lib/libd0_rijndael.a delete mode 100755 misc/builddeps/linux32/d0_blind_id/lib/libd0_rijndael.la delete mode 120000 misc/builddeps/linux32/d0_blind_id/lib/libd0_rijndael.so delete mode 120000 misc/builddeps/linux32/d0_blind_id/lib/libd0_rijndael.so.0 delete mode 100755 misc/builddeps/linux32/d0_blind_id/lib/libd0_rijndael.so.0.0.0 delete mode 100644 misc/builddeps/linux32/d0_blind_id/lib/pkgconfig/d0_blind_id.pc delete mode 100644 misc/builddeps/linux32/d0_blind_id/lib/pkgconfig/d0_rijndael.pc delete mode 100644 misc/builddeps/linux32/gmp/include/gmp.h delete mode 100644 misc/builddeps/linux32/gmp/lib/libgmp.a delete mode 100755 misc/builddeps/linux32/gmp/lib/libgmp.la delete mode 100644 misc/builddeps/linux32/gmp/share/info/gmp.info delete mode 100644 misc/builddeps/linux32/gmp/share/info/gmp.info-1 delete mode 100644 misc/builddeps/linux32/gmp/share/info/gmp.info-2 delete mode 100755 misc/builddeps/linux32/jpeg/bin/cjpeg delete mode 100755 misc/builddeps/linux32/jpeg/bin/djpeg delete mode 100755 misc/builddeps/linux32/jpeg/bin/jpegtran delete mode 100755 misc/builddeps/linux32/jpeg/bin/rdjpgcom delete mode 100755 misc/builddeps/linux32/jpeg/bin/wrjpgcom delete mode 100644 misc/builddeps/linux32/jpeg/include/jconfig.h delete mode 100644 misc/builddeps/linux32/jpeg/include/jerror.h delete mode 100644 misc/builddeps/linux32/jpeg/include/jmorecfg.h delete mode 100644 misc/builddeps/linux32/jpeg/include/jpeglib.h delete mode 100644 misc/builddeps/linux32/jpeg/lib/libjpeg.a delete mode 100755 misc/builddeps/linux32/jpeg/lib/libjpeg.la delete mode 100644 misc/builddeps/linux32/jpeg/share/man/man1/cjpeg.1 delete mode 100644 misc/builddeps/linux32/jpeg/share/man/man1/djpeg.1 delete mode 100644 misc/builddeps/linux32/jpeg/share/man/man1/jpegtran.1 delete mode 100644 misc/builddeps/linux32/jpeg/share/man/man1/rdjpgcom.1 delete mode 100644 misc/builddeps/linux32/jpeg/share/man/man1/wrjpgcom.1 delete mode 100755 misc/builddeps/linux32/ode/bin/ode-config delete mode 100644 misc/builddeps/linux32/ode/include/ode/collision.h delete mode 100644 misc/builddeps/linux32/ode/include/ode/collision_space.h delete mode 100644 misc/builddeps/linux32/ode/include/ode/collision_trimesh.h delete mode 100644 misc/builddeps/linux32/ode/include/ode/common.h delete mode 100644 misc/builddeps/linux32/ode/include/ode/compatibility.h delete mode 100644 misc/builddeps/linux32/ode/include/ode/contact.h delete mode 100644 misc/builddeps/linux32/ode/include/ode/error.h delete mode 100644 misc/builddeps/linux32/ode/include/ode/export-dif.h delete mode 100644 misc/builddeps/linux32/ode/include/ode/mass.h delete mode 100644 misc/builddeps/linux32/ode/include/ode/matrix.h delete mode 100644 misc/builddeps/linux32/ode/include/ode/memory.h delete mode 100644 misc/builddeps/linux32/ode/include/ode/misc.h delete mode 100644 misc/builddeps/linux32/ode/include/ode/objects.h delete mode 100644 misc/builddeps/linux32/ode/include/ode/ode.h delete mode 100644 misc/builddeps/linux32/ode/include/ode/odeconfig.h delete mode 100644 misc/builddeps/linux32/ode/include/ode/odecpp.h delete mode 100644 misc/builddeps/linux32/ode/include/ode/odecpp_collision.h delete mode 100644 misc/builddeps/linux32/ode/include/ode/odeinit.h delete mode 100644 misc/builddeps/linux32/ode/include/ode/odemath.h delete mode 100644 misc/builddeps/linux32/ode/include/ode/odemath_legacy.h delete mode 100644 misc/builddeps/linux32/ode/include/ode/rotation.h delete mode 100644 misc/builddeps/linux32/ode/include/ode/timer.h delete mode 100644 misc/builddeps/linux32/ode/lib/libode.a delete mode 100755 misc/builddeps/linux32/ode/lib/libode.la delete mode 100644 misc/builddeps/linux32/ode/lib/pkgconfig/ode.pc diff --git a/misc/builddeps/linux32/d0_blind_id/bin/blind_id b/misc/builddeps/linux32/d0_blind_id/bin/blind_id deleted file mode 100755 index 35bb6834de8df59b4dbeb3380f08a1db93fb8ccf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 318011 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

Q{e8W z1DF6_*T8EzK@B^n5%e9~8b4&+t?}B=dm(*WL0@t+NF${kaHsgb(ZYs5E;Am+V#e{g zhy3+pCo~1OEnCGJ0wMo*be6-_6zO{@tfv2>%gf|yV6Wm9}iKZu z=6=4QWe}eQrw-?5^5smv3_6}7t`Lt{EjNkjGni00>!LfM2q+D(4f52wEm$A_g{d91 zoXZu`e9CJ1a0wroL|V;lv^kL_vg@_xUH%F=Q7a@j+M08|axIo$?@yQDuAp^tu%?UY4iX4e;`|CA7>~S{gw{c;#vp-Bl}R); zfnf=IjK4&OaQca9h7aaZt5^qedL?uI8vnFQ%SB^kvED+g451JJ+QP7E__(tg=Sb`! zcQcr0dRxo?Lm+a1%lA%5>gEr$84qwfmW@N>I$mHzY5cHeF*4u4A_Y)`&>}@wryqjf z*Z5G3P$&A3#0F-i7ACGz=kOk4PZ#QnFFPZfJY~#C8U@q^mN!z}FSybQk1H2xy)j#>XK(kn6P8j8lFz6Qeu1+fe!r*9Q(^2az06Snk{w z9zy%Bzj%2dOZL)lC?`lcoZ=nPL|$nIE(#(bD(qYaS7w+rPlOM3xQPMxrU5<-?CG-> z-Z5-v|5bfrcFvlgwf#I!a!z^Ia2ho}^$phuHCQjfPU^S!XHe58EF1JBx6L;g@>LHY zad^n zzw2r2B&23og3*aDVf|d9G^wW`wa*WeXi>e=6&pwBWlY-#wf*f7gk%Y5?AXYt&$iSu$z!A;*1p1=@i=v#G$ehe&a+MO=_ z_OQ|eln!b`>HUY4lbfXv-G`h24|B8hq0s-N56zQ4H0A^JAIL44-U!v}Bex(2!}kZC7>@}WWmGX)(C0?G`FK9}GYGh3JTg%Zm|_Ya zIvO5?%)pPX%NGlc{$_{{8m`5R8H=Egp0Ul+qdbKRN;`u#K2vpnq@0tL)! zB0wp9{4vL1X0}nnr0KGZyz(n}9}lah*X@bQ3(KY<{tNK_3x6IBBA^-saD@^By#WMd zHf!tjz3x#@!I=B4iWH5_vBzUd3$7@)8fBv91{S5IooF?#)MB84izIO~ns8bT`@{Xd z8g>hHq=wzBx{&fzYFHIzX*En*#`wwXF|0;&Fg@(Hy}x+lsBAUfD|(P|2s*6rR`IIo z^+g{So4DcoU}tgr1g9z&<8LD3*5vlvJ%iT04~qeG*;KFnsr1n79??iv!-xDt<{g;I zTKNT*?3x;;mpv5#8RBrhL!}}{`WtRJM)fQvTp|&={X>kH$_21{CV?1!H z4w~%JvW$Y@sBq#cqpf~Ah1$Y*a z1pt{=zXGB7#P2geF1yj!$Pu?zlcA<8fB+PtK>(j%5L0+AZ5!W7wo-x43nX*hIiUgW zfAMwqJPjpV@9nYf{*h4sj<;9KoEX`^!_=t#^W6Fo1Ih!6+W$F~5Brobd_Khjf)Qz( zY%k9+sQMT)-fDas0<$dy$0>dRB1)+tvq_$4Gjy2hCu_p##%Y;wZkn~z|quwNx>=*N7+wXgzEFr(p>Z@Cg zCk-)=j~F(axn3ub2Ydb-0IDK$Z~~2blR&9p;DvNcv9q@3zM78kxc*l@gC2%7LiM80 z(Nmc*3;MT{o?|t2`eZG$Q=wz{ILj{hKC{>c>csXAF^id7@1Udf2y=x`;&dmsnk7+Z z2+%}!4POui{Q409_ofQ1zU-XMh-75e<{)+AzZg}$k#ge}m6*?~)+6QCD+Bh2dd|$+ zj|(%JKUG2VK?|GJ!W@H_k9#H1nG4VAA^G~i?B@GFEjhdf^ed}Y+PA4OsqGP|BI=58 z-Kt)EnNIMl*C$&?$vLX!=h9hg*O#_}H1}KKCBV;q;+|I4l1fgk{*x0wcWUOgNs~H7 zheI5Ftd|wEdW~CiRtQJz+I2(+un5Xwrn*oRm~;Aoy{ew}kjl-s(vG#|9a*bi&P^T} zC&BAmw=wjR{3)N)!e}>~i7kGOje_#mUxP@D*x~aq1apO6-3q&MZLqd=Vvpc9iN;>~ zb7!3I2X5DsD(AIcry8);MQvS9;yTnPiaWYE47oTe$vUeY*K(h z>2*JcPFw;VKZi36r*b7%3%dDS?{PZ=SxLl7^-8cC-Ni#+w>xLV$qPE8ZMccPY*)6D zy^gd!ORu0a8J_EUfsgaAgV0$St3Z=+G!ce`sM=*Vvb>Cw5e`966q}+3mSwtEf;@N) z%fLjkLxVJ1_8>c3d>!?xmnCCiYiV4>uUrpngxa&OnXr~N=fOp-0czu*_SIf08bEX& zG?+Mr<5cP7=l=$V%sRb_)fLoVDo;F;tg(|tfVx$q2D0OkPF5FK&F@GWk4+AG;d|E7 z7xb<&FFD>Msp|Kh=2`oZ1i5qy+g{BL^*J|j?APSPy21QCnquH0iS-6nib55^i~x~ptt_Ht%XL}Qr*F}#E`zeJl% zFt*-h;2Y;U2|TOi*Zhx91)oGaKkL8xF|SB?_fwLjEgHYSvS@#0!QPPvP++@v?j3p1 z{C&P{@6P8R-~0Fr-k-azyYCYL>l#DvINu(COH()eC$ze;pPZKc*8SVv{2~rCmUOD9*+l+)IlHGfes+qUEHLl)v?1upY>(+i z0bS_~H6Pr~Lzr}(2HjfU^hpsFkwKoaitlm|E&sWuiv)LYv&ssRiff)SW#K3J?}6$Y z{yii^$Y=fgAx?+h8J^6}NccZbke6=<3Nt|(Utl>&-^U{}K)03`_`kL@x>fcy4q6}M zmB00?UiL?X7eaQ)KzXb)@uv4nikQGpYyKW(^2SGSr7!X0)(=gt z+aR}WYiXC>o0R{0Myg;!Qy?(+ClKduTyCg)gfP3tP7F zj9rvVXu{tWY*T^jEl*e1v3>+X=z#cs+<$1y86k8aTL>MH5IPVDp##H((B^>BFTuN# zKy&_g33TfW7QQ=Jkq{4ojLIk5CsIo4rWu`)R3Bq>-qq4j@EtN7xOp<4I)nd zma1(m%BRBjN$8;KN3(B59?KlgT)LBQAilfVH#`RIX6rW@~94zpoIzyb~gy$Z8G;k5FE>(OSBa&aX7(-!bf9##dRy9|ZCq z31soxAk%)>05(*(NUEoEC^hmWa%PV&XAB;Kn7@xK00&z%R%XKaNNul^2b`clb6D?o zA{{uk7|j^7-ae?emCL*vII|nR!m^aIGIKICxXyl=J&9S%1Ft8_?b_y0uUQ|p_}P`K zxk1`Ux?ugg2LY5>|41^QV`G>(lKPces%~~_S3C7w{I*>=Zjo7&Vo%>b7BW5|j@uhd zn{L*;ev-^q?g-eebf^fcTwe~1tRAbu3kRX=;15p2v)8>THwti6k!Cx5x_4%P1kEQ< zb3fwDu59%F5gIeiVwJ^lJT$aGm`!uAI(+pf#M2o`zSImUkmQdTv2DC!eX;&G$?%^@ zJY&FHL*ve!lHLCoJmB_V*8XjLeF{;o1Z9IOT(-B_s>_9j#S*OH?|T2qc-8s1zp3*F zgUYbgKe*@ppJ5Scbn4a zaN$%sUVxaolK6Q|PD! z5*y|>&ivw4ZH>$Xkd-p^(tT8wmDcpST|$BOkxvaftfhb8(U(v61=2$M2fkYKQ@%>U zAHhPKmRSXoS)aN!n_$0W0-Sl7rXQjN1D_1jhoWx3Tsn7)Q%7>i#&$XIlq+ZO{AHGC0 z8RDdGzgpomtQIuf_ExTyQr>+NfQ0A7ab?Pd)et~&b4 z^_oEVd{U}HLrEzj*lKypY%)vyjl_Pl{4Ul;!fKHt>Hf-+{gsRV$IZmj|Ds+gBV7#S zzeeP@|K3t7kh({5Pd zeVOirEXZG-7wzr{FA?cTCs%pUYK+VJF8BI_(H%Alw@=U?n5iX#;#yBw#~@T^;pv_w zfkah@t9I((tAlu2Y8NQ$mv02FTnlXZl5sokMI6+%vY+gzY%HOBJF!__hjrVWx(B0m zELLls=>yj9s~g$ck8tV^w!J*UofiJAzrV2A^SaYAwhqHeI1j5s_$FjFkkUqsQ3DL2 zkQ9c<{?5;Es+z9Z=ro=qG*mxmhtE%L58Kr{k_`uuH?|?|LH3NLj9Hfg)vaZ6hq|0A zxT)w#n~TCQtyedvzOu^a9L{T-Np5epe6k!gOKEQol=fz{sQS}<%RzVFYXs*69Q3Gm zNDT)|?FKj~$-|O{gHLPLEPopS&?}sVgFuUq@mg5}q%5Jb^Clmku~rR9i@}96$qcYt zy5FL+KdidQpuv z;52L-eKxU+WswUy1-Diof`GKJ>D%a!nTgd0W7Qjo3TfQSNS(ST-Td>NkgO>eF@E~O z9%i69DFac-Ag3)7%F>1o|I$I)j#aL=+;+p!>$P(1mRzc3Q2vfh5(PCU`hAF1R}!n+ zU^U$jzaa-+5ySq2RJ_ax5H%kc+4+!ql#0EXbL~nkIF)iEF}X z9%`%T^Et9>>2!KbtmcIA@1$p|S*pt7VXRz6HdC!=4J}6mhCF*$$R>gepfO|pzx8{p zlA{cel7a#EKOh!OBVrEA)5}abnOvmZv(`vJ~zZbiI?LjM8K?BA=Z$I4!LB4=;B5wiZrPgRx*+^?44XWvcn#G`=!Z-4FqDJr>?FI z8=p5H)@k8*UQe;nUoT@m;ogAm?i4z~NSwG=+B&*&9s9`9wHv*Bv@bttJ+XrU8!5|j z`rQywYA}s5!9Aucv=qVcVr)i{dXZC8r(uQvSx2QDfpR*+%v%mselFM3?zAz`NaM8u zHQ;A)eqQS8@B60!cgeO;cM#-Hv%_cFbsN0f^+pmLJypwxxu?^qUMul63caYK@<}9C zPG4z9Wv71FXWJvZ9DT%U1DCTxu+;RjO!x`5u|cQT3p;`3pkLdyQ!N?(8evwAVGG5( zE$C=i#MmN{oc$JP&P8t>l@DsP9hE!u$F6QodSRQej_PgRBVyEswWW_gA^^1z4=%ux z4Mw?t8ha08VFBY$r~Y`Civ3v&_RFLO_lHb=ZcU#Hugz8fE*QEyGfQn;tb0o*@k{oWP1e#+=%vyBFH&O-PjY^WZSZrfhg~?ko@D)~-01y1 zgWdEB7S%tF7yi^TY>(r>>%2>~0gImqyd$jC>p4!{0aoW>NN;Gx8_urVY&UH4ro(l< zbHkbNII|B-r^v9sK%XeckR&2Nzjy*Qw^6 zK>o<6JtQaiXVFx`5Y9>C=RaH=EBe3`pXF_;@~NIFO;VcGUX9w@2UfD)mFwMzq3 z-ESCQ;FQ75P|zgeaArmS#m*f3&f@rg#qojT<|NKS%bXd$oSqP&?R-bRbyBT%uK?{c z!Uk&bi(j1jG_&40E%O$>>3*J%E*wjlls28hu)qIT1i$g0+F=N?61-E`Ac^A`b zr^ac@#3-*VH{Vav_x^x=6RKZ{3JpOAZp}#CA^pJDDIvO?GWt2YFyxo3t!A+Y~(zRlqZiWpUs5ZNxmCea4zdB2kxrMJCTqo zWyx)m+GBgIyLU1-qJKSiFQ44L*Y{t7Y<{jJ%E_*z@t~=sT(s%DH_S&MbF*UrQ0w41DE>3L|7D$)nQv z=<_Uo#( z77j<~KM!!ifR*q46_7Js{0q&+_TDP5iR{7k-1k1Dm>f;9zglWfEs=V96)UtMPGL`8Jc5H)N&N3*P9L}H zja`REZzpL_VQk-Re@Wu1ABy&!+tqU*c49&Iik>$NKIRI+(o_X38b&$SVPWSD2;v

+_YhR0*`<9KRjIH|ZwVt4S!JM9IX!nI_x) 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 EH&e8U_y7O^ diff --git a/misc/builddeps/linux32/d0_blind_id/include/d0_blind_id/d0.h b/misc/builddeps/linux32/d0_blind_id/include/d0_blind_id/d0.h deleted file mode 100644 index 4c8708e3..00000000 --- a/misc/builddeps/linux32/d0_blind_id/include/d0_blind_id/d0.h +++ /dev/null @@ -1,66 +0,0 @@ -/* - * FILE: d0.h - * AUTHOR: Rudolf Polzer - divVerent@xonotic.org - * - * Copyright (c) 2010, Rudolf Polzer - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the copyright holder nor the names of contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTOR(S) ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTOR(S) BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Format:commit %H$ - * $Id: 6c55afeb50f24bd316079ae46582e65f8020b19b $ - */ - -#ifndef __D0_H__ -#define __D0_H__ - -#include // size_t - -#define D0_EXPORT __attribute__((__visibility__("default"))) -#define D0_USED __attribute__((used)) -#define D0_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) -#define D0_BOOL int - -typedef void *(d0_malloc_t)(size_t len); -typedef void (d0_free_t)(void *p); -typedef void *(d0_createmutex_t)(void); -typedef void (d0_destroymutex_t)(void *); -typedef int (d0_lockmutex_t)(void *); // zero on success -typedef int (d0_unlockmutex_t)(void *); // zero on success - -extern d0_malloc_t *d0_malloc; -extern d0_free_t *d0_free; -extern d0_createmutex_t *d0_createmutex; -extern d0_destroymutex_t *d0_destroymutex; -extern d0_lockmutex_t *d0_lockmutex; -extern d0_unlockmutex_t *d0_unlockmutex; - -void d0_setmallocfuncs(d0_malloc_t *m, d0_free_t *f); -void d0_setmutexfuncs(d0_createmutex_t *c, d0_destroymutex_t *d, d0_lockmutex_t *l, d0_unlockmutex_t *u); -void d0_initfuncs(void); // initializes them, this needs to be only called internally once - -extern const char *d0_bsd_license_notice; - -#endif diff --git a/misc/builddeps/linux32/d0_blind_id/include/d0_blind_id/d0_blind_id.h b/misc/builddeps/linux32/d0_blind_id/include/d0_blind_id/d0_blind_id.h deleted file mode 100644 index f546b679..00000000 --- a/misc/builddeps/linux32/d0_blind_id/include/d0_blind_id/d0_blind_id.h +++ /dev/null @@ -1,91 +0,0 @@ -/* - * FILE: d0_blind_id.h - * AUTHOR: Rudolf Polzer - divVerent@xonotic.org - * - * Copyright (c) 2010, Rudolf Polzer - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the copyright holder nor the names of contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTOR(S) ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTOR(S) BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * $Format:commit %H$ - * $Id: bf838f43093aceadcd2d20071684f1e7148a4332 $ - */ - -#ifndef __D0_BLIND_ID_H__ -#define __D0_BLIND_ID_H__ - -#include "d0.h" - -typedef struct d0_blind_id_s d0_blind_id_t; -typedef D0_BOOL (*d0_fastreject_function) (const d0_blind_id_t *ctx, void *pass); - -D0_EXPORT D0_WARN_UNUSED_RESULT d0_blind_id_t *d0_blind_id_new(void); -D0_EXPORT void d0_blind_id_free(d0_blind_id_t *a); -D0_EXPORT void d0_blind_id_clear(d0_blind_id_t *ctx); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_copy(d0_blind_id_t *ctx, const d0_blind_id_t *src); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_generate_private_key(d0_blind_id_t *ctx, int k); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_generate_private_key_fastreject(d0_blind_id_t *ctx, int k, d0_fastreject_function reject, void *pass); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_read_private_key(d0_blind_id_t *ctx, const char *inbuf, size_t inbuflen); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_read_public_key(d0_blind_id_t *ctx, const char *inbuf, size_t inbuflen); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_write_private_key(const d0_blind_id_t *ctx, char *outbuf, size_t *outbuflen); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_write_public_key(const d0_blind_id_t *ctx, char *outbuf, size_t *outbuflen); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_fingerprint64_public_key(const d0_blind_id_t *ctx, char *outbuf, size_t *outbuflen); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_generate_private_id_modulus(d0_blind_id_t *ctx); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_read_private_id_modulus(d0_blind_id_t *ctx, const char *inbuf, size_t inbuflen); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_write_private_id_modulus(const d0_blind_id_t *ctx, char *outbuf, size_t *outbuflen); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_generate_private_id_start(d0_blind_id_t *ctx); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_generate_private_id_request(d0_blind_id_t *ctx, char *outbuf, size_t *outbuflen); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_answer_private_id_request(const d0_blind_id_t *ctx, const char *inbuf, size_t inbuflen, char *outbuf, size_t *outbuflen); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_finish_private_id_request(d0_blind_id_t *ctx, const char *inbuf, size_t inbuflen); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_read_private_id_request_camouflage(d0_blind_id_t *ctx, const char *inbuf, size_t inbuflen); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_write_private_id_request_camouflage(const d0_blind_id_t *ctx, char *outbuf, size_t *outbuflen); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_read_private_id(d0_blind_id_t *ctx, const char *inbuf, size_t inbuflen); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_read_public_id(d0_blind_id_t *ctx, const char *inbuf, size_t inbuflen); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_write_private_id(const d0_blind_id_t *ctx, char *outbuf, size_t *outbuflen); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_write_public_id(const d0_blind_id_t *ctx, char *outbuf, size_t *outbuflen); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_authenticate_with_private_id_start(d0_blind_id_t *ctx, D0_BOOL is_first, D0_BOOL send_modulus, const char *message, size_t msglen, char *outbuf, size_t *outbuflen); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_authenticate_with_private_id_challenge(d0_blind_id_t *ctx, D0_BOOL is_first, D0_BOOL recv_modulus, const char *inbuf, size_t inbuflen, char *outbuf, size_t *outbuflen, D0_BOOL *status); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_authenticate_with_private_id_response(d0_blind_id_t *ctx, const char *inbuf, size_t inbuflen, char *outbuf, size_t *outbuflen); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_authenticate_with_private_id_verify(d0_blind_id_t *ctx, const char *inbuf, size_t inbuflen, char *msg, size_t *msglen, D0_BOOL *status); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_authenticate_with_private_id_generate_missing_signature(d0_blind_id_t *ctx); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_sign_with_private_id_sign(d0_blind_id_t *ctx, D0_BOOL is_first, D0_BOOL send_modulus, const char *message, size_t msglen, char *outbuf, size_t *outbuflen); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_sign_with_private_id_sign_detached(d0_blind_id_t *ctx, D0_BOOL is_first, D0_BOOL send_modulus, const char *message, size_t msglen, char *outbuf, size_t *outbuflen); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_sign_with_private_id_verify(d0_blind_id_t *ctx, D0_BOOL is_first, D0_BOOL recv_modulus, const char *inbuf, size_t inbuflen, char *msg, size_t *msglen, D0_BOOL *status); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_sign_with_private_id_verify_detached(d0_blind_id_t *ctx, D0_BOOL is_first, D0_BOOL recv_modulus, const char *inbuf, size_t inbuflen, const char *msg, size_t msglen, D0_BOOL *status); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_fingerprint64_public_id(const d0_blind_id_t *ctx, char *outbuf, size_t *outbuflen); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_verify_public_id(const d0_blind_id_t *ctx, D0_BOOL *status); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_verify_private_id(const d0_blind_id_t *ctx); -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_sessionkey_public_id(const d0_blind_id_t *ctx, char *outbuf, size_t *outbuflen); // can only be done after successful key exchange, this performs a modpow; key length is limited by SHA_DIGESTSIZE for now; also ONLY valid after successful d0_blind_id_authenticate_with_private_id_verify/d0_blind_id_fingerprint64_public_id - -D0_EXPORT D0_WARN_UNUSED_RESULT D0_BOOL d0_blind_id_INITIALIZE(void); -D0_EXPORT void d0_blind_id_SHUTDOWN(void); - -D0_EXPORT void d0_blind_id_util_sha256(char *out, const char *in, size_t n); - -// for exporting -D0_EXPORT void d0_blind_id_setmallocfuncs(d0_malloc_t *m, d0_free_t *f); -D0_EXPORT void d0_blind_id_setmutexfuncs(d0_createmutex_t *c, d0_destroymutex_t *d, d0_lockmutex_t *l, d0_unlockmutex_t *u); - -#endif diff --git a/misc/builddeps/linux32/d0_blind_id/include/d0_blind_id/d0_rijndael.h b/misc/builddeps/linux32/d0_blind_id/include/d0_blind_id/d0_rijndael.h deleted file mode 100644 index e1c8f71b..00000000 --- a/misc/builddeps/linux32/d0_blind_id/include/d0_blind_id/d0_rijndael.h +++ /dev/null @@ -1,21 +0,0 @@ -// from http://www.efgh.com/software/rijndael.htm (public domain) - -#ifndef H__RIJNDAEL -#define H__RIJNDAEL - -#include "d0.h" - -D0_EXPORT int d0_rijndael_setup_encrypt(unsigned long *rk, const unsigned char *key, - int keybits); -D0_EXPORT int d0_rijndael_setup_decrypt(unsigned long *rk, const unsigned char *key, - int keybits); -D0_EXPORT void d0_rijndael_encrypt(const unsigned long *rk, int nrounds, - const unsigned char plaintext[16], unsigned char ciphertext[16]); -D0_EXPORT void d0_rijndael_decrypt(const unsigned long *rk, int nrounds, - const unsigned char ciphertext[16], unsigned char plaintext[16]); - -#define D0_RIJNDAEL_KEYLENGTH(keybits) ((keybits)/8) -#define D0_RIJNDAEL_RKLENGTH(keybits) ((keybits)/8+28) -#define D0_RIJNDAEL_NROUNDS(keybits) ((keybits)/32+6) - -#endif diff --git a/misc/builddeps/linux32/d0_blind_id/lib/libd0_blind_id.a b/misc/builddeps/linux32/d0_blind_id/lib/libd0_blind_id.a deleted file mode 100644 index 8945205862514864bf7e286ae9eea4cdb797f5ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 139586 zcmdSC34B%6)joXgJvVTKKoSx(BEm%w10p0$B7=wwGO1C7;D8|{HxPvclY5yI1(K-o z7E2szTU!OGTCG~G);d<4K(x-aV6|_tRbMD{5UADK%J)2L?|tq*H#e#8`~QEx@An

4B#tb^)=P2%a_;Jtf+{` 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 z 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 Xq?cjmDBi6illz1l47-GT7o7bC?MLjd diff --git a/misc/builddeps/linux32/d0_blind_id/lib/libd0_rijndael.a b/misc/builddeps/linux32/d0_blind_id/lib/libd0_rijndael.a deleted file mode 100644 index 58897695527c4bbcd305fd40accf54c0c3022e2e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31622 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 k1^@s6 diff --git a/misc/builddeps/linux32/d0_blind_id/lib/libd0_rijndael.la b/misc/builddeps/linux32/d0_blind_id/lib/libd0_rijndael.la deleted file mode 100755 index 49c9909f..00000000 --- a/misc/builddeps/linux32/d0_blind_id/lib/libd0_rijndael.la +++ /dev/null @@ -1,41 +0,0 @@ -# libd0_rijndael.la - a libtool library file -# Generated by ltmain.sh (GNU libtool) 2.2.6b Debian-2.2.6b-2ubuntu1 -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# The name that we can dlopen(3). -dlname='' - -# Names of this library. -library_names='' - -# The name of the static archive. -old_library='libd0_rijndael.a' - -# Linker flags that can not go in dependency_libs. -inherited_linker_flags='' - -# Libraries that this one depends upon. -dependency_libs=' -L/tmp/d0_blind_id.deps/lib/ /tmp/gg/lib/libgmp.la' - -# Names of additional weak libraries provided by this library -weak_library_names='' - -# Version information for libd0_rijndael. -current=0 -age=0 -revision=0 - -# Is this an already installed library? -installed=yes - -# Should we warn about portability when linking against -modules? -shouldnotlink=no - -# Files to dlopen/dlpreopen -dlopen='' -dlpreopen='' - -# Directory that this library needs to be installed in: -libdir='/usr/local/lib' diff --git a/misc/builddeps/linux32/d0_blind_id/lib/libd0_rijndael.so b/misc/builddeps/linux32/d0_blind_id/lib/libd0_rijndael.so deleted file mode 120000 index 01dce017..00000000 --- a/misc/builddeps/linux32/d0_blind_id/lib/libd0_rijndael.so +++ /dev/null @@ -1 +0,0 @@ -libd0_rijndael.so.0.0.0 \ No newline at end of file diff --git a/misc/builddeps/linux32/d0_blind_id/lib/libd0_rijndael.so.0 b/misc/builddeps/linux32/d0_blind_id/lib/libd0_rijndael.so.0 deleted file mode 120000 index 01dce017..00000000 --- a/misc/builddeps/linux32/d0_blind_id/lib/libd0_rijndael.so.0 +++ /dev/null @@ -1 +0,0 @@ -libd0_rijndael.so.0.0.0 \ No newline at end of file diff --git a/misc/builddeps/linux32/d0_blind_id/lib/libd0_rijndael.so.0.0.0 b/misc/builddeps/linux32/d0_blind_id/lib/libd0_rijndael.so.0.0.0 deleted file mode 100755 index b98c986b4651a1bcbe3e3605ca02ddd026624aac..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31114 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

__qW9;ox5l{I7$55%50*{^!BJ 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�I%;K5girbtNf9N;LymJq2aOd;bUL< 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 /* for std::istream, std::ostream, std::string */ -#include -#endif - - -/* Instantiated by configure. */ -#if ! defined (__GMP_WITHIN_CONFIGURE) -#define __GMP_HAVE_HOST_CPU_FAMILY_power 0 -#define __GMP_HAVE_HOST_CPU_FAMILY_powerpc 0 -#define GMP_LIMB_BITS 32 -#define GMP_NAIL_BITS 0 -#endif -#define GMP_NUMB_BITS (GMP_LIMB_BITS - GMP_NAIL_BITS) -#define GMP_NUMB_MASK ((~ __GMP_CAST (mp_limb_t, 0)) >> GMP_NAIL_BITS) -#define GMP_NUMB_MAX GMP_NUMB_MASK -#define GMP_NAIL_MASK (~ GMP_NUMB_MASK) - - -/* The following (everything under ifndef __GNU_MP__) must be identical in - gmp.h and mp.h to allow both to be included in an application or during - the library build. */ -#ifndef __GNU_MP__ -#define __GNU_MP__ 5 - -#define __need_size_t /* tell gcc stddef.h we only want size_t */ -#if defined (__cplusplus) -#include /* for size_t */ -#else -#include /* for size_t */ -#endif -#undef __need_size_t - -/* Instantiated by configure. */ -#if ! defined (__GMP_WITHIN_CONFIGURE) -/* #undef _LONG_LONG_LIMB */ -#define __GMP_LIBGMP_DLL 0 -#endif - - -/* __STDC__ - some ANSI compilers define this only to 0, hence the use of - "defined" and not "__STDC__-0". In particular Sun workshop C 5.0 - sets __STDC__ to 0, but requires "##" for token pasting. - - _AIX - gnu ansidecl.h asserts that all known AIX compilers are ANSI but - don't always define __STDC__. - - __DECC - current versions of DEC C (5.9 for instance) for alpha are ANSI, - but don't define __STDC__ in their default mode. Don't know if old - versions might have been K&R, but let's not worry about that unless - someone is still using one. - - _mips - gnu ansidecl.h says the RISC/OS MIPS compiler is ANSI in SVR4 - mode, but doesn't define __STDC__. - - _MSC_VER - Microsoft C is ANSI, but __STDC__ is undefined unless the /Za - option is given (in which case it's 1). - - _WIN32 - tested for by gnu ansidecl.h, no doubt on the assumption that - all w32 compilers are ansi. - - Note: This same set of tests is used by gen-psqr.c and - demos/expr/expr-impl.h, so if anything needs adding, then be sure to - update those too. */ - -#if defined (__STDC__) \ - || defined (__cplusplus) \ - || defined (_AIX) \ - || defined (__DECC) \ - || (defined (__mips) && defined (_SYSTYPE_SVR4)) \ - || defined (_MSC_VER) \ - || defined (_WIN32) -#define __GMP_HAVE_CONST 1 -#define __GMP_HAVE_PROTOTYPES 1 -#define __GMP_HAVE_TOKEN_PASTE 1 -#else -#define __GMP_HAVE_CONST 0 -#define __GMP_HAVE_PROTOTYPES 0 -#define __GMP_HAVE_TOKEN_PASTE 0 -#endif - - -#if __GMP_HAVE_CONST -#define __gmp_const const -#define __gmp_signed signed -#else -#define __gmp_const -#define __gmp_signed -#endif - - -/* __GMP_DECLSPEC supports Windows DLL versions of libgmp, and is empty in - all other circumstances. - - When compiling objects for libgmp, __GMP_DECLSPEC is an export directive, - or when compiling for an application it's an import directive. The two - cases are differentiated by __GMP_WITHIN_GMP defined by the GMP Makefiles - (and not defined from an application). - - __GMP_DECLSPEC_XX is similarly used for libgmpxx. __GMP_WITHIN_GMPXX - indicates when building libgmpxx, and in that case libgmpxx functions are - exports, but libgmp functions which might get called are imports. - - libmp.la uses __GMP_DECLSPEC, just as if it were libgmp.la. libgmp and - libmp don't call each other, so there's no conflict or confusion. - - Libtool DLL_EXPORT define is not used. - - There's no attempt to support GMP built both static and DLL. Doing so - would mean applications would have to tell us which of the two is going - to be used when linking, and that seems very tedious and error prone if - using GMP by hand, and equally tedious from a package since autoconf and - automake don't give much help. - - __GMP_DECLSPEC is required on all documented global functions and - variables, the various internals in gmp-impl.h etc can be left unadorned. - But internals used by the test programs or speed measuring programs - should have __GMP_DECLSPEC, and certainly constants or variables must - have it or the wrong address will be resolved. - - In gcc __declspec can go at either the start or end of a prototype. - - In Microsoft C __declspec must go at the start, or after the type like - void __declspec(...) *foo()". There's no __dllexport or anything to - guard against someone foolish #defining dllexport. _export used to be - available, but no longer. - - In Borland C _export still exists, but needs to go after the type, like - "void _export foo();". Would have to change the __GMP_DECLSPEC syntax to - make use of that. Probably more trouble than it's worth. */ - -#if defined (__GNUC__) -#define __GMP_DECLSPEC_EXPORT __declspec(__dllexport__) -#define __GMP_DECLSPEC_IMPORT __declspec(__dllimport__) -#endif -#if defined (_MSC_VER) || defined (__BORLANDC__) -#define __GMP_DECLSPEC_EXPORT __declspec(dllexport) -#define __GMP_DECLSPEC_IMPORT __declspec(dllimport) -#endif -#ifdef __WATCOMC__ -#define __GMP_DECLSPEC_EXPORT __export -#define __GMP_DECLSPEC_IMPORT __import -#endif -#ifdef __IBMC__ -#define __GMP_DECLSPEC_EXPORT _Export -#define __GMP_DECLSPEC_IMPORT _Import -#endif - -#if __GMP_LIBGMP_DLL -#if __GMP_WITHIN_GMP -/* compiling to go into a DLL libgmp */ -#define __GMP_DECLSPEC __GMP_DECLSPEC_EXPORT -#else -/* compiling to go into an application which will link to a DLL libgmp */ -#define __GMP_DECLSPEC __GMP_DECLSPEC_IMPORT -#endif -#else -/* all other cases */ -#define __GMP_DECLSPEC -#endif - - -#ifdef __GMP_SHORT_LIMB -typedef unsigned int mp_limb_t; -typedef int mp_limb_signed_t; -#else -#ifdef _LONG_LONG_LIMB -typedef unsigned long long int mp_limb_t; -typedef long long int mp_limb_signed_t; -#else -typedef unsigned long int mp_limb_t; -typedef long int mp_limb_signed_t; -#endif -#endif -typedef unsigned long int mp_bitcnt_t; - -/* For reference, note that the name __mpz_struct gets into C++ mangled - function names, which means although the "__" suggests an internal, we - must leave this name for binary compatibility. */ -typedef struct -{ - int _mp_alloc; /* Number of *limbs* allocated and pointed - to by the _mp_d field. */ - int _mp_size; /* abs(_mp_size) is the number of limbs the - last field points to. If _mp_size is - negative this is a negative number. */ - mp_limb_t *_mp_d; /* Pointer to the limbs. */ -} __mpz_struct; - -#endif /* __GNU_MP__ */ - - -typedef __mpz_struct MP_INT; /* gmp 1 source compatibility */ -typedef __mpz_struct mpz_t[1]; - -typedef mp_limb_t * mp_ptr; -typedef __gmp_const mp_limb_t * mp_srcptr; -#if defined (_CRAY) && ! defined (_CRAYMPP) -/* plain `int' is much faster (48 bits) */ -#define __GMP_MP_SIZE_T_INT 1 -typedef int mp_size_t; -typedef int mp_exp_t; -#else -#define __GMP_MP_SIZE_T_INT 0 -typedef long int mp_size_t; -typedef long int mp_exp_t; -#endif - -typedef struct -{ - __mpz_struct _mp_num; - __mpz_struct _mp_den; -} __mpq_struct; - -typedef __mpq_struct MP_RAT; /* gmp 1 source compatibility */ -typedef __mpq_struct mpq_t[1]; - -typedef struct -{ - int _mp_prec; /* Max precision, in number of `mp_limb_t's. - Set by mpf_init and modified by - mpf_set_prec. The area pointed to by the - _mp_d field contains `prec' + 1 limbs. */ - int _mp_size; /* abs(_mp_size) is the number of limbs the - last field points to. If _mp_size is - negative this is a negative number. */ - mp_exp_t _mp_exp; /* Exponent, in the base of `mp_limb_t'. */ - mp_limb_t *_mp_d; /* Pointer to the limbs. */ -} __mpf_struct; - -/* typedef __mpf_struct MP_FLOAT; */ -typedef __mpf_struct mpf_t[1]; - -/* Available random number generation algorithms. */ -typedef enum -{ - GMP_RAND_ALG_DEFAULT = 0, - GMP_RAND_ALG_LC = GMP_RAND_ALG_DEFAULT /* Linear congruential. */ -} gmp_randalg_t; - -/* Random state struct. */ -typedef struct -{ - mpz_t _mp_seed; /* _mp_d member points to state of the generator. */ - gmp_randalg_t _mp_alg; /* Currently unused. */ - union { - void *_mp_lc; /* Pointer to function pointers structure. */ - } _mp_algdata; -} __gmp_randstate_struct; -typedef __gmp_randstate_struct gmp_randstate_t[1]; - -/* Types for function declarations in gmp files. */ -/* ??? Should not pollute user name space with these ??? */ -typedef __gmp_const __mpz_struct *mpz_srcptr; -typedef __mpz_struct *mpz_ptr; -typedef __gmp_const __mpf_struct *mpf_srcptr; -typedef __mpf_struct *mpf_ptr; -typedef __gmp_const __mpq_struct *mpq_srcptr; -typedef __mpq_struct *mpq_ptr; - - -/* This is not wanted in mp.h, so put it outside the __GNU_MP__ common - section. */ -#if __GMP_LIBGMP_DLL -#if __GMP_WITHIN_GMPXX -/* compiling to go into a DLL libgmpxx */ -#define __GMP_DECLSPEC_XX __GMP_DECLSPEC_EXPORT -#else -/* compiling to go into a application which will link to a DLL libgmpxx */ -#define __GMP_DECLSPEC_XX __GMP_DECLSPEC_IMPORT -#endif -#else -/* all other cases */ -#define __GMP_DECLSPEC_XX -#endif - - -#if __GMP_HAVE_PROTOTYPES -#define __GMP_PROTO(x) x -#else -#define __GMP_PROTO(x) () -#endif - -#ifndef __MPN -#if __GMP_HAVE_TOKEN_PASTE -#define __MPN(x) __gmpn_##x -#else -#define __MPN(x) __gmpn_/**/x -#endif -#endif - -/* For reference, "defined(EOF)" cannot be used here. In g++ 2.95.4, - defines EOF but not FILE. */ -#if defined (FILE) \ - || defined (H_STDIO) \ - || defined (_H_STDIO) /* AIX */ \ - || defined (_STDIO_H) /* glibc, Sun, SCO */ \ - || defined (_STDIO_H_) /* BSD, OSF */ \ - || defined (__STDIO_H) /* Borland */ \ - || defined (__STDIO_H__) /* IRIX */ \ - || defined (_STDIO_INCLUDED) /* HPUX */ \ - || defined (__dj_include_stdio_h_) /* DJGPP */ \ - || defined (_FILE_DEFINED) /* Microsoft */ \ - || defined (__STDIO__) /* Apple MPW MrC */ \ - || defined (_MSL_STDIO_H) /* Metrowerks */ \ - || defined (_STDIO_H_INCLUDED) /* QNX4 */ \ - || defined (_ISO_STDIO_ISO_H) /* Sun C++ */ -#define _GMP_H_HAVE_FILE 1 -#endif - -/* In ISO C, if a prototype involving "struct obstack *" is given without - that structure defined, then the struct is scoped down to just the - prototype, causing a conflict if it's subsequently defined for real. So - only give prototypes if we've got obstack.h. */ -#if defined (_OBSTACK_H) /* glibc */ -#define _GMP_H_HAVE_OBSTACK 1 -#endif - -/* The prototypes for gmp_vprintf etc are provided only if va_list is - available, via an application having included or . - Usually va_list is a typedef so can't be tested directly, but C99 - specifies that va_start is a macro (and it was normally a macro on past - systems too), so look for that. - - will define some sort of va_list for vprintf and vfprintf, but - let's not bother trying to use that since it's not standard and since - application uses for gmp_vprintf etc will almost certainly require the - whole or anyway. */ - -#ifdef va_start -#define _GMP_H_HAVE_VA_LIST 1 -#endif - -/* Test for gcc >= maj.min, as per __GNUC_PREREQ in glibc */ -#if defined (__GNUC__) && defined (__GNUC_MINOR__) -#define __GMP_GNUC_PREREQ(maj, min) \ - ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) -#else -#define __GMP_GNUC_PREREQ(maj, min) 0 -#endif - -/* "pure" is in gcc 2.96 and up, see "(gcc)Function Attributes". Basically - it means a function does nothing but examine its arguments and memory - (global or via arguments) to generate a return value, but changes nothing - and has no side-effects. __GMP_NO_ATTRIBUTE_CONST_PURE lets - tune/common.c etc turn this off when trying to write timing loops. */ -#if __GMP_GNUC_PREREQ (2,96) && ! defined (__GMP_NO_ATTRIBUTE_CONST_PURE) -#define __GMP_ATTRIBUTE_PURE __attribute__ ((__pure__)) -#else -#define __GMP_ATTRIBUTE_PURE -#endif - - -/* __GMP_CAST allows us to use static_cast in C++, so our macros are clean - to "g++ -Wold-style-cast". - - Casts in "extern inline" code within an extern "C" block don't induce - these warnings, so __GMP_CAST only needs to be used on documented - macros. */ - -#ifdef __cplusplus -#define __GMP_CAST(type, expr) (static_cast (expr)) -#else -#define __GMP_CAST(type, expr) ((type) (expr)) -#endif - - -/* An empty "throw ()" means the function doesn't throw any C++ exceptions, - this can save some stack frame info in applications. - - Currently it's given only on functions which never divide-by-zero etc, - don't allocate memory, and are expected to never need to allocate memory. - This leaves open the possibility of a C++ throw from a future GMP - exceptions scheme. - - mpz_set_ui etc are omitted to leave open the lazy allocation scheme - described in doc/tasks.html. mpz_get_d etc are omitted to leave open - exceptions for float overflows. - - Note that __GMP_NOTHROW must be given on any inlines the same as on their - prototypes (for g++ at least, where they're used together). Note also - that g++ 3.0 demands that __GMP_NOTHROW is before other attributes like - __GMP_ATTRIBUTE_PURE. */ - -#if defined (__cplusplus) -#define __GMP_NOTHROW throw () -#else -#define __GMP_NOTHROW -#endif - - -/* PORTME: What other compilers have a useful "extern inline"? "static - inline" would be an acceptable substitute if the compiler (or linker) - discards unused statics. */ - - /* gcc has __inline__ in all modes, including strict ansi. Give a prototype - for an inline too, so as to correctly specify "dllimport" on windows, in - case the function is called rather than inlined. - GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 - inline semantics, unless -fgnu89-inline is used. */ -#ifdef __GNUC__ -#if (defined __GNUC_STDC_INLINE__) || (__GNUC__ == 4 && __GNUC_MINOR__ == 2) -#define __GMP_EXTERN_INLINE extern __inline__ __attribute__ ((__gnu_inline__)) -#else -#define __GMP_EXTERN_INLINE extern __inline__ -#endif -#define __GMP_INLINE_PROTOTYPES 1 -#endif - -/* DEC C (eg. version 5.9) supports "static __inline foo()", even in -std1 - strict ANSI mode. Inlining is done even when not optimizing (ie. -O0 - mode, which is the default), but an unnecessary local copy of foo is - emitted unless -O is used. "extern __inline" is accepted, but the - "extern" appears to be ignored, ie. it becomes a plain global function - but which is inlined within its file. Don't know if all old versions of - DEC C supported __inline, but as a start let's do the right thing for - current versions. */ -#ifdef __DECC -#define __GMP_EXTERN_INLINE static __inline -#endif - -/* SCO OpenUNIX 8 cc supports "static inline foo()" but not in -Xc strict - ANSI mode (__STDC__ is 1 in that mode). Inlining only actually takes - place under -O. Without -O "foo" seems to be emitted whether it's used - or not, which is wasteful. "extern inline foo()" isn't useful, the - "extern" is apparently ignored, so foo is inlined if possible but also - emitted as a global, which causes multiple definition errors when - building a shared libgmp. */ -#ifdef __SCO_VERSION__ -#if __SCO_VERSION__ > 400000000 && __STDC__ != 1 \ - && ! defined (__GMP_EXTERN_INLINE) -#define __GMP_EXTERN_INLINE static inline -#endif -#endif - -/* Microsoft's C compiler accepts __inline */ -#ifdef _MSC_VER -#define __GMP_EXTERN_INLINE __inline -#endif - -/* Recent enough Sun C compilers want "inline" */ -#if defined (__SUNPRO_C) && __SUNPRO_C >= 0x560 \ - && ! defined (__GMP_EXTERN_INLINE) -#define __GMP_EXTERN_INLINE inline -#endif - -/* Somewhat older Sun C compilers want "static inline" */ -#if defined (__SUNPRO_C) && __SUNPRO_C >= 0x540 \ - && ! defined (__GMP_EXTERN_INLINE) -#define __GMP_EXTERN_INLINE static inline -#endif - - -/* C++ always has "inline" and since it's a normal feature the linker should - discard duplicate non-inlined copies, or if it doesn't then that's a - problem for everyone, not just GMP. */ -#if defined (__cplusplus) && ! defined (__GMP_EXTERN_INLINE) -#define __GMP_EXTERN_INLINE inline -#endif - -/* Don't do any inlining within a configure run, since if the compiler ends - up emitting copies of the code into the object file it can end up - demanding the various support routines (like mpn_popcount) for linking, - making the "alloca" test and perhaps others fail. And on hppa ia64 a - pre-release gcc 3.2 was seen not respecting the "extern" in "extern - __inline__", triggering this problem too. */ -#if defined (__GMP_WITHIN_CONFIGURE) && ! __GMP_WITHIN_CONFIGURE_INLINE -#undef __GMP_EXTERN_INLINE -#endif - -/* By default, don't give a prototype when there's going to be an inline - version. Note in particular that Cray C++ objects to the combination of - prototype and inline. */ -#ifdef __GMP_EXTERN_INLINE -#ifndef __GMP_INLINE_PROTOTYPES -#define __GMP_INLINE_PROTOTYPES 0 -#endif -#else -#define __GMP_INLINE_PROTOTYPES 1 -#endif - - -#define __GMP_ABS(x) ((x) >= 0 ? (x) : -(x)) -#define __GMP_MAX(h,i) ((h) > (i) ? (h) : (i)) - -/* __GMP_USHRT_MAX is not "~ (unsigned short) 0" because short is promoted - to int by "~". */ -#define __GMP_UINT_MAX (~ (unsigned) 0) -#define __GMP_ULONG_MAX (~ (unsigned long) 0) -#define __GMP_USHRT_MAX ((unsigned short) ~0) - - -/* __builtin_expect is in gcc 3.0, and not in 2.95. */ -#if __GMP_GNUC_PREREQ (3,0) -#define __GMP_LIKELY(cond) __builtin_expect ((cond) != 0, 1) -#define __GMP_UNLIKELY(cond) __builtin_expect ((cond) != 0, 0) -#else -#define __GMP_LIKELY(cond) (cond) -#define __GMP_UNLIKELY(cond) (cond) -#endif - -#ifdef _CRAY -#define __GMP_CRAY_Pragma(str) _Pragma (str) -#else -#define __GMP_CRAY_Pragma(str) -#endif - - -/* Allow direct user access to numerator and denominator of a mpq_t object. */ -#define mpq_numref(Q) (&((Q)->_mp_num)) -#define mpq_denref(Q) (&((Q)->_mp_den)) - - -#if defined (__cplusplus) -extern "C" { -using std::FILE; -#endif - -#define mp_set_memory_functions __gmp_set_memory_functions -__GMP_DECLSPEC void mp_set_memory_functions __GMP_PROTO ((void *(*) (size_t), - void *(*) (void *, size_t, size_t), - void (*) (void *, size_t))) __GMP_NOTHROW; - -#define mp_get_memory_functions __gmp_get_memory_functions -__GMP_DECLSPEC void mp_get_memory_functions __GMP_PROTO ((void *(**) (size_t), - void *(**) (void *, size_t, size_t), - void (**) (void *, size_t))) __GMP_NOTHROW; - -#define mp_bits_per_limb __gmp_bits_per_limb -__GMP_DECLSPEC extern __gmp_const int mp_bits_per_limb; - -#define gmp_errno __gmp_errno -__GMP_DECLSPEC extern int gmp_errno; - -#define gmp_version __gmp_version -__GMP_DECLSPEC extern __gmp_const char * __gmp_const gmp_version; - - -/**************** Random number routines. ****************/ - -/* obsolete */ -#define gmp_randinit __gmp_randinit -__GMP_DECLSPEC void gmp_randinit __GMP_PROTO ((gmp_randstate_t, gmp_randalg_t, ...)); - -#define gmp_randinit_default __gmp_randinit_default -__GMP_DECLSPEC void gmp_randinit_default __GMP_PROTO ((gmp_randstate_t)); - -#define gmp_randinit_lc_2exp __gmp_randinit_lc_2exp -__GMP_DECLSPEC void gmp_randinit_lc_2exp __GMP_PROTO ((gmp_randstate_t, - mpz_srcptr, unsigned long int, - mp_bitcnt_t)); - -#define gmp_randinit_lc_2exp_size __gmp_randinit_lc_2exp_size -__GMP_DECLSPEC int gmp_randinit_lc_2exp_size __GMP_PROTO ((gmp_randstate_t, mp_bitcnt_t)); - -#define gmp_randinit_mt __gmp_randinit_mt -__GMP_DECLSPEC void gmp_randinit_mt __GMP_PROTO ((gmp_randstate_t)); - -#define gmp_randinit_set __gmp_randinit_set -__GMP_DECLSPEC void gmp_randinit_set __GMP_PROTO ((gmp_randstate_t, __gmp_const __gmp_randstate_struct *)); - -#define gmp_randseed __gmp_randseed -__GMP_DECLSPEC void gmp_randseed __GMP_PROTO ((gmp_randstate_t, mpz_srcptr)); - -#define gmp_randseed_ui __gmp_randseed_ui -__GMP_DECLSPEC void gmp_randseed_ui __GMP_PROTO ((gmp_randstate_t, unsigned long int)); - -#define gmp_randclear __gmp_randclear -__GMP_DECLSPEC void gmp_randclear __GMP_PROTO ((gmp_randstate_t)); - -#define gmp_urandomb_ui __gmp_urandomb_ui -__GMP_DECLSPEC unsigned long gmp_urandomb_ui __GMP_PROTO ((gmp_randstate_t, unsigned long)); - -#define gmp_urandomm_ui __gmp_urandomm_ui -__GMP_DECLSPEC unsigned long gmp_urandomm_ui __GMP_PROTO ((gmp_randstate_t, unsigned long)); - - -/**************** Formatted output routines. ****************/ - -#define gmp_asprintf __gmp_asprintf -__GMP_DECLSPEC int gmp_asprintf __GMP_PROTO ((char **, __gmp_const char *, ...)); - -#define gmp_fprintf __gmp_fprintf -#ifdef _GMP_H_HAVE_FILE -__GMP_DECLSPEC int gmp_fprintf __GMP_PROTO ((FILE *, __gmp_const char *, ...)); -#endif - -#define gmp_obstack_printf __gmp_obstack_printf -#if defined (_GMP_H_HAVE_OBSTACK) -__GMP_DECLSPEC int gmp_obstack_printf __GMP_PROTO ((struct obstack *, __gmp_const char *, ...)); -#endif - -#define gmp_obstack_vprintf __gmp_obstack_vprintf -#if defined (_GMP_H_HAVE_OBSTACK) && defined (_GMP_H_HAVE_VA_LIST) -__GMP_DECLSPEC int gmp_obstack_vprintf __GMP_PROTO ((struct obstack *, __gmp_const char *, va_list)); -#endif - -#define gmp_printf __gmp_printf -__GMP_DECLSPEC int gmp_printf __GMP_PROTO ((__gmp_const char *, ...)); - -#define gmp_snprintf __gmp_snprintf -__GMP_DECLSPEC int gmp_snprintf __GMP_PROTO ((char *, size_t, __gmp_const char *, ...)); - -#define gmp_sprintf __gmp_sprintf -__GMP_DECLSPEC int gmp_sprintf __GMP_PROTO ((char *, __gmp_const char *, ...)); - -#define gmp_vasprintf __gmp_vasprintf -#if defined (_GMP_H_HAVE_VA_LIST) -__GMP_DECLSPEC int gmp_vasprintf __GMP_PROTO ((char **, __gmp_const char *, va_list)); -#endif - -#define gmp_vfprintf __gmp_vfprintf -#if defined (_GMP_H_HAVE_FILE) && defined (_GMP_H_HAVE_VA_LIST) -__GMP_DECLSPEC int gmp_vfprintf __GMP_PROTO ((FILE *, __gmp_const char *, va_list)); -#endif - -#define gmp_vprintf __gmp_vprintf -#if defined (_GMP_H_HAVE_VA_LIST) -__GMP_DECLSPEC int gmp_vprintf __GMP_PROTO ((__gmp_const char *, va_list)); -#endif - -#define gmp_vsnprintf __gmp_vsnprintf -#if defined (_GMP_H_HAVE_VA_LIST) -__GMP_DECLSPEC int gmp_vsnprintf __GMP_PROTO ((char *, size_t, __gmp_const char *, va_list)); -#endif - -#define gmp_vsprintf __gmp_vsprintf -#if defined (_GMP_H_HAVE_VA_LIST) -__GMP_DECLSPEC int gmp_vsprintf __GMP_PROTO ((char *, __gmp_const char *, va_list)); -#endif - - -/**************** Formatted input routines. ****************/ - -#define gmp_fscanf __gmp_fscanf -#ifdef _GMP_H_HAVE_FILE -__GMP_DECLSPEC int gmp_fscanf __GMP_PROTO ((FILE *, __gmp_const char *, ...)); -#endif - -#define gmp_scanf __gmp_scanf -__GMP_DECLSPEC int gmp_scanf __GMP_PROTO ((__gmp_const char *, ...)); - -#define gmp_sscanf __gmp_sscanf -__GMP_DECLSPEC int gmp_sscanf __GMP_PROTO ((__gmp_const char *, __gmp_const char *, ...)); - -#define gmp_vfscanf __gmp_vfscanf -#if defined (_GMP_H_HAVE_FILE) && defined (_GMP_H_HAVE_VA_LIST) -__GMP_DECLSPEC int gmp_vfscanf __GMP_PROTO ((FILE *, __gmp_const char *, va_list)); -#endif - -#define gmp_vscanf __gmp_vscanf -#if defined (_GMP_H_HAVE_VA_LIST) -__GMP_DECLSPEC int gmp_vscanf __GMP_PROTO ((__gmp_const char *, va_list)); -#endif - -#define gmp_vsscanf __gmp_vsscanf -#if defined (_GMP_H_HAVE_VA_LIST) -__GMP_DECLSPEC int gmp_vsscanf __GMP_PROTO ((__gmp_const char *, __gmp_const char *, va_list)); -#endif - - -/**************** Integer (i.e. Z) routines. ****************/ - -#define _mpz_realloc __gmpz_realloc -#define mpz_realloc __gmpz_realloc -__GMP_DECLSPEC void *_mpz_realloc __GMP_PROTO ((mpz_ptr, mp_size_t)); - -#define mpz_abs __gmpz_abs -#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_abs) -__GMP_DECLSPEC void mpz_abs __GMP_PROTO ((mpz_ptr, mpz_srcptr)); -#endif - -#define mpz_add __gmpz_add -__GMP_DECLSPEC void mpz_add __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); - -#define mpz_add_ui __gmpz_add_ui -__GMP_DECLSPEC void mpz_add_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); - -#define mpz_addmul __gmpz_addmul -__GMP_DECLSPEC void mpz_addmul __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); - -#define mpz_addmul_ui __gmpz_addmul_ui -__GMP_DECLSPEC void mpz_addmul_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); - -#define mpz_and __gmpz_and -__GMP_DECLSPEC void mpz_and __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); - -#define mpz_array_init __gmpz_array_init -__GMP_DECLSPEC void mpz_array_init __GMP_PROTO ((mpz_ptr, mp_size_t, mp_size_t)); - -#define mpz_bin_ui __gmpz_bin_ui -__GMP_DECLSPEC void mpz_bin_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); - -#define mpz_bin_uiui __gmpz_bin_uiui -__GMP_DECLSPEC void mpz_bin_uiui __GMP_PROTO ((mpz_ptr, unsigned long int, unsigned long int)); - -#define mpz_cdiv_q __gmpz_cdiv_q -__GMP_DECLSPEC void mpz_cdiv_q __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); - -#define mpz_cdiv_q_2exp __gmpz_cdiv_q_2exp -__GMP_DECLSPEC void mpz_cdiv_q_2exp __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long)); - -#define mpz_cdiv_q_ui __gmpz_cdiv_q_ui -__GMP_DECLSPEC unsigned long int mpz_cdiv_q_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); - -#define mpz_cdiv_qr __gmpz_cdiv_qr -__GMP_DECLSPEC void mpz_cdiv_qr __GMP_PROTO ((mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr)); - -#define mpz_cdiv_qr_ui __gmpz_cdiv_qr_ui -__GMP_DECLSPEC unsigned long int mpz_cdiv_qr_ui __GMP_PROTO ((mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int)); - -#define mpz_cdiv_r __gmpz_cdiv_r -__GMP_DECLSPEC void mpz_cdiv_r __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); - -#define mpz_cdiv_r_2exp __gmpz_cdiv_r_2exp -__GMP_DECLSPEC void mpz_cdiv_r_2exp __GMP_PROTO ((mpz_ptr, mpz_srcptr, mp_bitcnt_t)); - -#define mpz_cdiv_r_ui __gmpz_cdiv_r_ui -__GMP_DECLSPEC unsigned long int mpz_cdiv_r_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); - -#define mpz_cdiv_ui __gmpz_cdiv_ui -__GMP_DECLSPEC unsigned long int mpz_cdiv_ui __GMP_PROTO ((mpz_srcptr, unsigned long int)) __GMP_ATTRIBUTE_PURE; - -#define mpz_clear __gmpz_clear -__GMP_DECLSPEC void mpz_clear __GMP_PROTO ((mpz_ptr)); - -#define mpz_clears __gmpz_clears -__GMP_DECLSPEC void mpz_clears __GMP_PROTO ((mpz_ptr, ...)); - -#define mpz_clrbit __gmpz_clrbit -__GMP_DECLSPEC void mpz_clrbit __GMP_PROTO ((mpz_ptr, mp_bitcnt_t)); - -#define mpz_cmp __gmpz_cmp -__GMP_DECLSPEC int mpz_cmp __GMP_PROTO ((mpz_srcptr, mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpz_cmp_d __gmpz_cmp_d -__GMP_DECLSPEC int mpz_cmp_d __GMP_PROTO ((mpz_srcptr, double)) __GMP_ATTRIBUTE_PURE; - -#define _mpz_cmp_si __gmpz_cmp_si -__GMP_DECLSPEC int _mpz_cmp_si __GMP_PROTO ((mpz_srcptr, signed long int)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define _mpz_cmp_ui __gmpz_cmp_ui -__GMP_DECLSPEC int _mpz_cmp_ui __GMP_PROTO ((mpz_srcptr, unsigned long int)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpz_cmpabs __gmpz_cmpabs -__GMP_DECLSPEC int mpz_cmpabs __GMP_PROTO ((mpz_srcptr, mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpz_cmpabs_d __gmpz_cmpabs_d -__GMP_DECLSPEC int mpz_cmpabs_d __GMP_PROTO ((mpz_srcptr, double)) __GMP_ATTRIBUTE_PURE; - -#define mpz_cmpabs_ui __gmpz_cmpabs_ui -__GMP_DECLSPEC int mpz_cmpabs_ui __GMP_PROTO ((mpz_srcptr, unsigned long int)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpz_com __gmpz_com -__GMP_DECLSPEC void mpz_com __GMP_PROTO ((mpz_ptr, mpz_srcptr)); - -#define mpz_combit __gmpz_combit -__GMP_DECLSPEC void mpz_combit __GMP_PROTO ((mpz_ptr, mp_bitcnt_t)); - -#define mpz_congruent_p __gmpz_congruent_p -__GMP_DECLSPEC int mpz_congruent_p __GMP_PROTO ((mpz_srcptr, mpz_srcptr, mpz_srcptr)) __GMP_ATTRIBUTE_PURE; - -#define mpz_congruent_2exp_p __gmpz_congruent_2exp_p -__GMP_DECLSPEC int mpz_congruent_2exp_p __GMP_PROTO ((mpz_srcptr, mpz_srcptr, mp_bitcnt_t)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpz_congruent_ui_p __gmpz_congruent_ui_p -__GMP_DECLSPEC int mpz_congruent_ui_p __GMP_PROTO ((mpz_srcptr, unsigned long, unsigned long)) __GMP_ATTRIBUTE_PURE; - -#define mpz_divexact __gmpz_divexact -__GMP_DECLSPEC void mpz_divexact __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); - -#define mpz_divexact_ui __gmpz_divexact_ui -__GMP_DECLSPEC void mpz_divexact_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long)); - -#define mpz_divisible_p __gmpz_divisible_p -__GMP_DECLSPEC int mpz_divisible_p __GMP_PROTO ((mpz_srcptr, mpz_srcptr)) __GMP_ATTRIBUTE_PURE; - -#define mpz_divisible_ui_p __gmpz_divisible_ui_p -__GMP_DECLSPEC int mpz_divisible_ui_p __GMP_PROTO ((mpz_srcptr, unsigned long)) __GMP_ATTRIBUTE_PURE; - -#define mpz_divisible_2exp_p __gmpz_divisible_2exp_p -__GMP_DECLSPEC int mpz_divisible_2exp_p __GMP_PROTO ((mpz_srcptr, mp_bitcnt_t)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpz_dump __gmpz_dump -__GMP_DECLSPEC void mpz_dump __GMP_PROTO ((mpz_srcptr)); - -#define mpz_export __gmpz_export -__GMP_DECLSPEC void *mpz_export __GMP_PROTO ((void *, size_t *, int, size_t, int, size_t, mpz_srcptr)); - -#define mpz_fac_ui __gmpz_fac_ui -__GMP_DECLSPEC void mpz_fac_ui __GMP_PROTO ((mpz_ptr, unsigned long int)); - -#define mpz_fdiv_q __gmpz_fdiv_q -__GMP_DECLSPEC void mpz_fdiv_q __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); - -#define mpz_fdiv_q_2exp __gmpz_fdiv_q_2exp -__GMP_DECLSPEC void mpz_fdiv_q_2exp __GMP_PROTO ((mpz_ptr, mpz_srcptr, mp_bitcnt_t)); - -#define mpz_fdiv_q_ui __gmpz_fdiv_q_ui -__GMP_DECLSPEC unsigned long int mpz_fdiv_q_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); - -#define mpz_fdiv_qr __gmpz_fdiv_qr -__GMP_DECLSPEC void mpz_fdiv_qr __GMP_PROTO ((mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr)); - -#define mpz_fdiv_qr_ui __gmpz_fdiv_qr_ui -__GMP_DECLSPEC unsigned long int mpz_fdiv_qr_ui __GMP_PROTO ((mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int)); - -#define mpz_fdiv_r __gmpz_fdiv_r -__GMP_DECLSPEC void mpz_fdiv_r __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); - -#define mpz_fdiv_r_2exp __gmpz_fdiv_r_2exp -__GMP_DECLSPEC void mpz_fdiv_r_2exp __GMP_PROTO ((mpz_ptr, mpz_srcptr, mp_bitcnt_t)); - -#define mpz_fdiv_r_ui __gmpz_fdiv_r_ui -__GMP_DECLSPEC unsigned long int mpz_fdiv_r_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); - -#define mpz_fdiv_ui __gmpz_fdiv_ui -__GMP_DECLSPEC unsigned long int mpz_fdiv_ui __GMP_PROTO ((mpz_srcptr, unsigned long int)) __GMP_ATTRIBUTE_PURE; - -#define mpz_fib_ui __gmpz_fib_ui -__GMP_DECLSPEC void mpz_fib_ui __GMP_PROTO ((mpz_ptr, unsigned long int)); - -#define mpz_fib2_ui __gmpz_fib2_ui -__GMP_DECLSPEC void mpz_fib2_ui __GMP_PROTO ((mpz_ptr, mpz_ptr, unsigned long int)); - -#define mpz_fits_sint_p __gmpz_fits_sint_p -__GMP_DECLSPEC int mpz_fits_sint_p __GMP_PROTO ((mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpz_fits_slong_p __gmpz_fits_slong_p -__GMP_DECLSPEC int mpz_fits_slong_p __GMP_PROTO ((mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpz_fits_sshort_p __gmpz_fits_sshort_p -__GMP_DECLSPEC int mpz_fits_sshort_p __GMP_PROTO ((mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpz_fits_uint_p __gmpz_fits_uint_p -#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_fits_uint_p) -__GMP_DECLSPEC int mpz_fits_uint_p __GMP_PROTO ((mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; -#endif - -#define mpz_fits_ulong_p __gmpz_fits_ulong_p -#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_fits_ulong_p) -__GMP_DECLSPEC int mpz_fits_ulong_p __GMP_PROTO ((mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; -#endif - -#define mpz_fits_ushort_p __gmpz_fits_ushort_p -#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_fits_ushort_p) -__GMP_DECLSPEC int mpz_fits_ushort_p __GMP_PROTO ((mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; -#endif - -#define mpz_gcd __gmpz_gcd -__GMP_DECLSPEC void mpz_gcd __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); - -#define mpz_gcd_ui __gmpz_gcd_ui -__GMP_DECLSPEC unsigned long int mpz_gcd_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); - -#define mpz_gcdext __gmpz_gcdext -__GMP_DECLSPEC void mpz_gcdext __GMP_PROTO ((mpz_ptr, mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr)); - -#define mpz_get_d __gmpz_get_d -__GMP_DECLSPEC double mpz_get_d __GMP_PROTO ((mpz_srcptr)) __GMP_ATTRIBUTE_PURE; - -#define mpz_get_d_2exp __gmpz_get_d_2exp -__GMP_DECLSPEC double mpz_get_d_2exp __GMP_PROTO ((signed long int *, mpz_srcptr)); - -#define mpz_get_si __gmpz_get_si -__GMP_DECLSPEC /* signed */ long int mpz_get_si __GMP_PROTO ((mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpz_get_str __gmpz_get_str -__GMP_DECLSPEC char *mpz_get_str __GMP_PROTO ((char *, int, mpz_srcptr)); - -#define mpz_get_ui __gmpz_get_ui -#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_get_ui) -__GMP_DECLSPEC unsigned long int mpz_get_ui __GMP_PROTO ((mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; -#endif - -#define mpz_getlimbn __gmpz_getlimbn -#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_getlimbn) -__GMP_DECLSPEC mp_limb_t mpz_getlimbn __GMP_PROTO ((mpz_srcptr, mp_size_t)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; -#endif - -#define mpz_hamdist __gmpz_hamdist -__GMP_DECLSPEC mp_bitcnt_t mpz_hamdist __GMP_PROTO ((mpz_srcptr, mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpz_import __gmpz_import -__GMP_DECLSPEC void mpz_import __GMP_PROTO ((mpz_ptr, size_t, int, size_t, int, size_t, __gmp_const void *)); - -#define mpz_init __gmpz_init -__GMP_DECLSPEC void mpz_init __GMP_PROTO ((mpz_ptr)); - -#define mpz_init2 __gmpz_init2 -__GMP_DECLSPEC void mpz_init2 __GMP_PROTO ((mpz_ptr, mp_bitcnt_t)); - -#define mpz_inits __gmpz_inits -__GMP_DECLSPEC void mpz_inits __GMP_PROTO ((mpz_ptr, ...)); - -#define mpz_init_set __gmpz_init_set -__GMP_DECLSPEC void mpz_init_set __GMP_PROTO ((mpz_ptr, mpz_srcptr)); - -#define mpz_init_set_d __gmpz_init_set_d -__GMP_DECLSPEC void mpz_init_set_d __GMP_PROTO ((mpz_ptr, double)); - -#define mpz_init_set_si __gmpz_init_set_si -__GMP_DECLSPEC void mpz_init_set_si __GMP_PROTO ((mpz_ptr, signed long int)); - -#define mpz_init_set_str __gmpz_init_set_str -__GMP_DECLSPEC int mpz_init_set_str __GMP_PROTO ((mpz_ptr, __gmp_const char *, int)); - -#define mpz_init_set_ui __gmpz_init_set_ui -__GMP_DECLSPEC void mpz_init_set_ui __GMP_PROTO ((mpz_ptr, unsigned long int)); - -#define mpz_inp_raw __gmpz_inp_raw -#ifdef _GMP_H_HAVE_FILE -__GMP_DECLSPEC size_t mpz_inp_raw __GMP_PROTO ((mpz_ptr, FILE *)); -#endif - -#define mpz_inp_str __gmpz_inp_str -#ifdef _GMP_H_HAVE_FILE -__GMP_DECLSPEC size_t mpz_inp_str __GMP_PROTO ((mpz_ptr, FILE *, int)); -#endif - -#define mpz_invert __gmpz_invert -__GMP_DECLSPEC int mpz_invert __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); - -#define mpz_ior __gmpz_ior -__GMP_DECLSPEC void mpz_ior __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); - -#define mpz_jacobi __gmpz_jacobi -__GMP_DECLSPEC int mpz_jacobi __GMP_PROTO ((mpz_srcptr, mpz_srcptr)) __GMP_ATTRIBUTE_PURE; - -#define mpz_kronecker mpz_jacobi /* alias */ - -#define mpz_kronecker_si __gmpz_kronecker_si -__GMP_DECLSPEC int mpz_kronecker_si __GMP_PROTO ((mpz_srcptr, long)) __GMP_ATTRIBUTE_PURE; - -#define mpz_kronecker_ui __gmpz_kronecker_ui -__GMP_DECLSPEC int mpz_kronecker_ui __GMP_PROTO ((mpz_srcptr, unsigned long)) __GMP_ATTRIBUTE_PURE; - -#define mpz_si_kronecker __gmpz_si_kronecker -__GMP_DECLSPEC int mpz_si_kronecker __GMP_PROTO ((long, mpz_srcptr)) __GMP_ATTRIBUTE_PURE; - -#define mpz_ui_kronecker __gmpz_ui_kronecker -__GMP_DECLSPEC int mpz_ui_kronecker __GMP_PROTO ((unsigned long, mpz_srcptr)) __GMP_ATTRIBUTE_PURE; - -#define mpz_lcm __gmpz_lcm -__GMP_DECLSPEC void mpz_lcm __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); - -#define mpz_lcm_ui __gmpz_lcm_ui -__GMP_DECLSPEC void mpz_lcm_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long)); - -#define mpz_legendre mpz_jacobi /* alias */ - -#define mpz_lucnum_ui __gmpz_lucnum_ui -__GMP_DECLSPEC void mpz_lucnum_ui __GMP_PROTO ((mpz_ptr, unsigned long int)); - -#define mpz_lucnum2_ui __gmpz_lucnum2_ui -__GMP_DECLSPEC void mpz_lucnum2_ui __GMP_PROTO ((mpz_ptr, mpz_ptr, unsigned long int)); - -#define mpz_millerrabin __gmpz_millerrabin -__GMP_DECLSPEC int mpz_millerrabin __GMP_PROTO ((mpz_srcptr, int)) __GMP_ATTRIBUTE_PURE; - -#define mpz_mod __gmpz_mod -__GMP_DECLSPEC void mpz_mod __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); - -#define mpz_mod_ui mpz_fdiv_r_ui /* same as fdiv_r because divisor unsigned */ - -#define mpz_mul __gmpz_mul -__GMP_DECLSPEC void mpz_mul __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); - -#define mpz_mul_2exp __gmpz_mul_2exp -__GMP_DECLSPEC void mpz_mul_2exp __GMP_PROTO ((mpz_ptr, mpz_srcptr, mp_bitcnt_t)); - -#define mpz_mul_si __gmpz_mul_si -__GMP_DECLSPEC void mpz_mul_si __GMP_PROTO ((mpz_ptr, mpz_srcptr, long int)); - -#define mpz_mul_ui __gmpz_mul_ui -__GMP_DECLSPEC void mpz_mul_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); - -#define mpz_neg __gmpz_neg -#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_neg) -__GMP_DECLSPEC void mpz_neg __GMP_PROTO ((mpz_ptr, mpz_srcptr)); -#endif - -#define mpz_nextprime __gmpz_nextprime -__GMP_DECLSPEC void mpz_nextprime __GMP_PROTO ((mpz_ptr, mpz_srcptr)); - -#define mpz_out_raw __gmpz_out_raw -#ifdef _GMP_H_HAVE_FILE -__GMP_DECLSPEC size_t mpz_out_raw __GMP_PROTO ((FILE *, mpz_srcptr)); -#endif - -#define mpz_out_str __gmpz_out_str -#ifdef _GMP_H_HAVE_FILE -__GMP_DECLSPEC size_t mpz_out_str __GMP_PROTO ((FILE *, int, mpz_srcptr)); -#endif - -#define mpz_perfect_power_p __gmpz_perfect_power_p -__GMP_DECLSPEC int mpz_perfect_power_p __GMP_PROTO ((mpz_srcptr)) __GMP_ATTRIBUTE_PURE; - -#define mpz_perfect_square_p __gmpz_perfect_square_p -#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_perfect_square_p) -__GMP_DECLSPEC int mpz_perfect_square_p __GMP_PROTO ((mpz_srcptr)) __GMP_ATTRIBUTE_PURE; -#endif - -#define mpz_popcount __gmpz_popcount -#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_popcount) -__GMP_DECLSPEC mp_bitcnt_t mpz_popcount __GMP_PROTO ((mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; -#endif - -#define mpz_pow_ui __gmpz_pow_ui -__GMP_DECLSPEC void mpz_pow_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); - -#define mpz_powm __gmpz_powm -__GMP_DECLSPEC void mpz_powm __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr, mpz_srcptr)); - -#define mpz_powm_sec __gmpz_powm_sec -__GMP_DECLSPEC void mpz_powm_sec __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr, mpz_srcptr)); - -#define mpz_powm_ui __gmpz_powm_ui -__GMP_DECLSPEC void mpz_powm_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int, mpz_srcptr)); - -#define mpz_probab_prime_p __gmpz_probab_prime_p -__GMP_DECLSPEC int mpz_probab_prime_p __GMP_PROTO ((mpz_srcptr, int)) __GMP_ATTRIBUTE_PURE; - -#define mpz_random __gmpz_random -__GMP_DECLSPEC void mpz_random __GMP_PROTO ((mpz_ptr, mp_size_t)); - -#define mpz_random2 __gmpz_random2 -__GMP_DECLSPEC void mpz_random2 __GMP_PROTO ((mpz_ptr, mp_size_t)); - -#define mpz_realloc2 __gmpz_realloc2 -__GMP_DECLSPEC void mpz_realloc2 __GMP_PROTO ((mpz_ptr, mp_bitcnt_t)); - -#define mpz_remove __gmpz_remove -__GMP_DECLSPEC unsigned long int mpz_remove __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); - -#define mpz_root __gmpz_root -__GMP_DECLSPEC int mpz_root __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); - -#define mpz_rootrem __gmpz_rootrem -__GMP_DECLSPEC void mpz_rootrem __GMP_PROTO ((mpz_ptr,mpz_ptr, mpz_srcptr, unsigned long int)); - -#define mpz_rrandomb __gmpz_rrandomb -__GMP_DECLSPEC void mpz_rrandomb __GMP_PROTO ((mpz_ptr, gmp_randstate_t, mp_bitcnt_t)); - -#define mpz_scan0 __gmpz_scan0 -__GMP_DECLSPEC mp_bitcnt_t mpz_scan0 __GMP_PROTO ((mpz_srcptr, mp_bitcnt_t)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpz_scan1 __gmpz_scan1 -__GMP_DECLSPEC mp_bitcnt_t mpz_scan1 __GMP_PROTO ((mpz_srcptr, mp_bitcnt_t)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpz_set __gmpz_set -__GMP_DECLSPEC void mpz_set __GMP_PROTO ((mpz_ptr, mpz_srcptr)); - -#define mpz_set_d __gmpz_set_d -__GMP_DECLSPEC void mpz_set_d __GMP_PROTO ((mpz_ptr, double)); - -#define mpz_set_f __gmpz_set_f -__GMP_DECLSPEC void mpz_set_f __GMP_PROTO ((mpz_ptr, mpf_srcptr)); - -#define mpz_set_q __gmpz_set_q -#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_set_q) -__GMP_DECLSPEC void mpz_set_q __GMP_PROTO ((mpz_ptr, mpq_srcptr)); -#endif - -#define mpz_set_si __gmpz_set_si -__GMP_DECLSPEC void mpz_set_si __GMP_PROTO ((mpz_ptr, signed long int)); - -#define mpz_set_str __gmpz_set_str -__GMP_DECLSPEC int mpz_set_str __GMP_PROTO ((mpz_ptr, __gmp_const char *, int)); - -#define mpz_set_ui __gmpz_set_ui -__GMP_DECLSPEC void mpz_set_ui __GMP_PROTO ((mpz_ptr, unsigned long int)); - -#define mpz_setbit __gmpz_setbit -__GMP_DECLSPEC void mpz_setbit __GMP_PROTO ((mpz_ptr, mp_bitcnt_t)); - -#define mpz_size __gmpz_size -#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpz_size) -__GMP_DECLSPEC size_t mpz_size __GMP_PROTO ((mpz_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; -#endif - -#define mpz_sizeinbase __gmpz_sizeinbase -__GMP_DECLSPEC size_t mpz_sizeinbase __GMP_PROTO ((mpz_srcptr, int)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpz_sqrt __gmpz_sqrt -__GMP_DECLSPEC void mpz_sqrt __GMP_PROTO ((mpz_ptr, mpz_srcptr)); - -#define mpz_sqrtrem __gmpz_sqrtrem -__GMP_DECLSPEC void mpz_sqrtrem __GMP_PROTO ((mpz_ptr, mpz_ptr, mpz_srcptr)); - -#define mpz_sub __gmpz_sub -__GMP_DECLSPEC void mpz_sub __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); - -#define mpz_sub_ui __gmpz_sub_ui -__GMP_DECLSPEC void mpz_sub_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); - -#define mpz_ui_sub __gmpz_ui_sub -__GMP_DECLSPEC void mpz_ui_sub __GMP_PROTO ((mpz_ptr, unsigned long int, mpz_srcptr)); - -#define mpz_submul __gmpz_submul -__GMP_DECLSPEC void mpz_submul __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); - -#define mpz_submul_ui __gmpz_submul_ui -__GMP_DECLSPEC void mpz_submul_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); - -#define mpz_swap __gmpz_swap -__GMP_DECLSPEC void mpz_swap __GMP_PROTO ((mpz_ptr, mpz_ptr)) __GMP_NOTHROW; - -#define mpz_tdiv_ui __gmpz_tdiv_ui -__GMP_DECLSPEC unsigned long int mpz_tdiv_ui __GMP_PROTO ((mpz_srcptr, unsigned long int)) __GMP_ATTRIBUTE_PURE; - -#define mpz_tdiv_q __gmpz_tdiv_q -__GMP_DECLSPEC void mpz_tdiv_q __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); - -#define mpz_tdiv_q_2exp __gmpz_tdiv_q_2exp -__GMP_DECLSPEC void mpz_tdiv_q_2exp __GMP_PROTO ((mpz_ptr, mpz_srcptr, mp_bitcnt_t)); - -#define mpz_tdiv_q_ui __gmpz_tdiv_q_ui -__GMP_DECLSPEC unsigned long int mpz_tdiv_q_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); - -#define mpz_tdiv_qr __gmpz_tdiv_qr -__GMP_DECLSPEC void mpz_tdiv_qr __GMP_PROTO ((mpz_ptr, mpz_ptr, mpz_srcptr, mpz_srcptr)); - -#define mpz_tdiv_qr_ui __gmpz_tdiv_qr_ui -__GMP_DECLSPEC unsigned long int mpz_tdiv_qr_ui __GMP_PROTO ((mpz_ptr, mpz_ptr, mpz_srcptr, unsigned long int)); - -#define mpz_tdiv_r __gmpz_tdiv_r -__GMP_DECLSPEC void mpz_tdiv_r __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); - -#define mpz_tdiv_r_2exp __gmpz_tdiv_r_2exp -__GMP_DECLSPEC void mpz_tdiv_r_2exp __GMP_PROTO ((mpz_ptr, mpz_srcptr, mp_bitcnt_t)); - -#define mpz_tdiv_r_ui __gmpz_tdiv_r_ui -__GMP_DECLSPEC unsigned long int mpz_tdiv_r_ui __GMP_PROTO ((mpz_ptr, mpz_srcptr, unsigned long int)); - -#define mpz_tstbit __gmpz_tstbit -__GMP_DECLSPEC int mpz_tstbit __GMP_PROTO ((mpz_srcptr, mp_bitcnt_t)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpz_ui_pow_ui __gmpz_ui_pow_ui -__GMP_DECLSPEC void mpz_ui_pow_ui __GMP_PROTO ((mpz_ptr, unsigned long int, unsigned long int)); - -#define mpz_urandomb __gmpz_urandomb -__GMP_DECLSPEC void mpz_urandomb __GMP_PROTO ((mpz_ptr, gmp_randstate_t, mp_bitcnt_t)); - -#define mpz_urandomm __gmpz_urandomm -__GMP_DECLSPEC void mpz_urandomm __GMP_PROTO ((mpz_ptr, gmp_randstate_t, mpz_srcptr)); - -#define mpz_xor __gmpz_xor -#define mpz_eor __gmpz_xor -__GMP_DECLSPEC void mpz_xor __GMP_PROTO ((mpz_ptr, mpz_srcptr, mpz_srcptr)); - - -/**************** Rational (i.e. Q) routines. ****************/ - -#define mpq_abs __gmpq_abs -#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpq_abs) -__GMP_DECLSPEC void mpq_abs __GMP_PROTO ((mpq_ptr, mpq_srcptr)); -#endif - -#define mpq_add __gmpq_add -__GMP_DECLSPEC void mpq_add __GMP_PROTO ((mpq_ptr, mpq_srcptr, mpq_srcptr)); - -#define mpq_canonicalize __gmpq_canonicalize -__GMP_DECLSPEC void mpq_canonicalize __GMP_PROTO ((mpq_ptr)); - -#define mpq_clear __gmpq_clear -__GMP_DECLSPEC void mpq_clear __GMP_PROTO ((mpq_ptr)); - -#define mpq_clears __gmpq_clears -__GMP_DECLSPEC void mpq_clears __GMP_PROTO ((mpq_ptr, ...)); - -#define mpq_cmp __gmpq_cmp -__GMP_DECLSPEC int mpq_cmp __GMP_PROTO ((mpq_srcptr, mpq_srcptr)) __GMP_ATTRIBUTE_PURE; - -#define _mpq_cmp_si __gmpq_cmp_si -__GMP_DECLSPEC int _mpq_cmp_si __GMP_PROTO ((mpq_srcptr, long, unsigned long)) __GMP_ATTRIBUTE_PURE; - -#define _mpq_cmp_ui __gmpq_cmp_ui -__GMP_DECLSPEC int _mpq_cmp_ui __GMP_PROTO ((mpq_srcptr, unsigned long int, unsigned long int)) __GMP_ATTRIBUTE_PURE; - -#define mpq_div __gmpq_div -__GMP_DECLSPEC void mpq_div __GMP_PROTO ((mpq_ptr, mpq_srcptr, mpq_srcptr)); - -#define mpq_div_2exp __gmpq_div_2exp -__GMP_DECLSPEC void mpq_div_2exp __GMP_PROTO ((mpq_ptr, mpq_srcptr, mp_bitcnt_t)); - -#define mpq_equal __gmpq_equal -__GMP_DECLSPEC int mpq_equal __GMP_PROTO ((mpq_srcptr, mpq_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpq_get_num __gmpq_get_num -__GMP_DECLSPEC void mpq_get_num __GMP_PROTO ((mpz_ptr, mpq_srcptr)); - -#define mpq_get_den __gmpq_get_den -__GMP_DECLSPEC void mpq_get_den __GMP_PROTO ((mpz_ptr, mpq_srcptr)); - -#define mpq_get_d __gmpq_get_d -__GMP_DECLSPEC double mpq_get_d __GMP_PROTO ((mpq_srcptr)) __GMP_ATTRIBUTE_PURE; - -#define mpq_get_str __gmpq_get_str -__GMP_DECLSPEC char *mpq_get_str __GMP_PROTO ((char *, int, mpq_srcptr)); - -#define mpq_init __gmpq_init -__GMP_DECLSPEC void mpq_init __GMP_PROTO ((mpq_ptr)); - -#define mpq_inits __gmpq_inits -__GMP_DECLSPEC void mpq_inits __GMP_PROTO ((mpq_ptr, ...)); - -#define mpq_inp_str __gmpq_inp_str -#ifdef _GMP_H_HAVE_FILE -__GMP_DECLSPEC size_t mpq_inp_str __GMP_PROTO ((mpq_ptr, FILE *, int)); -#endif - -#define mpq_inv __gmpq_inv -__GMP_DECLSPEC void mpq_inv __GMP_PROTO ((mpq_ptr, mpq_srcptr)); - -#define mpq_mul __gmpq_mul -__GMP_DECLSPEC void mpq_mul __GMP_PROTO ((mpq_ptr, mpq_srcptr, mpq_srcptr)); - -#define mpq_mul_2exp __gmpq_mul_2exp -__GMP_DECLSPEC void mpq_mul_2exp __GMP_PROTO ((mpq_ptr, mpq_srcptr, mp_bitcnt_t)); - -#define mpq_neg __gmpq_neg -#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpq_neg) -__GMP_DECLSPEC void mpq_neg __GMP_PROTO ((mpq_ptr, mpq_srcptr)); -#endif - -#define mpq_out_str __gmpq_out_str -#ifdef _GMP_H_HAVE_FILE -__GMP_DECLSPEC size_t mpq_out_str __GMP_PROTO ((FILE *, int, mpq_srcptr)); -#endif - -#define mpq_set __gmpq_set -__GMP_DECLSPEC void mpq_set __GMP_PROTO ((mpq_ptr, mpq_srcptr)); - -#define mpq_set_d __gmpq_set_d -__GMP_DECLSPEC void mpq_set_d __GMP_PROTO ((mpq_ptr, double)); - -#define mpq_set_den __gmpq_set_den -__GMP_DECLSPEC void mpq_set_den __GMP_PROTO ((mpq_ptr, mpz_srcptr)); - -#define mpq_set_f __gmpq_set_f -__GMP_DECLSPEC void mpq_set_f __GMP_PROTO ((mpq_ptr, mpf_srcptr)); - -#define mpq_set_num __gmpq_set_num -__GMP_DECLSPEC void mpq_set_num __GMP_PROTO ((mpq_ptr, mpz_srcptr)); - -#define mpq_set_si __gmpq_set_si -__GMP_DECLSPEC void mpq_set_si __GMP_PROTO ((mpq_ptr, signed long int, unsigned long int)); - -#define mpq_set_str __gmpq_set_str -__GMP_DECLSPEC int mpq_set_str __GMP_PROTO ((mpq_ptr, __gmp_const char *, int)); - -#define mpq_set_ui __gmpq_set_ui -__GMP_DECLSPEC void mpq_set_ui __GMP_PROTO ((mpq_ptr, unsigned long int, unsigned long int)); - -#define mpq_set_z __gmpq_set_z -__GMP_DECLSPEC void mpq_set_z __GMP_PROTO ((mpq_ptr, mpz_srcptr)); - -#define mpq_sub __gmpq_sub -__GMP_DECLSPEC void mpq_sub __GMP_PROTO ((mpq_ptr, mpq_srcptr, mpq_srcptr)); - -#define mpq_swap __gmpq_swap -__GMP_DECLSPEC void mpq_swap __GMP_PROTO ((mpq_ptr, mpq_ptr)) __GMP_NOTHROW; - - -/**************** Float (i.e. F) routines. ****************/ - -#define mpf_abs __gmpf_abs -__GMP_DECLSPEC void mpf_abs __GMP_PROTO ((mpf_ptr, mpf_srcptr)); - -#define mpf_add __gmpf_add -__GMP_DECLSPEC void mpf_add __GMP_PROTO ((mpf_ptr, mpf_srcptr, mpf_srcptr)); - -#define mpf_add_ui __gmpf_add_ui -__GMP_DECLSPEC void mpf_add_ui __GMP_PROTO ((mpf_ptr, mpf_srcptr, unsigned long int)); -#define mpf_ceil __gmpf_ceil -__GMP_DECLSPEC void mpf_ceil __GMP_PROTO ((mpf_ptr, mpf_srcptr)); - -#define mpf_clear __gmpf_clear -__GMP_DECLSPEC void mpf_clear __GMP_PROTO ((mpf_ptr)); - -#define mpf_clears __gmpf_clears -__GMP_DECLSPEC void mpf_clears __GMP_PROTO ((mpf_ptr, ...)); - -#define mpf_cmp __gmpf_cmp -__GMP_DECLSPEC int mpf_cmp __GMP_PROTO ((mpf_srcptr, mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpf_cmp_d __gmpf_cmp_d -__GMP_DECLSPEC int mpf_cmp_d __GMP_PROTO ((mpf_srcptr, double)) __GMP_ATTRIBUTE_PURE; - -#define mpf_cmp_si __gmpf_cmp_si -__GMP_DECLSPEC int mpf_cmp_si __GMP_PROTO ((mpf_srcptr, signed long int)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpf_cmp_ui __gmpf_cmp_ui -__GMP_DECLSPEC int mpf_cmp_ui __GMP_PROTO ((mpf_srcptr, unsigned long int)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpf_div __gmpf_div -__GMP_DECLSPEC void mpf_div __GMP_PROTO ((mpf_ptr, mpf_srcptr, mpf_srcptr)); - -#define mpf_div_2exp __gmpf_div_2exp -__GMP_DECLSPEC void mpf_div_2exp __GMP_PROTO ((mpf_ptr, mpf_srcptr, mp_bitcnt_t)); - -#define mpf_div_ui __gmpf_div_ui -__GMP_DECLSPEC void mpf_div_ui __GMP_PROTO ((mpf_ptr, mpf_srcptr, unsigned long int)); - -#define mpf_dump __gmpf_dump -__GMP_DECLSPEC void mpf_dump __GMP_PROTO ((mpf_srcptr)); - -#define mpf_eq __gmpf_eq -__GMP_DECLSPEC int mpf_eq __GMP_PROTO ((mpf_srcptr, mpf_srcptr, unsigned long int)) __GMP_ATTRIBUTE_PURE; - -#define mpf_fits_sint_p __gmpf_fits_sint_p -__GMP_DECLSPEC int mpf_fits_sint_p __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpf_fits_slong_p __gmpf_fits_slong_p -__GMP_DECLSPEC int mpf_fits_slong_p __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpf_fits_sshort_p __gmpf_fits_sshort_p -__GMP_DECLSPEC int mpf_fits_sshort_p __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpf_fits_uint_p __gmpf_fits_uint_p -__GMP_DECLSPEC int mpf_fits_uint_p __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpf_fits_ulong_p __gmpf_fits_ulong_p -__GMP_DECLSPEC int mpf_fits_ulong_p __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpf_fits_ushort_p __gmpf_fits_ushort_p -__GMP_DECLSPEC int mpf_fits_ushort_p __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpf_floor __gmpf_floor -__GMP_DECLSPEC void mpf_floor __GMP_PROTO ((mpf_ptr, mpf_srcptr)); - -#define mpf_get_d __gmpf_get_d -__GMP_DECLSPEC double mpf_get_d __GMP_PROTO ((mpf_srcptr)) __GMP_ATTRIBUTE_PURE; - -#define mpf_get_d_2exp __gmpf_get_d_2exp -__GMP_DECLSPEC double mpf_get_d_2exp __GMP_PROTO ((signed long int *, mpf_srcptr)); - -#define mpf_get_default_prec __gmpf_get_default_prec -__GMP_DECLSPEC mp_bitcnt_t mpf_get_default_prec __GMP_PROTO ((void)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpf_get_prec __gmpf_get_prec -__GMP_DECLSPEC mp_bitcnt_t mpf_get_prec __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpf_get_si __gmpf_get_si -__GMP_DECLSPEC long mpf_get_si __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpf_get_str __gmpf_get_str -__GMP_DECLSPEC char *mpf_get_str __GMP_PROTO ((char *, mp_exp_t *, int, size_t, mpf_srcptr)); - -#define mpf_get_ui __gmpf_get_ui -__GMP_DECLSPEC unsigned long mpf_get_ui __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpf_init __gmpf_init -__GMP_DECLSPEC void mpf_init __GMP_PROTO ((mpf_ptr)); - -#define mpf_init2 __gmpf_init2 -__GMP_DECLSPEC void mpf_init2 __GMP_PROTO ((mpf_ptr, mp_bitcnt_t)); - -#define mpf_inits __gmpf_inits -__GMP_DECLSPEC void mpf_inits __GMP_PROTO ((mpf_ptr, ...)); - -#define mpf_init_set __gmpf_init_set -__GMP_DECLSPEC void mpf_init_set __GMP_PROTO ((mpf_ptr, mpf_srcptr)); - -#define mpf_init_set_d __gmpf_init_set_d -__GMP_DECLSPEC void mpf_init_set_d __GMP_PROTO ((mpf_ptr, double)); - -#define mpf_init_set_si __gmpf_init_set_si -__GMP_DECLSPEC void mpf_init_set_si __GMP_PROTO ((mpf_ptr, signed long int)); - -#define mpf_init_set_str __gmpf_init_set_str -__GMP_DECLSPEC int mpf_init_set_str __GMP_PROTO ((mpf_ptr, __gmp_const char *, int)); - -#define mpf_init_set_ui __gmpf_init_set_ui -__GMP_DECLSPEC void mpf_init_set_ui __GMP_PROTO ((mpf_ptr, unsigned long int)); - -#define mpf_inp_str __gmpf_inp_str -#ifdef _GMP_H_HAVE_FILE -__GMP_DECLSPEC size_t mpf_inp_str __GMP_PROTO ((mpf_ptr, FILE *, int)); -#endif - -#define mpf_integer_p __gmpf_integer_p -__GMP_DECLSPEC int mpf_integer_p __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpf_mul __gmpf_mul -__GMP_DECLSPEC void mpf_mul __GMP_PROTO ((mpf_ptr, mpf_srcptr, mpf_srcptr)); - -#define mpf_mul_2exp __gmpf_mul_2exp -__GMP_DECLSPEC void mpf_mul_2exp __GMP_PROTO ((mpf_ptr, mpf_srcptr, mp_bitcnt_t)); - -#define mpf_mul_ui __gmpf_mul_ui -__GMP_DECLSPEC void mpf_mul_ui __GMP_PROTO ((mpf_ptr, mpf_srcptr, unsigned long int)); - -#define mpf_neg __gmpf_neg -__GMP_DECLSPEC void mpf_neg __GMP_PROTO ((mpf_ptr, mpf_srcptr)); - -#define mpf_out_str __gmpf_out_str -#ifdef _GMP_H_HAVE_FILE -__GMP_DECLSPEC size_t mpf_out_str __GMP_PROTO ((FILE *, int, size_t, mpf_srcptr)); -#endif - -#define mpf_pow_ui __gmpf_pow_ui -__GMP_DECLSPEC void mpf_pow_ui __GMP_PROTO ((mpf_ptr, mpf_srcptr, unsigned long int)); - -#define mpf_random2 __gmpf_random2 -__GMP_DECLSPEC void mpf_random2 __GMP_PROTO ((mpf_ptr, mp_size_t, mp_exp_t)); - -#define mpf_reldiff __gmpf_reldiff -__GMP_DECLSPEC void mpf_reldiff __GMP_PROTO ((mpf_ptr, mpf_srcptr, mpf_srcptr)); - -#define mpf_set __gmpf_set -__GMP_DECLSPEC void mpf_set __GMP_PROTO ((mpf_ptr, mpf_srcptr)); - -#define mpf_set_d __gmpf_set_d -__GMP_DECLSPEC void mpf_set_d __GMP_PROTO ((mpf_ptr, double)); - -#define mpf_set_default_prec __gmpf_set_default_prec -__GMP_DECLSPEC void mpf_set_default_prec __GMP_PROTO ((mp_bitcnt_t)) __GMP_NOTHROW; - -#define mpf_set_prec __gmpf_set_prec -__GMP_DECLSPEC void mpf_set_prec __GMP_PROTO ((mpf_ptr, mp_bitcnt_t)); - -#define mpf_set_prec_raw __gmpf_set_prec_raw -__GMP_DECLSPEC void mpf_set_prec_raw __GMP_PROTO ((mpf_ptr, mp_bitcnt_t)) __GMP_NOTHROW; - -#define mpf_set_q __gmpf_set_q -__GMP_DECLSPEC void mpf_set_q __GMP_PROTO ((mpf_ptr, mpq_srcptr)); - -#define mpf_set_si __gmpf_set_si -__GMP_DECLSPEC void mpf_set_si __GMP_PROTO ((mpf_ptr, signed long int)); - -#define mpf_set_str __gmpf_set_str -__GMP_DECLSPEC int mpf_set_str __GMP_PROTO ((mpf_ptr, __gmp_const char *, int)); - -#define mpf_set_ui __gmpf_set_ui -__GMP_DECLSPEC void mpf_set_ui __GMP_PROTO ((mpf_ptr, unsigned long int)); - -#define mpf_set_z __gmpf_set_z -__GMP_DECLSPEC void mpf_set_z __GMP_PROTO ((mpf_ptr, mpz_srcptr)); - -#define mpf_size __gmpf_size -__GMP_DECLSPEC size_t mpf_size __GMP_PROTO ((mpf_srcptr)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpf_sqrt __gmpf_sqrt -__GMP_DECLSPEC void mpf_sqrt __GMP_PROTO ((mpf_ptr, mpf_srcptr)); - -#define mpf_sqrt_ui __gmpf_sqrt_ui -__GMP_DECLSPEC void mpf_sqrt_ui __GMP_PROTO ((mpf_ptr, unsigned long int)); - -#define mpf_sub __gmpf_sub -__GMP_DECLSPEC void mpf_sub __GMP_PROTO ((mpf_ptr, mpf_srcptr, mpf_srcptr)); - -#define mpf_sub_ui __gmpf_sub_ui -__GMP_DECLSPEC void mpf_sub_ui __GMP_PROTO ((mpf_ptr, mpf_srcptr, unsigned long int)); - -#define mpf_swap __gmpf_swap -__GMP_DECLSPEC void mpf_swap __GMP_PROTO ((mpf_ptr, mpf_ptr)) __GMP_NOTHROW; - -#define mpf_trunc __gmpf_trunc -__GMP_DECLSPEC void mpf_trunc __GMP_PROTO ((mpf_ptr, mpf_srcptr)); - -#define mpf_ui_div __gmpf_ui_div -__GMP_DECLSPEC void mpf_ui_div __GMP_PROTO ((mpf_ptr, unsigned long int, mpf_srcptr)); - -#define mpf_ui_sub __gmpf_ui_sub -__GMP_DECLSPEC void mpf_ui_sub __GMP_PROTO ((mpf_ptr, unsigned long int, mpf_srcptr)); - -#define mpf_urandomb __gmpf_urandomb -__GMP_DECLSPEC void mpf_urandomb __GMP_PROTO ((mpf_t, gmp_randstate_t, mp_bitcnt_t)); - - -/************ Low level positive-integer (i.e. N) routines. ************/ - -/* This is ugly, but we need to make user calls reach the prefixed function. */ - -#define mpn_add __MPN(add) -#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_add) -__GMP_DECLSPEC mp_limb_t mpn_add __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_srcptr,mp_size_t)); -#endif - -#define mpn_add_1 __MPN(add_1) -#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_add_1) -__GMP_DECLSPEC mp_limb_t mpn_add_1 __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_limb_t)) __GMP_NOTHROW; -#endif - -#define mpn_add_n __MPN(add_n) -__GMP_DECLSPEC mp_limb_t mpn_add_n __GMP_PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t)); - -#define mpn_addmul_1 __MPN(addmul_1) -__GMP_DECLSPEC mp_limb_t mpn_addmul_1 __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_limb_t)); - -#define mpn_cmp __MPN(cmp) -#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_cmp) -__GMP_DECLSPEC int mpn_cmp __GMP_PROTO ((mp_srcptr, mp_srcptr, mp_size_t)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; -#endif - -#define mpn_divexact_by3(dst,src,size) \ - mpn_divexact_by3c (dst, src, size, __GMP_CAST (mp_limb_t, 0)) - -#define mpn_divexact_by3c __MPN(divexact_by3c) -__GMP_DECLSPEC mp_limb_t mpn_divexact_by3c __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_limb_t)); - -#define mpn_divmod_1(qp,np,nsize,dlimb) \ - mpn_divrem_1 (qp, __GMP_CAST (mp_size_t, 0), np, nsize, dlimb) - -#define mpn_divrem __MPN(divrem) -__GMP_DECLSPEC mp_limb_t mpn_divrem __GMP_PROTO ((mp_ptr, mp_size_t, mp_ptr, mp_size_t, mp_srcptr, mp_size_t)); - -#define mpn_divrem_1 __MPN(divrem_1) -__GMP_DECLSPEC mp_limb_t mpn_divrem_1 __GMP_PROTO ((mp_ptr, mp_size_t, mp_srcptr, mp_size_t, mp_limb_t)); - -#define mpn_divrem_2 __MPN(divrem_2) -__GMP_DECLSPEC mp_limb_t mpn_divrem_2 __GMP_PROTO ((mp_ptr, mp_size_t, mp_ptr, mp_size_t, mp_srcptr)); - -#define mpn_gcd __MPN(gcd) -__GMP_DECLSPEC mp_size_t mpn_gcd __GMP_PROTO ((mp_ptr, mp_ptr, mp_size_t, mp_ptr, mp_size_t)); - -#define mpn_gcd_1 __MPN(gcd_1) -__GMP_DECLSPEC mp_limb_t mpn_gcd_1 __GMP_PROTO ((mp_srcptr, mp_size_t, mp_limb_t)) __GMP_ATTRIBUTE_PURE; - -#define mpn_gcdext_1 __MPN(gcdext_1) -__GMP_DECLSPEC mp_limb_t mpn_gcdext_1 __GMP_PROTO ((mp_limb_signed_t *, mp_limb_signed_t *, mp_limb_t, mp_limb_t)); - -#define mpn_gcdext __MPN(gcdext) -__GMP_DECLSPEC mp_size_t mpn_gcdext __GMP_PROTO ((mp_ptr, mp_ptr, mp_size_t *, mp_ptr, mp_size_t, mp_ptr, mp_size_t)); - -#define mpn_get_str __MPN(get_str) -__GMP_DECLSPEC size_t mpn_get_str __GMP_PROTO ((unsigned char *, int, mp_ptr, mp_size_t)); - -#define mpn_hamdist __MPN(hamdist) -__GMP_DECLSPEC mp_bitcnt_t mpn_hamdist __GMP_PROTO ((mp_srcptr, mp_srcptr, mp_size_t)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpn_lshift __MPN(lshift) -__GMP_DECLSPEC mp_limb_t mpn_lshift __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, unsigned int)); - -#define mpn_mod_1 __MPN(mod_1) -__GMP_DECLSPEC mp_limb_t mpn_mod_1 __GMP_PROTO ((mp_srcptr, mp_size_t, mp_limb_t)) __GMP_ATTRIBUTE_PURE; - -#define mpn_mul __MPN(mul) -__GMP_DECLSPEC mp_limb_t mpn_mul __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t)); - -#define mpn_mul_1 __MPN(mul_1) -__GMP_DECLSPEC mp_limb_t mpn_mul_1 __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_limb_t)); - -#define mpn_mul_n __MPN(mul_n) -__GMP_DECLSPEC void mpn_mul_n __GMP_PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t)); - -#define mpn_sqr __MPN(sqr) -__GMP_DECLSPEC void mpn_sqr __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t)); - -#define mpn_neg __MPN(neg) -#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_neg) -__GMP_DECLSPEC mp_limb_t mpn_neg __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t)); -#endif - -#define mpn_com __MPN(com) -#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_com) -__GMP_DECLSPEC void mpn_com __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t)); -#endif - -#define mpn_perfect_square_p __MPN(perfect_square_p) -__GMP_DECLSPEC int mpn_perfect_square_p __GMP_PROTO ((mp_srcptr, mp_size_t)) __GMP_ATTRIBUTE_PURE; - -#define mpn_perfect_power_p __MPN(perfect_power_p) -__GMP_DECLSPEC int mpn_perfect_power_p __GMP_PROTO ((mp_srcptr, mp_size_t)) __GMP_ATTRIBUTE_PURE; - -#define mpn_popcount __MPN(popcount) -__GMP_DECLSPEC mp_bitcnt_t mpn_popcount __GMP_PROTO ((mp_srcptr, mp_size_t)) __GMP_NOTHROW __GMP_ATTRIBUTE_PURE; - -#define mpn_pow_1 __MPN(pow_1) -__GMP_DECLSPEC mp_size_t mpn_pow_1 __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_limb_t, mp_ptr)); - -/* undocumented now, but retained here for upward compatibility */ -#define mpn_preinv_mod_1 __MPN(preinv_mod_1) -__GMP_DECLSPEC mp_limb_t mpn_preinv_mod_1 __GMP_PROTO ((mp_srcptr, mp_size_t, mp_limb_t, mp_limb_t)) __GMP_ATTRIBUTE_PURE; - -#define mpn_random __MPN(random) -__GMP_DECLSPEC void mpn_random __GMP_PROTO ((mp_ptr, mp_size_t)); - -#define mpn_random2 __MPN(random2) -__GMP_DECLSPEC void mpn_random2 __GMP_PROTO ((mp_ptr, mp_size_t)); - -#define mpn_rshift __MPN(rshift) -__GMP_DECLSPEC mp_limb_t mpn_rshift __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, unsigned int)); - -#define mpn_scan0 __MPN(scan0) -__GMP_DECLSPEC mp_bitcnt_t mpn_scan0 __GMP_PROTO ((mp_srcptr, mp_bitcnt_t)) __GMP_ATTRIBUTE_PURE; - -#define mpn_scan1 __MPN(scan1) -__GMP_DECLSPEC mp_bitcnt_t mpn_scan1 __GMP_PROTO ((mp_srcptr, mp_bitcnt_t)) __GMP_ATTRIBUTE_PURE; - -#define mpn_set_str __MPN(set_str) -__GMP_DECLSPEC mp_size_t mpn_set_str __GMP_PROTO ((mp_ptr, __gmp_const unsigned char *, size_t, int)); - -#define mpn_sqrtrem __MPN(sqrtrem) -__GMP_DECLSPEC mp_size_t mpn_sqrtrem __GMP_PROTO ((mp_ptr, mp_ptr, mp_srcptr, mp_size_t)); - -#define mpn_sub __MPN(sub) -#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_sub) -__GMP_DECLSPEC mp_limb_t mpn_sub __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_srcptr,mp_size_t)); -#endif - -#define mpn_sub_1 __MPN(sub_1) -#if __GMP_INLINE_PROTOTYPES || defined (__GMP_FORCE_mpn_sub_1) -__GMP_DECLSPEC mp_limb_t mpn_sub_1 __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_limb_t)) __GMP_NOTHROW; -#endif - -#define mpn_sub_n __MPN(sub_n) -__GMP_DECLSPEC mp_limb_t mpn_sub_n __GMP_PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t)); - -#define mpn_submul_1 __MPN(submul_1) -__GMP_DECLSPEC mp_limb_t mpn_submul_1 __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t, mp_limb_t)); - -#define mpn_tdiv_qr __MPN(tdiv_qr) -__GMP_DECLSPEC void mpn_tdiv_qr __GMP_PROTO ((mp_ptr, mp_ptr, mp_size_t, mp_srcptr, mp_size_t, mp_srcptr, mp_size_t)); - -#define mpn_and_n __MPN(and_n) -__GMP_DECLSPEC void mpn_and_n __GMP_PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t)); -#define mpn_andn_n __MPN(andn_n) -__GMP_DECLSPEC void mpn_andn_n __GMP_PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t)); -#define mpn_nand_n __MPN(nand_n) -__GMP_DECLSPEC void mpn_nand_n __GMP_PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t)); -#define mpn_ior_n __MPN(ior_n) -__GMP_DECLSPEC void mpn_ior_n __GMP_PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t)); -#define mpn_iorn_n __MPN(iorn_n) -__GMP_DECLSPEC void mpn_iorn_n __GMP_PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t)); -#define mpn_nior_n __MPN(nior_n) -__GMP_DECLSPEC void mpn_nior_n __GMP_PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t)); -#define mpn_xor_n __MPN(xor_n) -__GMP_DECLSPEC void mpn_xor_n __GMP_PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t)); -#define mpn_xnor_n __MPN(xnor_n) -__GMP_DECLSPEC void mpn_xnor_n __GMP_PROTO ((mp_ptr, mp_srcptr, mp_srcptr, mp_size_t)); - -#define mpn_copyi __MPN(copyi) -__GMP_DECLSPEC void mpn_copyi __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t)); -#define mpn_copyd __MPN(copyd) -__GMP_DECLSPEC void mpn_copyd __GMP_PROTO ((mp_ptr, mp_srcptr, mp_size_t)); -#define mpn_zero __MPN(zero) -__GMP_DECLSPEC void mpn_zero __GMP_PROTO ((mp_ptr, mp_size_t)); - -/**************** mpz inlines ****************/ - -/* The following are provided as inlines where possible, but always exist as - library functions too, for binary compatibility. - - Within gmp itself this inlining generally isn't relied on, since it - doesn't get done for all compilers, whereas if something is worth - inlining then it's worth arranging always. - - There are two styles of inlining here. When the same bit of code is - wanted for the inline as for the library version, then __GMP_FORCE_foo - arranges for that code to be emitted and the __GMP_EXTERN_INLINE - directive suppressed, eg. mpz_fits_uint_p. When a different bit of code - is wanted for the inline than for the library version, then - __GMP_FORCE_foo arranges the inline to be suppressed, eg. mpz_abs. */ - -#if defined (__GMP_EXTERN_INLINE) && ! defined (__GMP_FORCE_mpz_abs) -__GMP_EXTERN_INLINE void -mpz_abs (mpz_ptr __gmp_w, mpz_srcptr __gmp_u) -{ - if (__gmp_w != __gmp_u) - mpz_set (__gmp_w, __gmp_u); - __gmp_w->_mp_size = __GMP_ABS (__gmp_w->_mp_size); -} -#endif - -#if GMP_NAIL_BITS == 0 -#define __GMPZ_FITS_UTYPE_P(z,maxval) \ - mp_size_t __gmp_n = z->_mp_size; \ - mp_ptr __gmp_p = z->_mp_d; \ - return (__gmp_n == 0 || (__gmp_n == 1 && __gmp_p[0] <= maxval)); -#else -#define __GMPZ_FITS_UTYPE_P(z,maxval) \ - mp_size_t __gmp_n = z->_mp_size; \ - mp_ptr __gmp_p = z->_mp_d; \ - return (__gmp_n == 0 || (__gmp_n == 1 && __gmp_p[0] <= maxval) \ - || (__gmp_n == 2 && __gmp_p[1] <= ((mp_limb_t) maxval >> GMP_NUMB_BITS))); -#endif - -#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_fits_uint_p) -#if ! defined (__GMP_FORCE_mpz_fits_uint_p) -__GMP_EXTERN_INLINE -#endif -int -mpz_fits_uint_p (mpz_srcptr __gmp_z) __GMP_NOTHROW -{ - __GMPZ_FITS_UTYPE_P (__gmp_z, __GMP_UINT_MAX); -} -#endif - -#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_fits_ulong_p) -#if ! defined (__GMP_FORCE_mpz_fits_ulong_p) -__GMP_EXTERN_INLINE -#endif -int -mpz_fits_ulong_p (mpz_srcptr __gmp_z) __GMP_NOTHROW -{ - __GMPZ_FITS_UTYPE_P (__gmp_z, __GMP_ULONG_MAX); -} -#endif - -#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_fits_ushort_p) -#if ! defined (__GMP_FORCE_mpz_fits_ushort_p) -__GMP_EXTERN_INLINE -#endif -int -mpz_fits_ushort_p (mpz_srcptr __gmp_z) __GMP_NOTHROW -{ - __GMPZ_FITS_UTYPE_P (__gmp_z, __GMP_USHRT_MAX); -} -#endif - -#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_get_ui) -#if ! defined (__GMP_FORCE_mpz_get_ui) -__GMP_EXTERN_INLINE -#endif -unsigned long -mpz_get_ui (mpz_srcptr __gmp_z) __GMP_NOTHROW -{ - mp_ptr __gmp_p = __gmp_z->_mp_d; - mp_size_t __gmp_n = __gmp_z->_mp_size; - mp_limb_t __gmp_l = __gmp_p[0]; - /* This is a "#if" rather than a plain "if" so as to avoid gcc warnings - about "<< GMP_NUMB_BITS" exceeding the type size, and to avoid Borland - C++ 6.0 warnings about condition always true for something like - "__GMP_ULONG_MAX < GMP_NUMB_MASK". */ -#if GMP_NAIL_BITS == 0 || defined (_LONG_LONG_LIMB) - /* limb==long and no nails, or limb==longlong, one limb is enough */ - return (__gmp_n != 0 ? __gmp_l : 0); -#else - /* limb==long and nails, need two limbs when available */ - __gmp_n = __GMP_ABS (__gmp_n); - if (__gmp_n <= 1) - return (__gmp_n != 0 ? __gmp_l : 0); - else - return __gmp_l + (__gmp_p[1] << GMP_NUMB_BITS); -#endif -} -#endif - -#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_getlimbn) -#if ! defined (__GMP_FORCE_mpz_getlimbn) -__GMP_EXTERN_INLINE -#endif -mp_limb_t -mpz_getlimbn (mpz_srcptr __gmp_z, mp_size_t __gmp_n) __GMP_NOTHROW -{ - mp_limb_t __gmp_result = 0; - if (__GMP_LIKELY (__gmp_n >= 0 && __gmp_n < __GMP_ABS (__gmp_z->_mp_size))) - __gmp_result = __gmp_z->_mp_d[__gmp_n]; - return __gmp_result; -} -#endif - -#if defined (__GMP_EXTERN_INLINE) && ! defined (__GMP_FORCE_mpz_neg) -__GMP_EXTERN_INLINE void -mpz_neg (mpz_ptr __gmp_w, mpz_srcptr __gmp_u) -{ - if (__gmp_w != __gmp_u) - mpz_set (__gmp_w, __gmp_u); - __gmp_w->_mp_size = - __gmp_w->_mp_size; -} -#endif - -#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_perfect_square_p) -#if ! defined (__GMP_FORCE_mpz_perfect_square_p) -__GMP_EXTERN_INLINE -#endif -int -mpz_perfect_square_p (mpz_srcptr __gmp_a) -{ - mp_size_t __gmp_asize; - int __gmp_result; - - __gmp_asize = __gmp_a->_mp_size; - __gmp_result = (__gmp_asize >= 0); /* zero is a square, negatives are not */ - if (__GMP_LIKELY (__gmp_asize > 0)) - __gmp_result = mpn_perfect_square_p (__gmp_a->_mp_d, __gmp_asize); - return __gmp_result; -} -#endif - -#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_popcount) -#if ! defined (__GMP_FORCE_mpz_popcount) -__GMP_EXTERN_INLINE -#endif -mp_bitcnt_t -mpz_popcount (mpz_srcptr __gmp_u) __GMP_NOTHROW -{ - mp_size_t __gmp_usize; - mp_bitcnt_t __gmp_result; - - __gmp_usize = __gmp_u->_mp_size; - __gmp_result = (__gmp_usize < 0 ? __GMP_ULONG_MAX : 0); - if (__GMP_LIKELY (__gmp_usize > 0)) - __gmp_result = mpn_popcount (__gmp_u->_mp_d, __gmp_usize); - return __gmp_result; -} -#endif - -#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_set_q) -#if ! defined (__GMP_FORCE_mpz_set_q) -__GMP_EXTERN_INLINE -#endif -void -mpz_set_q (mpz_ptr __gmp_w, mpq_srcptr __gmp_u) -{ - mpz_tdiv_q (__gmp_w, mpq_numref (__gmp_u), mpq_denref (__gmp_u)); -} -#endif - -#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpz_size) -#if ! defined (__GMP_FORCE_mpz_size) -__GMP_EXTERN_INLINE -#endif -size_t -mpz_size (mpz_srcptr __gmp_z) __GMP_NOTHROW -{ - return __GMP_ABS (__gmp_z->_mp_size); -} -#endif - - -/**************** mpq inlines ****************/ - -#if defined (__GMP_EXTERN_INLINE) && ! defined (__GMP_FORCE_mpq_abs) -__GMP_EXTERN_INLINE void -mpq_abs (mpq_ptr __gmp_w, mpq_srcptr __gmp_u) -{ - if (__gmp_w != __gmp_u) - mpq_set (__gmp_w, __gmp_u); - __gmp_w->_mp_num._mp_size = __GMP_ABS (__gmp_w->_mp_num._mp_size); -} -#endif - -#if defined (__GMP_EXTERN_INLINE) && ! defined (__GMP_FORCE_mpq_neg) -__GMP_EXTERN_INLINE void -mpq_neg (mpq_ptr __gmp_w, mpq_srcptr __gmp_u) -{ - if (__gmp_w != __gmp_u) - mpq_set (__gmp_w, __gmp_u); - __gmp_w->_mp_num._mp_size = - __gmp_w->_mp_num._mp_size; -} -#endif - - -/**************** mpn inlines ****************/ - -/* The comments with __GMPN_ADD_1 below apply here too. - - The test for FUNCTION returning 0 should predict well. If it's assumed - {yp,ysize} will usually have a random number of bits then the high limb - won't be full and a carry out will occur a good deal less than 50% of the - time. - - ysize==0 isn't a documented feature, but is used internally in a few - places. - - Producing cout last stops it using up a register during the main part of - the calculation, though gcc (as of 3.0) on an "if (mpn_add (...))" - doesn't seem able to move the true and false legs of the conditional up - to the two places cout is generated. */ - -#define __GMPN_AORS(cout, wp, xp, xsize, yp, ysize, FUNCTION, TEST) \ - do { \ - mp_size_t __gmp_i; \ - mp_limb_t __gmp_x; \ - \ - /* ASSERT ((ysize) >= 0); */ \ - /* ASSERT ((xsize) >= (ysize)); */ \ - /* ASSERT (MPN_SAME_OR_SEPARATE2_P (wp, xsize, xp, xsize)); */ \ - /* ASSERT (MPN_SAME_OR_SEPARATE2_P (wp, xsize, yp, ysize)); */ \ - \ - __gmp_i = (ysize); \ - if (__gmp_i != 0) \ - { \ - if (FUNCTION (wp, xp, yp, __gmp_i)) \ - { \ - do \ - { \ - if (__gmp_i >= (xsize)) \ - { \ - (cout) = 1; \ - goto __gmp_done; \ - } \ - __gmp_x = (xp)[__gmp_i]; \ - } \ - while (TEST); \ - } \ - } \ - if ((wp) != (xp)) \ - __GMPN_COPY_REST (wp, xp, xsize, __gmp_i); \ - (cout) = 0; \ - __gmp_done: \ - ; \ - } while (0) - -#define __GMPN_ADD(cout, wp, xp, xsize, yp, ysize) \ - __GMPN_AORS (cout, wp, xp, xsize, yp, ysize, mpn_add_n, \ - (((wp)[__gmp_i++] = (__gmp_x + 1) & GMP_NUMB_MASK) == 0)) -#define __GMPN_SUB(cout, wp, xp, xsize, yp, ysize) \ - __GMPN_AORS (cout, wp, xp, xsize, yp, ysize, mpn_sub_n, \ - (((wp)[__gmp_i++] = (__gmp_x - 1) & GMP_NUMB_MASK), __gmp_x == 0)) - - -/* The use of __gmp_i indexing is designed to ensure a compile time src==dst - remains nice and clear to the compiler, so that __GMPN_COPY_REST can - disappear, and the load/add/store gets a chance to become a - read-modify-write on CISC CPUs. - - Alternatives: - - Using a pair of pointers instead of indexing would be possible, but gcc - isn't able to recognise compile-time src==dst in that case, even when the - pointers are incremented more or less together. Other compilers would - very likely have similar difficulty. - - gcc could use "if (__builtin_constant_p(src==dst) && src==dst)" or - similar to detect a compile-time src==dst. This works nicely on gcc - 2.95.x, it's not good on gcc 3.0 where __builtin_constant_p(p==p) seems - to be always false, for a pointer p. But the current code form seems - good enough for src==dst anyway. - - gcc on x86 as usual doesn't give particularly good flags handling for the - carry/borrow detection. It's tempting to want some multi instruction asm - blocks to help it, and this was tried, but in truth there's only a few - instructions to save and any gain is all too easily lost by register - juggling setting up for the asm. */ - -#if GMP_NAIL_BITS == 0 -#define __GMPN_AORS_1(cout, dst, src, n, v, OP, CB) \ - do { \ - mp_size_t __gmp_i; \ - mp_limb_t __gmp_x, __gmp_r; \ - \ - /* ASSERT ((n) >= 1); */ \ - /* ASSERT (MPN_SAME_OR_SEPARATE_P (dst, src, n)); */ \ - \ - __gmp_x = (src)[0]; \ - __gmp_r = __gmp_x OP (v); \ - (dst)[0] = __gmp_r; \ - if (CB (__gmp_r, __gmp_x, (v))) \ - { \ - (cout) = 1; \ - for (__gmp_i = 1; __gmp_i < (n);) \ - { \ - __gmp_x = (src)[__gmp_i]; \ - __gmp_r = __gmp_x OP 1; \ - (dst)[__gmp_i] = __gmp_r; \ - ++__gmp_i; \ - if (!CB (__gmp_r, __gmp_x, 1)) \ - { \ - if ((src) != (dst)) \ - __GMPN_COPY_REST (dst, src, n, __gmp_i); \ - (cout) = 0; \ - break; \ - } \ - } \ - } \ - else \ - { \ - if ((src) != (dst)) \ - __GMPN_COPY_REST (dst, src, n, 1); \ - (cout) = 0; \ - } \ - } while (0) -#endif - -#if GMP_NAIL_BITS >= 1 -#define __GMPN_AORS_1(cout, dst, src, n, v, OP, CB) \ - do { \ - mp_size_t __gmp_i; \ - mp_limb_t __gmp_x, __gmp_r; \ - \ - /* ASSERT ((n) >= 1); */ \ - /* ASSERT (MPN_SAME_OR_SEPARATE_P (dst, src, n)); */ \ - \ - __gmp_x = (src)[0]; \ - __gmp_r = __gmp_x OP (v); \ - (dst)[0] = __gmp_r & GMP_NUMB_MASK; \ - if (__gmp_r >> GMP_NUMB_BITS != 0) \ - { \ - (cout) = 1; \ - for (__gmp_i = 1; __gmp_i < (n);) \ - { \ - __gmp_x = (src)[__gmp_i]; \ - __gmp_r = __gmp_x OP 1; \ - (dst)[__gmp_i] = __gmp_r & GMP_NUMB_MASK; \ - ++__gmp_i; \ - if (__gmp_r >> GMP_NUMB_BITS == 0) \ - { \ - if ((src) != (dst)) \ - __GMPN_COPY_REST (dst, src, n, __gmp_i); \ - (cout) = 0; \ - break; \ - } \ - } \ - } \ - else \ - { \ - if ((src) != (dst)) \ - __GMPN_COPY_REST (dst, src, n, 1); \ - (cout) = 0; \ - } \ - } while (0) -#endif - -#define __GMPN_ADDCB(r,x,y) ((r) < (y)) -#define __GMPN_SUBCB(r,x,y) ((x) < (y)) - -#define __GMPN_ADD_1(cout, dst, src, n, v) \ - __GMPN_AORS_1(cout, dst, src, n, v, +, __GMPN_ADDCB) -#define __GMPN_SUB_1(cout, dst, src, n, v) \ - __GMPN_AORS_1(cout, dst, src, n, v, -, __GMPN_SUBCB) - - -/* Compare {xp,size} and {yp,size}, setting "result" to positive, zero or - negative. size==0 is allowed. On random data usually only one limb will - need to be examined to get a result, so it's worth having it inline. */ -#define __GMPN_CMP(result, xp, yp, size) \ - do { \ - mp_size_t __gmp_i; \ - mp_limb_t __gmp_x, __gmp_y; \ - \ - /* ASSERT ((size) >= 0); */ \ - \ - (result) = 0; \ - __gmp_i = (size); \ - while (--__gmp_i >= 0) \ - { \ - __gmp_x = (xp)[__gmp_i]; \ - __gmp_y = (yp)[__gmp_i]; \ - if (__gmp_x != __gmp_y) \ - { \ - /* Cannot use __gmp_x - __gmp_y, may overflow an "int" */ \ - (result) = (__gmp_x > __gmp_y ? 1 : -1); \ - break; \ - } \ - } \ - } while (0) - - -#if defined (__GMPN_COPY) && ! defined (__GMPN_COPY_REST) -#define __GMPN_COPY_REST(dst, src, size, start) \ - do { \ - /* ASSERT ((start) >= 0); */ \ - /* ASSERT ((start) <= (size)); */ \ - __GMPN_COPY ((dst)+(start), (src)+(start), (size)-(start)); \ - } while (0) -#endif - -/* Copy {src,size} to {dst,size}, starting at "start". This is designed to - keep the indexing dst[j] and src[j] nice and simple for __GMPN_ADD_1, - __GMPN_ADD, etc. */ -#if ! defined (__GMPN_COPY_REST) -#define __GMPN_COPY_REST(dst, src, size, start) \ - do { \ - mp_size_t __gmp_j; \ - /* ASSERT ((size) >= 0); */ \ - /* ASSERT ((start) >= 0); */ \ - /* ASSERT ((start) <= (size)); */ \ - /* ASSERT (MPN_SAME_OR_SEPARATE_P (dst, src, size)); */ \ - __GMP_CRAY_Pragma ("_CRI ivdep"); \ - for (__gmp_j = (start); __gmp_j < (size); __gmp_j++) \ - (dst)[__gmp_j] = (src)[__gmp_j]; \ - } while (0) -#endif - -/* Enhancement: Use some of the smarter code from gmp-impl.h. Maybe use - mpn_copyi if there's a native version, and if we don't mind demanding - binary compatibility for it (on targets which use it). */ - -#if ! defined (__GMPN_COPY) -#define __GMPN_COPY(dst, src, size) __GMPN_COPY_REST (dst, src, size, 0) -#endif - - -#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_add) -#if ! defined (__GMP_FORCE_mpn_add) -__GMP_EXTERN_INLINE -#endif -mp_limb_t -mpn_add (mp_ptr __gmp_wp, mp_srcptr __gmp_xp, mp_size_t __gmp_xsize, mp_srcptr __gmp_yp, mp_size_t __gmp_ysize) -{ - mp_limb_t __gmp_c; - __GMPN_ADD (__gmp_c, __gmp_wp, __gmp_xp, __gmp_xsize, __gmp_yp, __gmp_ysize); - return __gmp_c; -} -#endif - -#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_add_1) -#if ! defined (__GMP_FORCE_mpn_add_1) -__GMP_EXTERN_INLINE -#endif -mp_limb_t -mpn_add_1 (mp_ptr __gmp_dst, mp_srcptr __gmp_src, mp_size_t __gmp_size, mp_limb_t __gmp_n) __GMP_NOTHROW -{ - mp_limb_t __gmp_c; - __GMPN_ADD_1 (__gmp_c, __gmp_dst, __gmp_src, __gmp_size, __gmp_n); - return __gmp_c; -} -#endif - -#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_cmp) -#if ! defined (__GMP_FORCE_mpn_cmp) -__GMP_EXTERN_INLINE -#endif -int -mpn_cmp (mp_srcptr __gmp_xp, mp_srcptr __gmp_yp, mp_size_t __gmp_size) __GMP_NOTHROW -{ - int __gmp_result; - __GMPN_CMP (__gmp_result, __gmp_xp, __gmp_yp, __gmp_size); - return __gmp_result; -} -#endif - -#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_sub) -#if ! defined (__GMP_FORCE_mpn_sub) -__GMP_EXTERN_INLINE -#endif -mp_limb_t -mpn_sub (mp_ptr __gmp_wp, mp_srcptr __gmp_xp, mp_size_t __gmp_xsize, mp_srcptr __gmp_yp, mp_size_t __gmp_ysize) -{ - mp_limb_t __gmp_c; - __GMPN_SUB (__gmp_c, __gmp_wp, __gmp_xp, __gmp_xsize, __gmp_yp, __gmp_ysize); - return __gmp_c; -} -#endif - -#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_sub_1) -#if ! defined (__GMP_FORCE_mpn_sub_1) -__GMP_EXTERN_INLINE -#endif -mp_limb_t -mpn_sub_1 (mp_ptr __gmp_dst, mp_srcptr __gmp_src, mp_size_t __gmp_size, mp_limb_t __gmp_n) __GMP_NOTHROW -{ - mp_limb_t __gmp_c; - __GMPN_SUB_1 (__gmp_c, __gmp_dst, __gmp_src, __gmp_size, __gmp_n); - return __gmp_c; -} -#endif - -#if defined (__GMP_EXTERN_INLINE) || defined (__GMP_FORCE_mpn_neg) -#if ! defined (__GMP_FORCE_mpn_neg) -__GMP_EXTERN_INLINE -#endif -mp_limb_t -mpn_neg (mp_ptr __gmp_rp, mp_srcptr __gmp_up, mp_size_t __gmp_n) -{ - mp_limb_t __gmp_ul, __gmp_cy; - __gmp_cy = 0; - do { - __gmp_ul = *__gmp_up++; - *__gmp_rp++ = -__gmp_ul - __gmp_cy; - __gmp_cy |= __gmp_ul != 0; - } while (--__gmp_n != 0); - return __gmp_cy; -} -#endif - -#if defined (__cplusplus) -} -#endif - - -/* Allow faster testing for negative, zero, and positive. */ -#define mpz_sgn(Z) ((Z)->_mp_size < 0 ? -1 : (Z)->_mp_size > 0) -#define mpf_sgn(F) ((F)->_mp_size < 0 ? -1 : (F)->_mp_size > 0) -#define mpq_sgn(Q) ((Q)->_mp_num._mp_size < 0 ? -1 : (Q)->_mp_num._mp_size > 0) - -/* When using GCC, optimize certain common comparisons. */ -#if defined (__GNUC__) && __GNUC__ >= 2 -#define mpz_cmp_ui(Z,UI) \ - (__builtin_constant_p (UI) && (UI) == 0 \ - ? mpz_sgn (Z) : _mpz_cmp_ui (Z,UI)) -#define mpz_cmp_si(Z,SI) \ - (__builtin_constant_p (SI) && (SI) == 0 ? mpz_sgn (Z) \ - : __builtin_constant_p (SI) && (SI) > 0 \ - ? _mpz_cmp_ui (Z, __GMP_CAST (unsigned long int, SI)) \ - : _mpz_cmp_si (Z,SI)) -#define mpq_cmp_ui(Q,NUI,DUI) \ - (__builtin_constant_p (NUI) && (NUI) == 0 \ - ? mpq_sgn (Q) : _mpq_cmp_ui (Q,NUI,DUI)) -#define mpq_cmp_si(q,n,d) \ - (__builtin_constant_p ((n) >= 0) && (n) >= 0 \ - ? mpq_cmp_ui (q, __GMP_CAST (unsigned long, n), d) \ - : _mpq_cmp_si (q, n, d)) -#else -#define mpz_cmp_ui(Z,UI) _mpz_cmp_ui (Z,UI) -#define mpz_cmp_si(Z,UI) _mpz_cmp_si (Z,UI) -#define mpq_cmp_ui(Q,NUI,DUI) _mpq_cmp_ui (Q,NUI,DUI) -#define mpq_cmp_si(q,n,d) _mpq_cmp_si(q,n,d) -#endif - - -/* Using "&" rather than "&&" means these can come out branch-free. Every - mpz_t has at least one limb allocated, so fetching the low limb is always - allowed. */ -#define mpz_odd_p(z) (((z)->_mp_size != 0) & __GMP_CAST (int, (z)->_mp_d[0])) -#define mpz_even_p(z) (! mpz_odd_p (z)) - - -/**************** C++ routines ****************/ - -#ifdef __cplusplus -__GMP_DECLSPEC_XX std::ostream& operator<< (std::ostream &, mpz_srcptr); -__GMP_DECLSPEC_XX std::ostream& operator<< (std::ostream &, mpq_srcptr); -__GMP_DECLSPEC_XX std::ostream& operator<< (std::ostream &, mpf_srcptr); -__GMP_DECLSPEC_XX std::istream& operator>> (std::istream &, mpz_ptr); -__GMP_DECLSPEC_XX std::istream& operator>> (std::istream &, mpq_ptr); -__GMP_DECLSPEC_XX std::istream& operator>> (std::istream &, mpf_ptr); -#endif - - -/* Source-level compatibility with GMP 2 and earlier. */ -#define mpn_divmod(qp,np,nsize,dp,dsize) \ - mpn_divrem (qp, __GMP_CAST (mp_size_t, 0), np, nsize, dp, dsize) - -/* Source-level compatibility with GMP 1. */ -#define mpz_mdiv mpz_fdiv_q -#define mpz_mdivmod mpz_fdiv_qr -#define mpz_mmod mpz_fdiv_r -#define mpz_mdiv_ui mpz_fdiv_q_ui -#define mpz_mdivmod_ui(q,r,n,d) \ - (((r) == 0) ? mpz_fdiv_q_ui (q,n,d) : mpz_fdiv_qr_ui (q,r,n,d)) -#define mpz_mmod_ui(r,n,d) \ - (((r) == 0) ? mpz_fdiv_ui (n,d) : mpz_fdiv_r_ui (r,n,d)) - -/* Useful synonyms, but not quite compatible with GMP 1. */ -#define mpz_div mpz_fdiv_q -#define mpz_divmod mpz_fdiv_qr -#define mpz_div_ui mpz_fdiv_q_ui -#define mpz_divmod_ui mpz_fdiv_qr_ui -#define mpz_div_2exp mpz_fdiv_q_2exp -#define mpz_mod_2exp mpz_fdiv_r_2exp - -enum -{ - GMP_ERROR_NONE = 0, - GMP_ERROR_UNSUPPORTED_ARGUMENT = 1, - GMP_ERROR_DIVISION_BY_ZERO = 2, - GMP_ERROR_SQRT_OF_NEGATIVE = 4, - GMP_ERROR_INVALID_ARGUMENT = 8 -}; - -/* Define CC and CFLAGS which were used to build this version of GMP */ -#define __GMP_CC "gcc -std=gnu99" -#define __GMP_CFLAGS "-m32 -O2 -pedantic -fomit-frame-pointer -mtune=pentiumpro -march=pentiumpro" - -/* Major version number is the value of __GNU_MP__ too, above and in mp.h. */ -#define __GNU_MP_VERSION 5 -#define __GNU_MP_VERSION_MINOR 0 -#define __GNU_MP_VERSION_PATCHLEVEL 1 -#define __GMP_MP_RELEASE (__GNU_MP_VERSION * 10000 + __GNU_MP_VERSION_MINOR * 100 + __GNU_MP_VERSION_PATCHLEVEL) - -#define __GMP_H__ -#endif /* __GMP_H__ */ diff --git a/misc/builddeps/linux32/gmp/lib/libgmp.a b/misc/builddeps/linux32/gmp/lib/libgmp.a deleted file mode 100644 index e61da303c19623b6e09915f22ade913f27a0f3a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 806574 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

rpQtjHDW5u@8sHn@Y27R7`F^xKWS_RmsR~|vc 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. See -*Note Reporting Bugs:: for information about reporting bugs. - - -1.1 How to use this Manual -========================== - -Everyone should read *Note GMP Basics::. If you need to install the -library yourself, then read *Note Installing GMP::. If you have a -system with multiple ABIs, then read *Note ABI and ISA::, for the -compiler options that must be used on applications. - - The rest of the manual can be used for later reference, although it -is probably a good idea to glance through it. - - -File: gmp.info, Node: Installing GMP, Next: GMP Basics, Prev: Introduction to GMP, Up: Top - -2 Installing GMP -**************** - -GMP has an autoconf/automake/libtool based configuration system. On a -Unix-like system a basic build can be done with - - ./configure - make - -Some self-tests can be run with - - make check - -And you can install (under `/usr/local' by default) with - - make install - - If you experience problems, please report them to -. See *Note Reporting Bugs::, for information on -what to include in useful bug reports. - -* Menu: - -* Build Options:: -* ABI and ISA:: -* Notes for Package Builds:: -* Notes for Particular Systems:: -* Known Build Problems:: -* Performance optimization:: - - -File: gmp.info, Node: Build Options, Next: ABI and ISA, Prev: Installing GMP, Up: Installing GMP - -2.1 Build Options -================= - -All the usual autoconf configure options are available, run `./configure ---help' for a summary. The file `INSTALL.autoconf' has some generic -installation information too. - -Tools - `configure' requires various Unix-like tools. See *Note Notes for - Particular Systems::, for some options on non-Unix systems. - - It might be possible to build without the help of `configure', - certainly all the code is there, but unfortunately you'll be on - your own. - -Build Directory - To compile in a separate build directory, `cd' to that directory, - and prefix the configure command with the path to the GMP source - directory. For example - - cd /my/build/dir - /my/sources/gmp-5.0.1/configure - - Not all `make' programs have the necessary features (`VPATH') to - support this. In particular, SunOS and Slowaris `make' have bugs - that make them unable to build in a separate directory. Use GNU - `make' instead. - -`--prefix' and `--exec-prefix' - The `--prefix' option can be used in the normal way to direct GMP - to install under a particular tree. The default is `/usr/local'. - - `--exec-prefix' can be used to direct architecture-dependent files - like `libgmp.a' to a different location. This can be used to share - architecture-independent parts like the documentation, but - separate the dependent parts. Note however that `gmp.h' and - `mp.h' are architecture-dependent since they encode certain - aspects of `libgmp', so it will be necessary to ensure both - `$prefix/include' and `$exec_prefix/include' are available to the - compiler. - -`--disable-shared', `--disable-static' - By default both shared and static libraries are built (where - possible), but one or other can be disabled. Shared libraries - result in smaller executables and permit code sharing between - separate running processes, but on some CPUs are slightly slower, - having a small cost on each function call. - -Native Compilation, `--build=CPU-VENDOR-OS' - For normal native compilation, the system can be specified with - `--build'. By default `./configure' uses the output from running - `./config.guess'. On some systems `./config.guess' can determine - the exact CPU type, on others it will be necessary to give it - explicitly. For example, - - ./configure --build=ultrasparc-sun-solaris2.7 - - In all cases the `OS' part is important, since it controls how - libtool generates shared libraries. Running `./config.guess' is - the simplest way to see what it should be, if you don't know - already. - -Cross Compilation, `--host=CPU-VENDOR-OS' - When cross-compiling, the system used for compiling is given by - `--build' and the system where the library will run is given by - `--host'. For example when using a FreeBSD Athlon system to build - GNU/Linux m68k binaries, - - ./configure --build=athlon-pc-freebsd3.5 --host=m68k-mac-linux-gnu - - Compiler tools are sought first with the host system type as a - prefix. For example `m68k-mac-linux-gnu-ranlib' is tried, then - plain `ranlib'. This makes it possible for a set of - cross-compiling tools to co-exist with native tools. The prefix - is the argument to `--host', and this can be an alias, such as - `m68k-linux'. But note that tools don't have to be setup this - way, it's enough to just have a `PATH' with a suitable - cross-compiling `cc' etc. - - Compiling for a different CPU in the same family as the build - system is a form of cross-compilation, though very possibly this - would merely be special options on a native compiler. In any case - `./configure' avoids depending on being able to run code on the - build system, which is important when creating binaries for a - newer CPU since they very possibly won't run on the build system. - - In all cases the compiler must be able to produce an executable - (of whatever format) from a standard C `main'. Although only - object files will go to make up `libgmp', `./configure' uses - linking tests for various purposes, such as determining what - functions are available on the host system. - - Currently a warning is given unless an explicit `--build' is used - when cross-compiling, because it may not be possible to correctly - guess the build system type if the `PATH' has only a - cross-compiling `cc'. - - Note that the `--target' option is not appropriate for GMP. It's - for use when building compiler tools, with `--host' being where - they will run, and `--target' what they'll produce code for. - Ordinary programs or libraries like GMP are only interested in the - `--host' part, being where they'll run. (Some past versions of - GMP used `--target' incorrectly.) - -CPU types - In general, if you want a library that runs as fast as possible, - you should configure GMP for the exact CPU type your system uses. - However, this may mean the binaries won't run on older members of - the family, and might run slower on other members, older or newer. - The best idea is always to build GMP for the exact machine type - you intend to run it on. - - The following CPUs have specific support. See `configure.in' for - details of what code and compiler options they select. - - * Alpha: alpha, alphaev5, alphaev56, alphapca56, alphapca57, - alphaev6, alphaev67, alphaev68 alphaev7 - - * Cray: c90, j90, t90, sv1 - - * HPPA: hppa1.0, hppa1.1, hppa2.0, hppa2.0n, hppa2.0w, hppa64 - - * IA-64: ia64, itanium, itanium2 - - * MIPS: mips, mips3, mips64 - - * Motorola: m68k, m68000, m68010, m68020, m68030, m68040, - m68060, m68302, m68360, m88k, m88110 - - * POWER: power, power1, power2, power2sc - - * PowerPC: powerpc, powerpc64, powerpc401, powerpc403, - powerpc405, powerpc505, powerpc601, powerpc602, powerpc603, - powerpc603e, powerpc604, powerpc604e, powerpc620, powerpc630, - powerpc740, powerpc7400, powerpc7450, powerpc750, powerpc801, - powerpc821, powerpc823, powerpc860, powerpc970 - - * SPARC: sparc, sparcv8, microsparc, supersparc, sparcv9, - ultrasparc, ultrasparc2, ultrasparc2i, ultrasparc3, sparc64 - - * x86 family: i386, i486, i586, pentium, pentiummmx, pentiumpro, - pentium2, pentium3, pentium4, k6, k62, k63, athlon, amd64, - viac3, viac32 - - * Other: a29k, arm, clipper, i960, ns32k, pyramid, sh, sh2, vax, - z8k - - CPUs not listed will use generic C code. - -Generic C Build - If some of the assembly code causes problems, or if otherwise - desired, the generic C code can be selected with CPU `none'. For - example, - - ./configure --host=none-unknown-freebsd3.5 - - Note that this will run quite slowly, but it should be portable - and should at least make it possible to get something running if - all else fails. - -Fat binary, `--enable-fat' - Using `--enable-fat' selects a "fat binary" build on x86, where - optimized low level subroutines are chosen at runtime according to - the CPU detected. This means more code, but gives good - performance on all x86 chips. (This option might become available - for more architectures in the future.) - -`ABI' - On some systems GMP supports multiple ABIs (application binary - interfaces), meaning data type sizes and calling conventions. By - default GMP chooses the best ABI available, but a particular ABI - can be selected. For example - - ./configure --host=mips64-sgi-irix6 ABI=n32 - - See *Note ABI and ISA::, for the available choices on relevant - CPUs, and what applications need to do. - -`CC', `CFLAGS' - By default the C compiler used is chosen from among some likely - candidates, with `gcc' normally preferred if it's present. The - usual `CC=whatever' can be passed to `./configure' to choose - something different. - - For various systems, default compiler flags are set based on the - CPU and compiler. The usual `CFLAGS="-whatever"' can be passed to - `./configure' to use something different or to set good flags for - systems GMP doesn't otherwise know. - - The `CC' and `CFLAGS' used are printed during `./configure', and - can be found in each generated `Makefile'. This is the easiest way - to check the defaults when considering changing or adding - something. - - Note that when `CC' and `CFLAGS' are specified on a system - supporting multiple ABIs it's important to give an explicit - `ABI=whatever', since GMP can't determine the ABI just from the - flags and won't be able to select the correct assembly code. - - If just `CC' is selected then normal default `CFLAGS' for that - compiler will be used (if GMP recognises it). For example - `CC=gcc' can be used to force the use of GCC, with default flags - (and default ABI). - -`CPPFLAGS' - Any flags like `-D' defines or `-I' includes required by the - preprocessor should be set in `CPPFLAGS' rather than `CFLAGS'. - Compiling is done with both `CPPFLAGS' and `CFLAGS', but - preprocessing uses just `CPPFLAGS'. This distinction is because - most preprocessors won't accept all the flags the compiler does. - Preprocessing is done separately in some configure tests, and in - the `ansi2knr' support for K&R compilers. - -`CC_FOR_BUILD' - Some build-time programs are compiled and run to generate - host-specific data tables. `CC_FOR_BUILD' is the compiler used - for this. It doesn't need to be in any particular ABI or mode, it - merely needs to generate executables that can run. The default is - to try the selected `CC' and some likely candidates such as `cc' - and `gcc', looking for something that works. - - No flags are used with `CC_FOR_BUILD' because a simple invocation - like `cc foo.c' should be enough. If some particular options are - required they can be included as for instance `CC_FOR_BUILD="cc - -whatever"'. - -C++ Support, `--enable-cxx' - C++ support in GMP can be enabled with `--enable-cxx', in which - case a C++ compiler will be required. As a convenience - `--enable-cxx=detect' can be used to enable C++ support only if a - compiler can be found. The C++ support consists of a library - `libgmpxx.la' and header file `gmpxx.h' (*note Headers and - Libraries::). - - A separate `libgmpxx.la' has been adopted rather than having C++ - objects within `libgmp.la' in order to ensure dynamic linked C - programs aren't bloated by a dependency on the C++ standard - library, and to avoid any chance that the C++ compiler could be - required when linking plain C programs. - - `libgmpxx.la' will use certain internals from `libgmp.la' and can - only be expected to work with `libgmp.la' from the same GMP - version. Future changes to the relevant internals will be - accompanied by renaming, so a mismatch will cause unresolved - symbols rather than perhaps mysterious misbehaviour. - - In general `libgmpxx.la' will be usable only with the C++ compiler - that built it, since name mangling and runtime support are usually - incompatible between different compilers. - -`CXX', `CXXFLAGS' - When C++ support is enabled, the C++ compiler and its flags can be - set with variables `CXX' and `CXXFLAGS' in the usual way. The - default for `CXX' is the first compiler that works from a list of - likely candidates, with `g++' normally preferred when available. - The default for `CXXFLAGS' is to try `CFLAGS', `CFLAGS' without - `-g', then for `g++' either `-g -O2' or `-O2', or for other - compilers `-g' or nothing. Trying `CFLAGS' this way is convenient - when using `gcc' and `g++' together, since the flags for `gcc' will - usually suit `g++'. - - It's important that the C and C++ compilers match, meaning their - startup and runtime support routines are compatible and that they - generate code in the same ABI (if there's a choice of ABIs on the - system). `./configure' isn't currently able to check these things - very well itself, so for that reason `--disable-cxx' is the - default, to avoid a build failure due to a compiler mismatch. - Perhaps this will change in the future. - - Incidentally, it's normally not good enough to set `CXX' to the - same as `CC'. Although `gcc' for instance recognises `foo.cc' as - C++ code, only `g++' will invoke the linker the right way when - building an executable or shared library from C++ object files. - -Temporary Memory, `--enable-alloca=' - GMP allocates temporary workspace using one of the following three - methods, which can be selected with for instance - `--enable-alloca=malloc-reentrant'. - - * `alloca' - C library or compiler builtin. - - * `malloc-reentrant' - the heap, in a re-entrant fashion. - - * `malloc-notreentrant' - the heap, with global variables. - - For convenience, the following choices are also available. - `--disable-alloca' is the same as `no'. - - * `yes' - a synonym for `alloca'. - - * `no' - a synonym for `malloc-reentrant'. - - * `reentrant' - `alloca' if available, otherwise - `malloc-reentrant'. This is the default. - - * `notreentrant' - `alloca' if available, otherwise - `malloc-notreentrant'. - - `alloca' is reentrant and fast, and is recommended. It actually - allocates just small blocks on the stack; larger ones use - malloc-reentrant. - - `malloc-reentrant' is, as the name suggests, reentrant and thread - safe, but `malloc-notreentrant' is faster and should be used if - reentrancy is not required. - - The two malloc methods in fact use the memory allocation functions - selected by `mp_set_memory_functions', these being `malloc' and - friends by default. *Note Custom Allocation::. - - An additional choice `--enable-alloca=debug' is available, to help - when debugging memory related problems (*note Debugging::). - -FFT Multiplication, `--disable-fft' - By default multiplications are done using Karatsuba, 3-way Toom, - and Fermat FFT. The FFT is only used on large to very large - operands and can be disabled to save code size if desired. - -Berkeley MP, `--enable-mpbsd' - The Berkeley MP compatibility library (`libmp') and header file - (`mp.h') are built and installed only if `--enable-mpbsd' is used. - *Note BSD Compatible Functions::. - -Assertion Checking, `--enable-assert' - This option enables some consistency checking within the library. - This can be of use while debugging, *note Debugging::. - -Execution Profiling, `--enable-profiling=prof/gprof/instrument' - Enable profiling support, in one of various styles, *note - Profiling::. - -`MPN_PATH' - Various assembly versions of each mpn subroutines are provided. - For a given CPU, a search is made though a path to choose a - version of each. For example `sparcv8' has - - MPN_PATH="sparc32/v8 sparc32 generic" - - which means look first for v8 code, then plain sparc32 (which is - v7), and finally fall back on generic C. Knowledgeable users with - special requirements can specify a different path. Normally this - is completely unnecessary. - -Documentation - The source for the document you're now reading is `doc/gmp.texi', - in Texinfo format, see *Note Texinfo: (texinfo)Top. - - Info format `doc/gmp.info' is included in the distribution. The - usual automake targets are available to make PostScript, DVI, PDF - and HTML (these will require various TeX and Texinfo tools). - - DocBook and XML can be generated by the Texinfo `makeinfo' program - too, see *Note Options for `makeinfo': (texinfo)makeinfo options. - - Some supplementary notes can also be found in the `doc' - subdirectory. - - - -File: gmp.info, Node: ABI and ISA, Next: Notes for Package Builds, Prev: Build Options, Up: Installing GMP - -2.2 ABI and ISA -=============== - -ABI (Application Binary Interface) refers to the calling conventions -between functions, meaning what registers are used and what sizes the -various C data types are. ISA (Instruction Set Architecture) refers to -the instructions and registers a CPU has available. - - Some 64-bit ISA CPUs have both a 64-bit ABI and a 32-bit ABI -defined, the latter for compatibility with older CPUs in the family. -GMP supports some CPUs like this in both ABIs. In fact within GMP -`ABI' means a combination of chip ABI, plus how GMP chooses to use it. -For example in some 32-bit ABIs, GMP may support a limb as either a -32-bit `long' or a 64-bit `long long'. - - By default GMP chooses the best ABI available for a given system, -and this generally gives significantly greater speed. But an ABI can -be chosen explicitly to make GMP compatible with other libraries, or -particular application requirements. For example, - - ./configure ABI=32 - - In all cases it's vital that all object code used in a given program -is compiled for the same ABI. - - Usually a limb is implemented as a `long'. When a `long long' limb -is used this is encoded in the generated `gmp.h'. This is convenient -for applications, but it does mean that `gmp.h' will vary, and can't be -just copied around. `gmp.h' remains compiler independent though, since -all compilers for a particular ABI will be expected to use the same -limb type. - - Currently no attempt is made to follow whatever conventions a system -has for installing library or header files built for a particular ABI. -This will probably only matter when installing multiple builds of GMP, -and it might be as simple as configuring with a special `libdir', or it -might require more than that. Note that builds for different ABIs need -to done separately, with a fresh `./configure' and `make' each. - - -AMD64 (`x86_64') - On AMD64 systems supporting both 32-bit and 64-bit modes for - applications, the following ABI choices are available. - - `ABI=64' - The 64-bit ABI uses 64-bit limbs and pointers and makes full - use of the chip architecture. This is the default. - Applications will usually not need special compiler flags, - but for reference the option is - - gcc -m64 - - `ABI=32' - The 32-bit ABI is the usual i386 conventions. This will be - slower, and is not recommended except for inter-operating - with other code not yet 64-bit capable. Applications must be - compiled with - - gcc -m32 - - (In GCC 2.95 and earlier there's no `-m32' option, it's the - only mode.) - - -HPPA 2.0 (`hppa2.0*', `hppa64') - - `ABI=2.0w' - The 2.0w ABI uses 64-bit limbs and pointers and is available - on HP-UX 11 or up. Applications must be compiled with - - gcc [built for 2.0w] - cc +DD64 - - `ABI=2.0n' - The 2.0n ABI means the 32-bit HPPA 1.0 ABI and all its normal - calling conventions, but with 64-bit instructions permitted - within functions. GMP uses a 64-bit `long long' for a limb. - This ABI is available on hppa64 GNU/Linux and on HP-UX 10 or - higher. Applications must be compiled with - - gcc [built for 2.0n] - cc +DA2.0 +e - - Note that current versions of GCC (eg. 3.2) don't generate - 64-bit instructions for `long long' operations and so may be - slower than for 2.0w. (The GMP assembly code is the same - though.) - - `ABI=1.0' - HPPA 2.0 CPUs can run all HPPA 1.0 and 1.1 code in the 32-bit - HPPA 1.0 ABI. No special compiler options are needed for - applications. - - All three ABIs are available for CPU types `hppa2.0w', `hppa2.0' - and `hppa64', but for CPU type `hppa2.0n' only 2.0n or 1.0 are - considered. - - Note that GCC on HP-UX has no options to choose between 2.0n and - 2.0w modes, unlike HP `cc'. Instead it must be built for one or - the other ABI. GMP will detect how it was built, and skip to the - corresponding `ABI'. - - -IA-64 under HP-UX (`ia64*-*-hpux*', `itanium*-*-hpux*') - HP-UX supports two ABIs for IA-64. GMP performance is the same in - both. - - `ABI=32' - In the 32-bit ABI, pointers, `int's and `long's are 32 bits - and GMP uses a 64 bit `long long' for a limb. Applications - can be compiled without any special flags since this ABI is - the default in both HP C and GCC, but for reference the flags - are - - gcc -milp32 - cc +DD32 - - `ABI=64' - In the 64-bit ABI, `long's and pointers are 64 bits and GMP - uses a `long' for a limb. Applications must be compiled with - - gcc -mlp64 - cc +DD64 - - On other IA-64 systems, GNU/Linux for instance, `ABI=64' is the - only choice. - - -MIPS under IRIX 6 (`mips*-*-irix[6789]') - IRIX 6 always has a 64-bit MIPS 3 or better CPU, and supports ABIs - o32, n32, and 64. n32 or 64 are recommended, and GMP performance - will be the same in each. The default is n32. - - `ABI=o32' - The o32 ABI is 32-bit pointers and integers, and no 64-bit - operations. GMP will be slower than in n32 or 64, this - option only exists to support old compilers, eg. GCC 2.7.2. - Applications can be compiled with no special flags on an old - compiler, or on a newer compiler with - - gcc -mabi=32 - cc -32 - - `ABI=n32' - The n32 ABI is 32-bit pointers and integers, but with a - 64-bit limb using a `long long'. Applications must be - compiled with - - gcc -mabi=n32 - cc -n32 - - `ABI=64' - The 64-bit ABI is 64-bit pointers and integers. Applications - must be compiled with - - gcc -mabi=64 - cc -64 - - Note that MIPS GNU/Linux, as of kernel version 2.2, doesn't have - the necessary support for n32 or 64 and so only gets a 32-bit limb - and the MIPS 2 code. - - -PowerPC 64 (`powerpc64', `powerpc620', `powerpc630', `powerpc970', `power4', `power5') - - `ABI=aix64' - The AIX 64 ABI uses 64-bit limbs and pointers and is the - default on PowerPC 64 `*-*-aix*' systems. Applications must - be compiled with - - gcc -maix64 - xlc -q64 - - `ABI=mode64' - The `mode64' ABI uses 64-bit limbs and pointers, and is the - default on 64-bit GNU/Linux, BSD, and Mac OS X/Darwin - systems. Applications must be compiled with - - gcc -m64 - - `ABI=mode32' - The `mode32' ABI uses a 64-bit `long long' limb but with the - chip still in 32-bit mode and using 32-bit calling - conventions. This is the default on for systems where the - true 64-bit ABIs are unavailable. No special compiler - options are needed for applications. - - `ABI=32' - This is the basic 32-bit PowerPC ABI, with a 32-bit limb. No - special compiler options are needed for applications. - - GMP speed is greatest in `aix64' and `mode32'. In `ABI=32' only - the 32-bit ISA is used and this doesn't make full use of a 64-bit - chip. On a suitable system we could perhaps use more of the ISA, - but there are no plans to do so. - - -Sparc V9 (`sparc64', `sparcv9', `ultrasparc*') - - `ABI=64' - The 64-bit V9 ABI is available on the various BSD sparc64 - ports, recent versions of Sparc64 GNU/Linux, and Solaris 2.7 - and up (when the kernel is in 64-bit mode). GCC 3.2 or - higher, or Sun `cc' is required. On GNU/Linux, depending on - the default `gcc' mode, applications must be compiled with - - gcc -m64 - - On Solaris applications must be compiled with - - gcc -m64 -mptr64 -Wa,-xarch=v9 -mcpu=v9 - cc -xarch=v9 - - On the BSD sparc64 systems no special options are required, - since 64-bits is the only ABI available. - - `ABI=32' - For the basic 32-bit ABI, GMP still uses as much of the V9 - ISA as it can. In the Sun documentation this combination is - known as "v8plus". On GNU/Linux, depending on the default - `gcc' mode, applications may need to be compiled with - - gcc -m32 - - On Solaris, no special compiler options are required for - applications, though using something like the following is - recommended. (`gcc' 2.8 and earlier only support `-mv8' - though.) - - gcc -mv8plus - cc -xarch=v8plus - - GMP speed is greatest in `ABI=64', so it's the default where - available. The speed is partly because there are extra registers - available and partly because 64-bits is considered the more - important case and has therefore had better code written for it. - - Don't be confused by the names of the `-m' and `-x' compiler - options, they're called `arch' but effectively control both ABI - and ISA. - - On Solaris 2.6 and earlier, only `ABI=32' is available since the - kernel doesn't save all registers. - - On Solaris 2.7 with the kernel in 32-bit mode, a normal native - build will reject `ABI=64' because the resulting executables won't - run. `ABI=64' can still be built if desired by making it look - like a cross-compile, for example - - ./configure --build=none --host=sparcv9-sun-solaris2.7 ABI=64 - - -File: gmp.info, Node: Notes for Package Builds, Next: Notes for Particular Systems, Prev: ABI and ISA, Up: Installing GMP - -2.3 Notes for Package Builds -============================ - -GMP should present no great difficulties for packaging in a binary -distribution. - - Libtool is used to build the library and `-version-info' is set -appropriately, having started from `3:0:0' in GMP 3.0 (*note Library -interface versions: (libtool)Versioning.). - - The GMP 4 series will be upwardly binary compatible in each release -and will be upwardly binary compatible with all of the GMP 3 series. -Additional function interfaces may be added in each release, so on -systems where libtool versioning is not fully checked by the loader an -auxiliary mechanism may be needed to express that a dynamic linked -application depends on a new enough GMP. - - An auxiliary mechanism may also be needed to express that -`libgmpxx.la' (from `--enable-cxx', *note Build Options::) requires -`libgmp.la' from the same GMP version, since this is not done by the -libtool versioning, nor otherwise. A mismatch will result in -unresolved symbols from the linker, or perhaps the loader. - - When building a package for a CPU family, care should be taken to use -`--host' (or `--build') to choose the least common denominator among -the CPUs which might use the package. For example this might mean plain -`sparc' (meaning V7) for SPARCs. - - For x86s, `--enable-fat' sets things up for a fat binary build, -making a runtime selection of optimized low level routines. This is a -good choice for packaging to run on a range of x86 chips. - - Users who care about speed will want GMP built for their exact CPU -type, to make best use of the available optimizations. Providing a way -to suitably rebuild a package may be useful. This could be as simple -as making it possible for a user to omit `--build' (and `--host') so -`./config.guess' will detect the CPU. But a way to manually specify a -`--build' will be wanted for systems where `./config.guess' is inexact. - - On systems with multiple ABIs, a packaged build will need to decide -which among the choices is to be provided, see *Note ABI and ISA::. A -given run of `./configure' etc will only build one ABI. If a second -ABI is also required then a second run of `./configure' etc must be -made, starting from a clean directory tree (`make distclean'). - - As noted under "ABI and ISA", currently no attempt is made to follow -system conventions for install locations that vary with ABI, such as -`/usr/lib/sparcv9' for `ABI=64' as opposed to `/usr/lib' for `ABI=32'. -A package build can override `libdir' and other standard variables as -necessary. - - Note that `gmp.h' is a generated file, and will be architecture and -ABI dependent. When attempting to install two ABIs simultaneously it -will be important that an application compile gets the correct `gmp.h' -for its desired ABI. If compiler include paths don't vary with ABI -options then it might be necessary to create a `/usr/include/gmp.h' -which tests preprocessor symbols and chooses the correct actual `gmp.h'. - - -File: gmp.info, Node: Notes for Particular Systems, Next: Known Build Problems, Prev: Notes for Package Builds, Up: Installing GMP - -2.4 Notes for Particular Systems -================================ - -AIX 3 and 4 - On systems `*-*-aix[34]*' shared libraries are disabled by - default, since some versions of the native `ar' fail on the - convenience libraries used. A shared build can be attempted with - - ./configure --enable-shared --disable-static - - Note that the `--disable-static' is necessary because in a shared - build libtool makes `libgmp.a' a symlink to `libgmp.so', - apparently for the benefit of old versions of `ld' which only - recognise `.a', but unfortunately this is done even if a fully - functional `ld' is available. - -ARM - On systems `arm*-*-*', versions of GCC up to and including 2.95.3 - have a bug in unsigned division, giving wrong results for some - operands. GMP `./configure' will demand GCC 2.95.4 or later. - -Compaq C++ - Compaq C++ on OSF 5.1 has two flavours of `iostream', a standard - one and an old pre-standard one (see `man iostream_intro'). GMP - can only use the standard one, which unfortunately is not the - default but must be selected by defining `__USE_STD_IOSTREAM'. - Configure with for instance - - ./configure --enable-cxx CPPFLAGS=-D__USE_STD_IOSTREAM - -Floating Point Mode - On some systems, the hardware floating point has a control mode - which can set all operations to be done in a particular precision, - for instance single, double or extended on x86 systems (x87 - floating point). The GMP functions involving a `double' cannot be - expected to operate to their full precision when the hardware is - in single precision mode. Of course this affects all code, - including application code, not just GMP. - -MS-DOS and MS Windows - On an MS-DOS system DJGPP can be used to build GMP, and on an MS - Windows system Cygwin, DJGPP and MINGW can be used. All three are - excellent ports of GCC and the various GNU tools. - - `http://www.cygwin.com/' - `http://www.delorie.com/djgpp/' - `http://www.mingw.org/' - - Microsoft also publishes an Interix "Services for Unix" which can - be used to build GMP on Windows (with a normal `./configure'), but - it's not free software. - -MS Windows DLLs - On systems `*-*-cygwin*', `*-*-mingw*' and `*-*-pw32*' by default - GMP builds only a static library, but a DLL can be built instead - using - - ./configure --disable-static --enable-shared - - Static and DLL libraries can't both be built, since certain export - directives in `gmp.h' must be different. - - A MINGW DLL build of GMP can be used with Microsoft C. Libtool - doesn't install a `.lib' format import library, but it can be - created with MS `lib' as follows, and copied to the install - directory. Similarly for `libmp' and `libgmpxx'. - - cd .libs - lib /def:libgmp-3.dll.def /out:libgmp-3.lib - - MINGW uses the C runtime library `msvcrt.dll' for I/O, so - applications wanting to use the GMP I/O routines must be compiled - with `cl /MD' to do the same. If one of the other C runtime - library choices provided by MS C is desired then the suggestion is - to use the GMP string functions and confine I/O to the application. - -Motorola 68k CPU Types - `m68k' is taken to mean 68000. `m68020' or higher will give a - performance boost on applicable CPUs. `m68360' can be used for - CPU32 series chips. `m68302' can be used for "Dragonball" series - chips, though this is merely a synonym for `m68000'. - -OpenBSD 2.6 - `m4' in this release of OpenBSD has a bug in `eval' that makes it - unsuitable for `.asm' file processing. `./configure' will detect - the problem and either abort or choose another m4 in the `PATH'. - The bug is fixed in OpenBSD 2.7, so either upgrade or use GNU m4. - -Power CPU Types - In GMP, CPU types `power*' and `powerpc*' will each use - instructions not available on the other, so it's important to - choose the right one for the CPU that will be used. Currently GMP - has no assembly code support for using just the common instruction - subset. To get executables that run on both, the current - suggestion is to use the generic C code (CPU `none'), possibly - with appropriate compiler options (like `-mcpu=common' for `gcc'). - CPU `rs6000' (which is not a CPU but a family of workstations) is - accepted by `config.sub', but is currently equivalent to `none'. - -Sparc CPU Types - `sparcv8' or `supersparc' on relevant systems will give a - significant performance increase over the V7 code selected by plain - `sparc'. - -Sparc App Regs - The GMP assembly code for both 32-bit and 64-bit Sparc clobbers the - "application registers" `g2', `g3' and `g4', the same way that the - GCC default `-mapp-regs' does (*note SPARC Options: (gcc)SPARC - Options.). - - This makes that code unsuitable for use with the special V9 - `-mcmodel=embmedany' (which uses `g4' as a data segment pointer), - and for applications wanting to use those registers for special - purposes. In these cases the only suggestion currently is to - build GMP with CPU `none' to avoid the assembly code. - -SunOS 4 - `/usr/bin/m4' lacks various features needed to process `.asm' - files, and instead `./configure' will automatically use - `/usr/5bin/m4', which we believe is always available (if not then - use GNU m4). - -x86 CPU Types - `i586', `pentium' or `pentiummmx' code is good for its intended P5 - Pentium chips, but quite slow when run on Intel P6 class chips - (PPro, P-II, P-III). `i386' is a better choice when making - binaries that must run on both. - -x86 MMX and SSE2 Code - If the CPU selected has MMX code but the assembler doesn't support - it, a warning is given and non-MMX code is used instead. This - will be an inferior build, since the MMX code that's present is - there because it's faster than the corresponding plain integer - code. The same applies to SSE2. - - Old versions of `gas' don't support MMX instructions, in particular - version 1.92.3 that comes with FreeBSD 2.2.8 or the more recent - OpenBSD 3.1 doesn't. - - Solaris 2.6 and 2.7 `as' generate incorrect object code for - register to register `movq' instructions, and so can't be used for - MMX code. Install a recent `gas' if MMX code is wanted on these - systems. - - -File: gmp.info, Node: Known Build Problems, Next: Performance optimization, Prev: Notes for Particular Systems, Up: Installing GMP - -2.5 Known Build Problems -======================== - -You might find more up-to-date information at `http://gmplib.org/'. - -Compiler link options - The version of libtool currently in use rather aggressively strips - compiler options when linking a shared library. This will - hopefully be relaxed in the future, but for now if this is a - problem the suggestion is to create a little script to hide them, - and for instance configure with - - ./configure CC=gcc-with-my-options - -DJGPP (`*-*-msdosdjgpp*') - The DJGPP port of `bash' 2.03 is unable to run the `configure' - script, it exits silently, having died writing a preamble to - `config.log'. Use `bash' 2.04 or higher. - - `make all' was found to run out of memory during the final - `libgmp.la' link on one system tested, despite having 64Mb - available. Running `make libgmp.la' directly helped, perhaps - recursing into the various subdirectories uses up memory. - -GNU binutils `strip' prior to 2.12 - `strip' from GNU binutils 2.11 and earlier should not be used on - the static libraries `libgmp.a' and `libmp.a' since it will - discard all but the last of multiple archive members with the same - name, like the three versions of `init.o' in `libgmp.a'. Binutils - 2.12 or higher can be used successfully. - - The shared libraries `libgmp.so' and `libmp.so' are not affected by - this and any version of `strip' can be used on them. - -`make' syntax error - On certain versions of SCO OpenServer 5 and IRIX 6.5 the native - `make' is unable to handle the long dependencies list for - `libgmp.la'. The symptom is a "syntax error" on the following - line of the top-level `Makefile'. - - libgmp.la: $(libgmp_la_OBJECTS) $(libgmp_la_DEPENDENCIES) - - Either use GNU Make, or as a workaround remove - `$(libgmp_la_DEPENDENCIES)' from that line (which will make the - initial build work, but if any recompiling is done `libgmp.la' - might not be rebuilt). - -MacOS X (`*-*-darwin*') - Libtool currently only knows how to create shared libraries on - MacOS X using the native `cc' (which is a modified GCC), not a - plain GCC. A static-only build should work though - (`--disable-shared'). - -NeXT prior to 3.3 - The system compiler on old versions of NeXT was a massacred and - old GCC, even if it called itself `cc'. This compiler cannot be - used to build GMP, you need to get a real GCC, and install that. - (NeXT may have fixed this in release 3.3 of their system.) - -POWER and PowerPC - Bugs in GCC 2.7.2 (and 2.6.3) mean it can't be used to compile GMP - on POWER or PowerPC. If you want to use GCC for these machines, - get GCC 2.7.2.1 (or later). - -Sequent Symmetry - Use the GNU assembler instead of the system assembler, since the - latter has serious bugs. - -Solaris 2.6 - The system `sed' prints an error "Output line too long" when - libtool builds `libgmp.la'. This doesn't seem to cause any - obvious ill effects, but GNU `sed' is recommended, to avoid any - doubt. - -Sparc Solaris 2.7 with gcc 2.95.2 in `ABI=32' - A shared library build of GMP seems to fail in this combination, - it builds but then fails the tests, apparently due to some - incorrect data relocations within `gmp_randinit_lc_2exp_size'. - The exact cause is unknown, `--disable-shared' is recommended. - - -File: gmp.info, Node: Performance optimization, Prev: Known Build Problems, Up: Installing GMP - -2.6 Performance optimization -============================ - -For optimal performance, build GMP for the exact CPU type of the target -computer, see *Note Build Options::. - - Unlike what is the case for most other programs, the compiler -typically doesn't matter much, since GMP uses assembly language for the -most critical operation. - - In particular for long-running GMP applications, and applications -demanding extremely large numbers, building and running the `tuneup' -program in the `tune' subdirectory, can be important. For example, - - cd tune - make tuneup - ./tuneup - - will generate better contents for the `gmp-mparam.h' parameter file. - - To use the results, put the output in the file file indicated in the -`Parameters for ...' header. Then recompile from scratch. - - The `tuneup' program takes one useful parameter, `-f NNN', which -instructs the program how long to check FFT multiply parameters. If -you're going to use GMP for extremely large numbers, you may want to -run `tuneup' with a large NNN value. - - -File: gmp.info, Node: GMP Basics, Next: Reporting Bugs, Prev: Installing GMP, Up: Top - -3 GMP Basics -************ - -*Using functions, macros, data types, etc. not documented in this -manual is strongly discouraged. If you do so your application is -guaranteed to be incompatible with future versions of GMP.* - -* Menu: - -* Headers and Libraries:: -* Nomenclature and Types:: -* Function Classes:: -* Variable Conventions:: -* Parameter Conventions:: -* Memory Management:: -* Reentrancy:: -* Useful Macros and Constants:: -* Compatibility with older versions:: -* Demonstration Programs:: -* Efficiency:: -* Debugging:: -* Profiling:: -* Autoconf:: -* Emacs:: - - -File: gmp.info, Node: Headers and Libraries, Next: Nomenclature and Types, Prev: GMP Basics, Up: GMP Basics - -3.1 Headers and Libraries -========================= - -All declarations needed to use GMP are collected in the include file -`gmp.h'. It is designed to work with both C and C++ compilers. - - #include - - Note however that prototypes for GMP functions with `FILE *' -parameters are only provided if `' is included too. - - #include - #include - - Likewise `' (or `') is required for prototypes -with `va_list' parameters, such as `gmp_vprintf'. And `' -for prototypes with `struct obstack' parameters, such as -`gmp_obstack_printf', when available. - - All programs using GMP must link against the `libgmp' library. On a -typical Unix-like system this can be done with `-lgmp', for example - - gcc myprogram.c -lgmp - - GMP C++ functions are in a separate `libgmpxx' library. This is -built and installed if C++ support has been enabled (*note Build -Options::). For example, - - g++ mycxxprog.cc -lgmpxx -lgmp - - GMP is built using Libtool and an application can use that to link -if desired, *note GNU Libtool: (libtool)Top. - - If GMP has been installed to a non-standard location then it may be -necessary to use `-I' and `-L' compiler options to point to the right -directories, and some sort of run-time path for a shared library. - - -File: gmp.info, Node: Nomenclature and Types, Next: Function Classes, Prev: Headers and Libraries, Up: GMP Basics - -3.2 Nomenclature and Types -========================== - -In this manual, "integer" usually means a multiple precision integer, as -defined by the GMP library. The C data type for such integers is -`mpz_t'. Here are some examples of how to declare such integers: - - mpz_t sum; - - struct foo { mpz_t x, y; }; - - mpz_t vec[20]; - - "Rational number" means a multiple precision fraction. The C data -type for these fractions is `mpq_t'. For example: - - mpq_t quotient; - - "Floating point number" or "Float" for short, is an arbitrary -precision mantissa with a limited precision exponent. The C data type -for such objects is `mpf_t'. For example: - - mpf_t fp; - - The floating point functions accept and return exponents in the C -type `mp_exp_t'. Currently this is usually a `long', but on some -systems it's an `int' for efficiency. - - A "limb" means the part of a multi-precision number that fits in a -single machine word. (We chose this word because a limb of the human -body is analogous to a digit, only larger, and containing several -digits.) Normally a limb is 32 or 64 bits. The C data type for a limb -is `mp_limb_t'. - - Counts of limbs of a multi-precision number represented in the C type -`mp_size_t'. Currently this is normally a `long', but on some systems -it's an `int' for efficiency, and on some systems it will be `long -long' in the future. - - Counts of bits of a multi-precision number are represented in the C -type `mp_bitcnt_t'. Currently this is always an `unsigned long', but on -some systems it will be an `unsigned long long' in the future . - - "Random state" means an algorithm selection and current state data. -The C data type for such objects is `gmp_randstate_t'. For example: - - gmp_randstate_t rstate; - - Also, in general `mp_bitcnt_t' is used for bit counts and ranges, and -`size_t' is used for byte or character counts. - - -File: gmp.info, Node: Function Classes, Next: Variable Conventions, Prev: Nomenclature and Types, Up: GMP Basics - -3.3 Function Classes -==================== - -There are six classes of functions in the GMP library: - - 1. Functions for signed integer arithmetic, with names beginning with - `mpz_'. The associated type is `mpz_t'. There are about 150 - functions in this class. (*note Integer Functions::) - - 2. Functions for rational number arithmetic, with names beginning with - `mpq_'. The associated type is `mpq_t'. There are about 40 - functions in this class, but the integer functions can be used for - arithmetic on the numerator and denominator separately. (*note - Rational Number Functions::) - - 3. Functions for floating-point arithmetic, with names beginning with - `mpf_'. The associated type is `mpf_t'. There are about 60 - functions is this class. (*note Floating-point Functions::) - - 4. Functions compatible with Berkeley MP, such as `itom', `madd', and - `mult'. The associated type is `MINT'. (*note BSD Compatible - Functions::) - - 5. Fast low-level functions that operate on natural numbers. These - are used by the functions in the preceding groups, and you can - also call them directly from very time-critical user programs. - These functions' names begin with `mpn_'. The associated type is - array of `mp_limb_t'. There are about 30 (hard-to-use) functions - in this class. (*note Low-level Functions::) - - 6. Miscellaneous functions. Functions for setting up custom - allocation and functions for generating random numbers. (*note - Custom Allocation::, and *note Random Number Functions::) - - -File: gmp.info, Node: Variable Conventions, Next: Parameter Conventions, Prev: Function Classes, Up: GMP Basics - -3.4 Variable Conventions -======================== - -GMP functions generally have output arguments before input arguments. -This notation is by analogy with the assignment operator. The BSD MP -compatibility functions are exceptions, having the output arguments -last. - - GMP lets you use the same variable for both input and output in one -call. For example, the main function for integer multiplication, -`mpz_mul', can be used to square `x' and put the result back in `x' with - - mpz_mul (x, x, x); - - Before you can assign to a GMP variable, you need to initialize it -by calling one of the special initialization functions. When you're -done with a variable, you need to clear it out, using one of the -functions for that purpose. Which function to use depends on the type -of variable. See the chapters on integer functions, rational number -functions, and floating-point functions for details. - - A variable should only be initialized once, or at least cleared -between each initialization. After a variable has been initialized, it -may be assigned to any number of times. - - For efficiency reasons, avoid excessive initializing and clearing. -In general, initialize near the start of a function and clear near the -end. For example, - - void - foo (void) - { - mpz_t n; - int i; - mpz_init (n); - for (i = 1; i < 100; i++) - { - mpz_mul (n, ...); - mpz_fdiv_q (n, ...); - ... - } - mpz_clear (n); - } - - -File: gmp.info, Node: Parameter Conventions, Next: Memory Management, Prev: Variable Conventions, Up: GMP Basics - -3.5 Parameter Conventions -========================= - -When a GMP variable is used as a function parameter, it's effectively a -call-by-reference, meaning if the function stores a value there it will -change the original in the caller. Parameters which are input-only can -be designated `const' to provoke a compiler error or warning on -attempting to modify them. - - When a function is going to return a GMP result, it should designate -a parameter that it sets, like the library functions do. More than one -value can be returned by having more than one output parameter, again -like the library functions. A `return' of an `mpz_t' etc doesn't -return the object, only a pointer, and this is almost certainly not -what's wanted. - - Here's an example accepting an `mpz_t' parameter, doing a -calculation, and storing the result to the indicated parameter. - - void - foo (mpz_t result, const mpz_t param, unsigned long n) - { - unsigned long i; - mpz_mul_ui (result, param, n); - for (i = 1; i < n; i++) - mpz_add_ui (result, result, i*7); - } - - int - main (void) - { - mpz_t r, n; - mpz_init (r); - mpz_init_set_str (n, "123456", 0); - foo (r, n, 20L); - gmp_printf ("%Zd\n", r); - return 0; - } - - `foo' works even if the mainline passes the same variable for -`param' and `result', just like the library functions. But sometimes -it's tricky to make that work, and an application might not want to -bother supporting that sort of thing. - - For interest, the GMP types `mpz_t' etc are implemented as -one-element arrays of certain structures. This is why declaring a -variable creates an object with the fields GMP needs, but then using it -as a parameter passes a pointer to the object. Note that the actual -fields in each `mpz_t' etc are for internal use only and should not be -accessed directly by code that expects to be compatible with future GMP -releases. - - -File: gmp.info, Node: Memory Management, Next: Reentrancy, Prev: Parameter Conventions, Up: GMP Basics - -3.6 Memory Management -===================== - -The GMP types like `mpz_t' are small, containing only a couple of sizes, -and pointers to allocated data. Once a variable is initialized, GMP -takes care of all space allocation. Additional space is allocated -whenever a variable doesn't have enough. - - `mpz_t' and `mpq_t' variables never reduce their allocated space. -Normally this is the best policy, since it avoids frequent reallocation. -Applications that need to return memory to the heap at some particular -point can use `mpz_realloc2', or clear variables no longer needed. - - `mpf_t' variables, in the current implementation, use a fixed amount -of space, determined by the chosen precision and allocated at -initialization, so their size doesn't change. - - All memory is allocated using `malloc' and friends by default, but -this can be changed, see *Note Custom Allocation::. Temporary memory -on the stack is also used (via `alloca'), but this can be changed at -build-time if desired, see *Note Build Options::. - - -File: gmp.info, Node: Reentrancy, Next: Useful Macros and Constants, Prev: Memory Management, Up: GMP Basics - -3.7 Reentrancy -============== - -GMP is reentrant and thread-safe, with some exceptions: - - * If configured with `--enable-alloca=malloc-notreentrant' (or with - `--enable-alloca=notreentrant' when `alloca' is not available), - then naturally GMP is not reentrant. - - * `mpf_set_default_prec' and `mpf_init' use a global variable for the - selected precision. `mpf_init2' can be used instead, and in the - C++ interface an explicit precision to the `mpf_class' constructor. - - * `mpz_random' and the other old random number functions use a global - random state and are hence not reentrant. The newer random number - functions that accept a `gmp_randstate_t' parameter can be used - instead. - - * `gmp_randinit' (obsolete) returns an error indication through a - global variable, which is not thread safe. Applications are - advised to use `gmp_randinit_default' or `gmp_randinit_lc_2exp' - instead. - - * `mp_set_memory_functions' uses global variables to store the - selected memory allocation functions. - - * If the memory allocation functions set by a call to - `mp_set_memory_functions' (or `malloc' and friends by default) are - not reentrant, then GMP will not be reentrant either. - - * If the standard I/O functions such as `fwrite' are not reentrant - then the GMP I/O functions using them will not be reentrant either. - - * It's safe for two threads to read from the same GMP variable - simultaneously, but it's not safe for one to read while the - another might be writing, nor for two threads to write - simultaneously. It's not safe for two threads to generate a - random number from the same `gmp_randstate_t' simultaneously, - since this involves an update of that variable. - - -File: gmp.info, Node: Useful Macros and Constants, Next: Compatibility with older versions, Prev: Reentrancy, Up: GMP Basics - -3.8 Useful Macros and Constants -=============================== - - -- Global Constant: const int mp_bits_per_limb - The number of bits per limb. - - -- Macro: __GNU_MP_VERSION - -- Macro: __GNU_MP_VERSION_MINOR - -- Macro: __GNU_MP_VERSION_PATCHLEVEL - The major and minor GMP version, and patch level, respectively, as - integers. For GMP i.j, these numbers will be i, j, and 0, - respectively. For GMP i.j.k, these numbers will be i, j, and k, - respectively. - - -- Global Constant: const char * const gmp_version - The GMP version number, as a null-terminated string, in the form - "i.j.k". This release is "5.0.1". Note that the format "i.j" was - used when k was zero was used before version 4.3.0. - - -- Macro: __GMP_CC - -- Macro: __GMP_CFLAGS - The compiler and compiler flags, respectively, used when compiling - GMP, as strings. - - -File: gmp.info, Node: Compatibility with older versions, Next: Demonstration Programs, Prev: Useful Macros and Constants, Up: GMP Basics - -3.9 Compatibility with older versions -===================================== - -This version of GMP is upwardly binary compatible with all 4.x and 3.x -versions, and upwardly compatible at the source level with all 2.x -versions, with the following exceptions. - - * `mpn_gcd' had its source arguments swapped as of GMP 3.0, for - consistency with other `mpn' functions. - - * `mpf_get_prec' counted precision slightly differently in GMP 3.0 - and 3.0.1, but in 3.1 reverted to the 2.x style. - - There are a number of compatibility issues between GMP 1 and GMP 2 -that of course also apply when porting applications from GMP 1 to GMP -4. Please see the GMP 2 manual for details. - - The Berkeley MP compatibility library (*note BSD Compatible -Functions::) is source and binary compatible with the standard `libmp'. - - -File: gmp.info, Node: Demonstration Programs, Next: Efficiency, Prev: Compatibility with older versions, Up: GMP Basics - -3.10 Demonstration programs -=========================== - -The `demos' subdirectory has some sample programs using GMP. These -aren't built or installed, but there's a `Makefile' with rules for them. -For instance, - - make pexpr - ./pexpr 68^975+10 - -The following programs are provided - - * `pexpr' is an expression evaluator, the program used on the GMP - web page. - - * The `calc' subdirectory has a similar but simpler evaluator using - `lex' and `yacc'. - - * The `expr' subdirectory is yet another expression evaluator, a - library designed for ease of use within a C program. See - `demos/expr/README' for more information. - - * `factorize' is a Pollard-Rho factorization program. - - * `isprime' is a command-line interface to the `mpz_probab_prime_p' - function. - - * `primes' counts or lists primes in an interval, using a sieve. - - * `qcn' is an example use of `mpz_kronecker_ui' to estimate quadratic - class numbers. - - * The `perl' subdirectory is a comprehensive perl interface to GMP. - See `demos/perl/INSTALL' for more information. Documentation is - in POD format in `demos/perl/GMP.pm'. - - As an aside, consideration has been given at various times to some -sort of expression evaluation within the main GMP library. Going -beyond something minimal quickly leads to matters like user-defined -functions, looping, fixnums for control variables, etc, which are -considered outside the scope of GMP (much closer to language -interpreters or compilers, *Note Language Bindings::.) Something -simple for program input convenience may yet be a possibility, a -combination of the `expr' demo and the `pexpr' tree back-end perhaps. -But for now the above evaluators are offered as illustrations. - - -File: gmp.info, Node: Efficiency, Next: Debugging, Prev: Demonstration Programs, Up: GMP Basics - -3.11 Efficiency -=============== - -Small Operands - On small operands, the time for function call overheads and memory - allocation can be significant in comparison to actual calculation. - This is unavoidable in a general purpose variable precision - library, although GMP attempts to be as efficient as it can on - both large and small operands. - -Static Linking - On some CPUs, in particular the x86s, the static `libgmp.a' should - be used for maximum speed, since the PIC code in the shared - `libgmp.so' will have a small overhead on each function call and - global data address. For many programs this will be - insignificant, but for long calculations there's a gain to be had. - -Initializing and Clearing - Avoid excessive initializing and clearing of variables, since this - can be quite time consuming, especially in comparison to otherwise - fast operations like addition. - - A language interpreter might want to keep a free list or stack of - initialized variables ready for use. It should be possible to - integrate something like that with a garbage collector too. - -Reallocations - An `mpz_t' or `mpq_t' variable used to hold successively increasing - values will have its memory repeatedly `realloc'ed, which could be - quite slow or could fragment memory, depending on the C library. - If an application can estimate the final size then `mpz_init2' or - `mpz_realloc2' can be called to allocate the necessary space from - the beginning (*note Initializing Integers::). - - It doesn't matter if a size set with `mpz_init2' or `mpz_realloc2' - is too small, since all functions will do a further reallocation - if necessary. Badly overestimating memory required will waste - space though. - -`2exp' Functions - It's up to an application to call functions like `mpz_mul_2exp' - when appropriate. General purpose functions like `mpz_mul' make - no attempt to identify powers of two or other special forms, - because such inputs will usually be very rare and testing every - time would be wasteful. - -`ui' and `si' Functions - The `ui' functions and the small number of `si' functions exist for - convenience and should be used where applicable. But if for - example an `mpz_t' contains a value that fits in an `unsigned - long' there's no need extract it and call a `ui' function, just - use the regular `mpz' function. - -In-Place Operations - `mpz_abs', `mpq_abs', `mpf_abs', `mpz_neg', `mpq_neg' and - `mpf_neg' are fast when used for in-place operations like - `mpz_abs(x,x)', since in the current implementation only a single - field of `x' needs changing. On suitable compilers (GCC for - instance) this is inlined too. - - `mpz_add_ui', `mpz_sub_ui', `mpf_add_ui' and `mpf_sub_ui' benefit - from an in-place operation like `mpz_add_ui(x,x,y)', since usually - only one or two limbs of `x' will need to be changed. The same - applies to the full precision `mpz_add' etc if `y' is small. If - `y' is big then cache locality may be helped, but that's all. - - `mpz_mul' is currently the opposite, a separate destination is - slightly better. A call like `mpz_mul(x,x,y)' will, unless `y' is - only one limb, make a temporary copy of `x' before forming the - result. Normally that copying will only be a tiny fraction of the - time for the multiply, so this is not a particularly important - consideration. - - `mpz_set', `mpq_set', `mpq_set_num', `mpf_set', etc, make no - attempt to recognise a copy of something to itself, so a call like - `mpz_set(x,x)' will be wasteful. Naturally that would never be - written deliberately, but if it might arise from two pointers to - the same object then a test to avoid it might be desirable. - - if (x != y) - mpz_set (x, y); - - Note that it's never worth introducing extra `mpz_set' calls just - to get in-place operations. If a result should go to a particular - variable then just direct it there and let GMP take care of data - movement. - -Divisibility Testing (Small Integers) - `mpz_divisible_ui_p' and `mpz_congruent_ui_p' are the best - functions for testing whether an `mpz_t' is divisible by an - individual small integer. They use an algorithm which is faster - than `mpz_tdiv_ui', but which gives no useful information about - the actual remainder, only whether it's zero (or a particular - value). - - However when testing divisibility by several small integers, it's - best to take a remainder modulo their product, to save - multi-precision operations. For instance to test whether a number - is divisible by any of 23, 29 or 31 take a remainder modulo - 23*29*31 = 20677 and then test that. - - The division functions like `mpz_tdiv_q_ui' which give a quotient - as well as a remainder are generally a little slower than the - remainder-only functions like `mpz_tdiv_ui'. If the quotient is - only rarely wanted then it's probably best to just take a - remainder and then go back and calculate the quotient if and when - it's wanted (`mpz_divexact_ui' can be used if the remainder is - zero). - -Rational Arithmetic - The `mpq' functions operate on `mpq_t' values with no common - factors in the numerator and denominator. Common factors are - checked-for and cast out as necessary. In general, cancelling - factors every time is the best approach since it minimizes the - sizes for subsequent operations. - - However, applications that know something about the factorization - of the values they're working with might be able to avoid some of - the GCDs used for canonicalization, or swap them for divisions. - For example when multiplying by a prime it's enough to check for - factors of it in the denominator instead of doing a full GCD. Or - when forming a big product it might be known that very little - cancellation will be possible, and so canonicalization can be left - to the end. - - The `mpq_numref' and `mpq_denref' macros give access to the - numerator and denominator to do things outside the scope of the - supplied `mpq' functions. *Note Applying Integer Functions::. - - The canonical form for rationals allows mixed-type `mpq_t' and - integer additions or subtractions to be done directly with - multiples of the denominator. This will be somewhat faster than - `mpq_add'. For example, - - /* mpq increment */ - mpz_add (mpq_numref(q), mpq_numref(q), mpq_denref(q)); - - /* mpq += unsigned long */ - mpz_addmul_ui (mpq_numref(q), mpq_denref(q), 123UL); - - /* mpq -= mpz */ - mpz_submul (mpq_numref(q), mpq_denref(q), z); - -Number Sequences - Functions like `mpz_fac_ui', `mpz_fib_ui' and `mpz_bin_uiui' are - designed for calculating isolated values. If a range of values is - wanted it's probably best to call to get a starting point and - iterate from there. - -Text Input/Output - Hexadecimal or octal are suggested for input or output in text - form. Power-of-2 bases like these can be converted much more - efficiently than other bases, like decimal. For big numbers - there's usually nothing of particular interest to be seen in the - digits, so the base doesn't matter much. - - Maybe we can hope octal will one day become the normal base for - everyday use, as proposed by King Charles XII of Sweden and later - reformers. - - -File: gmp.info, Node: Debugging, Next: Profiling, Prev: Efficiency, Up: GMP Basics - -3.12 Debugging -============== - -Stack Overflow - Depending on the system, a segmentation violation or bus error - might be the only indication of stack overflow. See - `--enable-alloca' choices in *Note Build Options::, for how to - address this. - - In new enough versions of GCC, `-fstack-check' may be able to - ensure an overflow is recognised by the system before too much - damage is done, or `-fstack-limit-symbol' or - `-fstack-limit-register' may be able to add checking if the system - itself doesn't do any (*note Options for Code Generation: - (gcc)Code Gen Options.). These options must be added to the - `CFLAGS' used in the GMP build (*note Build Options::), adding - them just to an application will have no effect. Note also - they're a slowdown, adding overhead to each function call and each - stack allocation. - -Heap Problems - The most likely cause of application problems with GMP is heap - corruption. Failing to `init' GMP variables will have - unpredictable effects, and corruption arising elsewhere in a - program may well affect GMP. Initializing GMP variables more than - once or failing to clear them will cause memory leaks. - - In all such cases a `malloc' debugger is recommended. On a GNU or - BSD system the standard C library `malloc' has some diagnostic - facilities, see *Note Allocation Debugging: (libc)Allocation - Debugging, or `man 3 malloc'. Other possibilities, in no - particular order, include - - `http://www.inf.ethz.ch/personal/biere/projects/ccmalloc/' - `http://dmalloc.com/' - `http://www.perens.com/FreeSoftware/' (electric fence) - `http://packages.debian.org/stable/devel/fda' - `http://www.gnupdate.org/components/leakbug/' - `http://people.redhat.com/~otaylor/memprof/' - `http://www.cbmamiga.demon.co.uk/mpatrol/' - - The GMP default allocation routines in `memory.c' also have a - simple sentinel scheme which can be enabled with `#define DEBUG' - in that file. This is mainly designed for detecting buffer - overruns during GMP development, but might find other uses. - -Stack Backtraces - On some systems the compiler options GMP uses by default can - interfere with debugging. In particular on x86 and 68k systems - `-fomit-frame-pointer' is used and this generally inhibits stack - backtracing. Recompiling without such options may help while - debugging, though the usual caveats about it potentially moving a - memory problem or hiding a compiler bug will apply. - -GDB, the GNU Debugger - A sample `.gdbinit' is included in the distribution, showing how - to call some undocumented dump functions to print GMP variables - from within GDB. Note that these functions shouldn't be used in - final application code since they're undocumented and may be - subject to incompatible changes in future versions of GMP. - -Source File Paths - GMP has multiple source files with the same name, in different - directories. For example `mpz', `mpq' and `mpf' each have an - `init.c'. If the debugger can't already determine the right one - it may help to build with absolute paths on each C file. One way - to do that is to use a separate object directory with an absolute - path to the source directory. - - cd /my/build/dir - /my/source/dir/gmp-5.0.1/configure - - This works via `VPATH', and might require GNU `make'. Alternately - it might be possible to change the `.c.lo' rules appropriately. - -Assertion Checking - The build option `--enable-assert' is available to add some - consistency checks to the library (see *Note Build Options::). - These are likely to be of limited value to most applications. - Assertion failures are just as likely to indicate memory - corruption as a library or compiler bug. - - Applications using the low-level `mpn' functions, however, will - benefit from `--enable-assert' since it adds checks on the - parameters of most such functions, many of which have subtle - restrictions on their usage. Note however that only the generic C - code has checks, not the assembly code, so CPU `none' should be - used for maximum checking. - -Temporary Memory Checking - The build option `--enable-alloca=debug' arranges that each block - of temporary memory in GMP is allocated with a separate call to - `malloc' (or the allocation function set with - `mp_set_memory_functions'). - - This can help a malloc debugger detect accesses outside the - intended bounds, or detect memory not released. In a normal - build, on the other hand, temporary memory is allocated in blocks - which GMP divides up for its own use, or may be allocated with a - compiler builtin `alloca' which will go nowhere near any malloc - debugger hooks. - -Maximum Debuggability - To summarize the above, a GMP build for maximum debuggability - would be - - ./configure --disable-shared --enable-assert \ - --enable-alloca=debug --host=none CFLAGS=-g - - For C++, add `--enable-cxx CXXFLAGS=-g'. - -Checker - The GCC checker (`http://savannah.nongnu.org/projects/checker/') - can be used with GMP. It contains a stub library which means GMP - applications compiled with checker can use a normal GMP build. - - A build of GMP with checking within GMP itself can be made. This - will run very very slowly. On GNU/Linux for example, - - ./configure --host=none-pc-linux-gnu CC=checkergcc - - `--host=none' must be used, since the GMP assembly code doesn't - support the checking scheme. The GMP C++ features cannot be used, - since current versions of checker (0.9.9.1) don't yet support the - standard C++ library. - -Valgrind - The valgrind program (`http://valgrind.org/') is a memory checker - for x86s. It translates and emulates machine instructions to do - strong checks for uninitialized data (at the level of individual - bits), memory accesses through bad pointers, and memory leaks. - - Recent versions of Valgrind are getting support for MMX and - SSE/SSE2 instructions, for past versions GMP will need to be - configured not to use those, ie. for an x86 without them (for - instance plain `i486'). - -Other Problems - Any suspected bug in GMP itself should be isolated to make sure - it's not an application problem, see *Note Reporting Bugs::. - - -File: gmp.info, Node: Profiling, Next: Autoconf, Prev: Debugging, Up: GMP Basics - -3.13 Profiling -============== - -Running a program under a profiler is a good way to find where it's -spending most time and where improvements can be best sought. The -profiling choices for a GMP build are as follows. - -`--disable-profiling' - The default is to add nothing special for profiling. - - It should be possible to just compile the mainline of a program - with `-p' and use `prof' to get a profile consisting of - timer-based sampling of the program counter. Most of the GMP - assembly code has the necessary symbol information. - - This approach has the advantage of minimizing interference with - normal program operation, but on most systems the resolution of - the sampling is quite low (10 milliseconds for instance), - requiring long runs to get accurate information. - -`--enable-profiling=prof' - Build with support for the system `prof', which means `-p' added - to the `CFLAGS'. - - This provides call counting in addition to program counter - sampling, which allows the most frequently called routines to be - identified, and an average time spent in each routine to be - determined. - - The x86 assembly code has support for this option, but on other - processors the assembly routines will be as if compiled without - `-p' and therefore won't appear in the call counts. - - On some systems, such as GNU/Linux, `-p' in fact means `-pg' and in - this case `--enable-profiling=gprof' described below should be used - instead. - -`--enable-profiling=gprof' - Build with support for `gprof', which means `-pg' added to the - `CFLAGS'. - - This provides call graph construction in addition to call counting - and program counter sampling, which makes it possible to count - calls coming from different locations. For example the number of - calls to `mpn_mul' from `mpz_mul' versus the number from - `mpf_mul'. The program counter sampling is still flat though, so - only a total time in `mpn_mul' would be accumulated, not a - separate amount for each call site. - - The x86 assembly code has support for this option, but on other - processors the assembly routines will be as if compiled without - `-pg' and therefore not be included in the call counts. - - On x86 and m68k systems `-pg' and `-fomit-frame-pointer' are - incompatible, so the latter is omitted from the default flags in - that case, which might result in poorer code generation. - - Incidentally, it should be possible to use the `gprof' program - with a plain `--enable-profiling=prof' build. But in that case - only the `gprof -p' flat profile and call counts can be expected - to be valid, not the `gprof -q' call graph. - -`--enable-profiling=instrument' - Build with the GCC option `-finstrument-functions' added to the - `CFLAGS' (*note Options for Code Generation: (gcc)Code Gen - Options.). - - This inserts special instrumenting calls at the start and end of - each function, allowing exact timing and full call graph - construction. - - This instrumenting is not normally a standard system feature and - will require support from an external library, such as - - `http://sourceforge.net/projects/fnccheck/' - - This should be included in `LIBS' during the GMP configure so that - test programs will link. For example, - - ./configure --enable-profiling=instrument LIBS=-lfc - - On a GNU system the C library provides dummy instrumenting - functions, so programs compiled with this option will link. In - this case it's only necessary to ensure the correct library is - added when linking an application. - - The x86 assembly code supports this option, but on other - processors the assembly routines will be as if compiled without - `-finstrument-functions' meaning time spent in them will - effectively be attributed to their caller. - - -File: gmp.info, Node: Autoconf, Next: Emacs, Prev: Profiling, Up: GMP Basics - -3.14 Autoconf -============= - -Autoconf based applications can easily check whether GMP is installed. -The only thing to be noted is that GMP library symbols from version 3 -onwards have prefixes like `__gmpz'. The following therefore would be -a simple test, - - AC_CHECK_LIB(gmp, __gmpz_init) - - This just uses the default `AC_CHECK_LIB' actions for found or not -found, but an application that must have GMP would want to generate an -error if not found. For example, - - AC_CHECK_LIB(gmp, __gmpz_init, , - [AC_MSG_ERROR([GNU MP not found, see http://gmplib.org/])]) - - If functions added in some particular version of GMP are required, -then one of those can be used when checking. For example `mpz_mul_si' -was added in GMP 3.1, - - AC_CHECK_LIB(gmp, __gmpz_mul_si, , - [AC_MSG_ERROR( - [GNU MP not found, or not 3.1 or up, see http://gmplib.org/])]) - - An alternative would be to test the version number in `gmp.h' using -say `AC_EGREP_CPP'. That would make it possible to test the exact -version, if some particular sub-minor release is known to be necessary. - - In general it's recommended that applications should simply demand a -new enough GMP rather than trying to provide supplements for features -not available in past versions. - - Occasionally an application will need or want to know the size of a -type at configuration or preprocessing time, not just with `sizeof' in -the code. This can be done in the normal way with `mp_limb_t' etc, but -GMP 4.0 or up is best for this, since prior versions needed certain -`-D' defines on systems using a `long long' limb. The following would -suit Autoconf 2.50 or up, - - AC_CHECK_SIZEOF(mp_limb_t, , [#include ]) - - -File: gmp.info, Node: Emacs, Prev: Autoconf, Up: GMP Basics - -3.15 Emacs -========== - - (`info-lookup-symbol') is a good way to find documentation on -C functions while editing (*note Info Documentation Lookup: (emacs)Info -Lookup.). - - The GMP manual can be included in such lookups by putting the -following in your `.emacs', - - (eval-after-load "info-look" - '(let ((mode-value (assoc 'c-mode (assoc 'symbol info-lookup-alist)))) - (setcar (nthcdr 3 mode-value) - (cons '("(gmp)Function Index" nil "^ -.* " "\\>") - (nth 3 mode-value))))) - - -File: gmp.info, Node: Reporting Bugs, Next: Integer Functions, Prev: GMP Basics, Up: Top - -4 Reporting Bugs -**************** - -If you think you have found a bug in the GMP library, please -investigate it and report it. We have made this library available to -you, and it is not too much to ask you to report the bugs you find. - - Before you report a bug, check it's not already addressed in *Note -Known Build Problems::, or perhaps *Note Notes for Particular -Systems::. You may also want to check `http://gmplib.org/' for patches -for this release. - - Please include the following in any report, - - * The GMP version number, and if pre-packaged or patched then say so. - - * A test program that makes it possible for us to reproduce the bug. - Include instructions on how to run the program. - - * A description of what is wrong. If the results are incorrect, in - what way. If you get a crash, say so. - - * If you get a crash, include a stack backtrace from the debugger if - it's informative (`where' in `gdb', or `$C' in `adb'). - - * Please do not send core dumps, executables or `strace's. - - * The configuration options you used when building GMP, if any. - - * The name of the compiler and its version. For `gcc', get the - version with `gcc -v', otherwise perhaps `what `which cc`', or - similar. - - * The output from running `uname -a'. - - * The output from running `./config.guess', and from running - `./configfsf.guess' (might be the same). - - * If the bug is related to `configure', then the compressed contents - of `config.log'. - - * If the bug is related to an `asm' file not assembling, then the - contents of `config.m4' and the offending line or lines from the - temporary `mpn/tmp-.s'. - - Please make an effort to produce a self-contained report, with -something definite that can be tested or debugged. Vague queries or -piecemeal messages are difficult to act on and don't help the -development effort. - - It is not uncommon that an observed problem is actually due to a bug -in the compiler; the GMP code tends to explore interesting corners in -compilers. - - If your bug report is good, we will do our best to help you get a -corrected version of the library; if the bug report is poor, we won't -do anything about it (except maybe ask you to send a better report). - - Send your report to: . - - If you think something in this manual is unclear, or downright -incorrect, or if the language needs to be improved, please send a note -to the same address. - - -File: gmp.info, Node: Integer Functions, Next: Rational Number Functions, Prev: Reporting Bugs, Up: Top - -5 Integer Functions -******************* - -This chapter describes the GMP functions for performing integer -arithmetic. These functions start with the prefix `mpz_'. - - GMP integers are stored in objects of type `mpz_t'. - -* Menu: - -* Initializing Integers:: -* Assigning Integers:: -* Simultaneous Integer Init & Assign:: -* Converting Integers:: -* Integer Arithmetic:: -* Integer Division:: -* Integer Exponentiation:: -* Integer Roots:: -* Number Theoretic Functions:: -* Integer Comparisons:: -* Integer Logic and Bit Fiddling:: -* I/O of Integers:: -* Integer Random Numbers:: -* Integer Import and Export:: -* Miscellaneous Integer Functions:: -* Integer Special Functions:: - - -File: gmp.info, Node: Initializing Integers, Next: Assigning Integers, Prev: Integer Functions, Up: Integer Functions - -5.1 Initialization Functions -============================ - -The functions for integer arithmetic assume that all integer objects are -initialized. You do that by calling the function `mpz_init'. For -example, - - { - mpz_t integ; - mpz_init (integ); - ... - mpz_add (integ, ...); - ... - mpz_sub (integ, ...); - - /* Unless the program is about to exit, do ... */ - mpz_clear (integ); - } - - As you can see, you can store new values any number of times, once an -object is initialized. - - -- Function: void mpz_init (mpz_t X) - Initialize X, and set its value to 0. - - -- Function: void mpz_inits (mpz_t X, ...) - Initialize a NULL-terminated list of `mpz_t' variables, and set - their values to 0. - - -- Function: void mpz_init2 (mpz_t X, mp_bitcnt_t N) - Initialize X, with space for N-bit numbers, and set its value to 0. - Calling this function instead of `mpz_init' or `mpz_inits' is never - necessary; reallocation is handled automatically by GMP when - needed. - - N is only the initial space, X will grow automatically in the - normal way, if necessary, for subsequent values stored. - `mpz_init2' makes it possible to avoid such reallocations if a - maximum size is known in advance. - - -- Function: void mpz_clear (mpz_t X) - Free the space occupied by X. Call this function for all `mpz_t' - variables when you are done with them. - - -- Function: void mpz_clears (mpz_t X, ...) - Free the space occupied by a NULL-terminated list of `mpz_t' - variables. - - -- Function: void mpz_realloc2 (mpz_t X, mp_bitcnt_t N) - Change the space allocated for X to N bits. The value in X is - preserved if it fits, or is set to 0 if not. - - Calling this function is never necessary; reallocation is handled - automatically by GMP when needed. But this function can be used - to increase the space for a variable in order to avoid repeated - automatic reallocations, or to decrease it to give memory back to - the heap. - - -File: gmp.info, Node: Assigning Integers, Next: Simultaneous Integer Init & Assign, Prev: Initializing Integers, Up: Integer Functions - -5.2 Assignment Functions -======================== - -These functions assign new values to already initialized integers -(*note Initializing Integers::). - - -- Function: void mpz_set (mpz_t ROP, mpz_t OP) - -- Function: void mpz_set_ui (mpz_t ROP, unsigned long int OP) - -- Function: void mpz_set_si (mpz_t ROP, signed long int OP) - -- Function: void mpz_set_d (mpz_t ROP, double OP) - -- Function: void mpz_set_q (mpz_t ROP, mpq_t OP) - -- Function: void mpz_set_f (mpz_t ROP, mpf_t OP) - Set the value of ROP from OP. - - `mpz_set_d', `mpz_set_q' and `mpz_set_f' truncate OP to make it an - integer. - - -- Function: int mpz_set_str (mpz_t ROP, char *STR, int BASE) - Set the value of ROP from STR, a null-terminated C string in base - BASE. White space is allowed in the string, and is simply ignored. - - The BASE may vary from 2 to 62, or if BASE is 0, then the leading - characters are used: `0x' and `0X' for hexadecimal, `0b' and `0B' - for binary, `0' for octal, or decimal otherwise. - - For bases up to 36, case is ignored; upper-case and lower-case - letters have the same value. For bases 37 to 62, upper-case - letter represent the usual 10..35 while lower-case letter - represent 36..61. - - This function returns 0 if the entire string is a valid number in - base BASE. Otherwise it returns -1. - - -- Function: void mpz_swap (mpz_t ROP1, mpz_t ROP2) - Swap the values ROP1 and ROP2 efficiently. - - -File: gmp.info, Node: Simultaneous Integer Init & Assign, Next: Converting Integers, Prev: Assigning Integers, Up: Integer Functions - -5.3 Combined Initialization and Assignment Functions -==================================================== - -For convenience, GMP provides a parallel series of initialize-and-set -functions which initialize the output and then store the value there. -These functions' names have the form `mpz_init_set...' - - Here is an example of using one: - - { - mpz_t pie; - mpz_init_set_str (pie, "3141592653589793238462643383279502884", 10); - ... - mpz_sub (pie, ...); - ... - mpz_clear (pie); - } - -Once the integer has been initialized by any of the `mpz_init_set...' -functions, it can be used as the source or destination operand for the -ordinary integer functions. Don't use an initialize-and-set function -on a variable already initialized! - - -- Function: void mpz_init_set (mpz_t ROP, mpz_t OP) - -- Function: void mpz_init_set_ui (mpz_t ROP, unsigned long int OP) - -- Function: void mpz_init_set_si (mpz_t ROP, signed long int OP) - -- Function: void mpz_init_set_d (mpz_t ROP, double OP) - Initialize ROP with limb space and set the initial numeric value - from OP. - - -- Function: int mpz_init_set_str (mpz_t ROP, char *STR, int BASE) - Initialize ROP and set its value like `mpz_set_str' (see its - documentation above for details). - - If the string is a correct base BASE number, the function returns - 0; if an error occurs it returns -1. ROP is initialized even if - an error occurs. (I.e., you have to call `mpz_clear' for it.) - - -File: gmp.info, Node: Converting Integers, Next: Integer Arithmetic, Prev: Simultaneous Integer Init & Assign, Up: Integer Functions - -5.4 Conversion Functions -======================== - -This section describes functions for converting GMP integers to -standard C types. Functions for converting _to_ GMP integers are -described in *Note Assigning Integers:: and *Note I/O of Integers::. - - -- Function: unsigned long int mpz_get_ui (mpz_t OP) - Return the value of OP as an `unsigned long'. - - If OP is too big to fit an `unsigned long' then just the least - significant bits that do fit are returned. The sign of OP is - ignored, only the absolute value is used. - - -- Function: signed long int mpz_get_si (mpz_t OP) - If OP fits into a `signed long int' return the value of OP. - Otherwise return the least significant part of OP, with the same - sign as OP. - - If OP is too big to fit in a `signed long int', the returned - result is probably not very useful. To find out if the value will - fit, use the function `mpz_fits_slong_p'. - - -- Function: double mpz_get_d (mpz_t OP) - Convert OP to a `double', truncating if necessary (ie. rounding - towards zero). - - If the exponent from the conversion is too big, the result is - system dependent. An infinity is returned where available. A - hardware overflow trap may or may not occur. - - -- Function: double mpz_get_d_2exp (signed long int *EXP, mpz_t OP) - Convert OP to a `double', truncating if necessary (ie. rounding - towards zero), and returning the exponent separately. - - The return value is in the range 0.5<=abs(D)<1 and the exponent is - stored to `*EXP'. D * 2^EXP is the (truncated) OP value. If OP - is zero, the return is 0.0 and 0 is stored to `*EXP'. - - This is similar to the standard C `frexp' function (*note - Normalization Functions: (libc)Normalization Functions.). - - -- Function: char * mpz_get_str (char *STR, int BASE, mpz_t OP) - Convert OP to a string of digits in base BASE. The base argument - may vary from 2 to 62 or from -2 to -36. - - For BASE in the range 2..36, digits and lower-case letters are - used; for -2..-36, digits and upper-case letters are used; for - 37..62, digits, upper-case letters, and lower-case letters (in - that significance order) are used. - - If STR is `NULL', the result string is allocated using the current - allocation function (*note Custom Allocation::). The block will be - `strlen(str)+1' bytes, that being exactly enough for the string and - null-terminator. - - If STR is not `NULL', it should point to a block of storage large - enough for the result, that being `mpz_sizeinbase (OP, BASE) + 2'. - The two extra bytes are for a possible minus sign, and the - null-terminator. - - A pointer to the result string is returned, being either the - allocated block, or the given STR. - - -File: gmp.info, Node: Integer Arithmetic, Next: Integer Division, Prev: Converting Integers, Up: Integer Functions - -5.5 Arithmetic Functions -======================== - - -- Function: void mpz_add (mpz_t ROP, mpz_t OP1, mpz_t OP2) - -- Function: void mpz_add_ui (mpz_t ROP, mpz_t OP1, unsigned long int - OP2) - Set ROP to OP1 + OP2. - - -- Function: void mpz_sub (mpz_t ROP, mpz_t OP1, mpz_t OP2) - -- Function: void mpz_sub_ui (mpz_t ROP, mpz_t OP1, unsigned long int - OP2) - -- Function: void mpz_ui_sub (mpz_t ROP, unsigned long int OP1, mpz_t - OP2) - Set ROP to OP1 - OP2. - - -- Function: void mpz_mul (mpz_t ROP, mpz_t OP1, mpz_t OP2) - -- Function: void mpz_mul_si (mpz_t ROP, mpz_t OP1, long int OP2) - -- Function: void mpz_mul_ui (mpz_t ROP, mpz_t OP1, unsigned long int - OP2) - Set ROP to OP1 times OP2. - - -- Function: void mpz_addmul (mpz_t ROP, mpz_t OP1, mpz_t OP2) - -- Function: void mpz_addmul_ui (mpz_t ROP, mpz_t OP1, unsigned long - int OP2) - Set ROP to ROP + OP1 times OP2. - - -- Function: void mpz_submul (mpz_t ROP, mpz_t OP1, mpz_t OP2) - -- Function: void mpz_submul_ui (mpz_t ROP, mpz_t OP1, unsigned long - int OP2) - Set ROP to ROP - OP1 times OP2. - - -- Function: void mpz_mul_2exp (mpz_t ROP, mpz_t OP1, mp_bitcnt_t OP2) - Set ROP to OP1 times 2 raised to OP2. This operation can also be - defined as a left shift by OP2 bits. - - -- Function: void mpz_neg (mpz_t ROP, mpz_t OP) - Set ROP to -OP. - - -- Function: void mpz_abs (mpz_t ROP, mpz_t OP) - Set ROP to the absolute value of OP. - - -File: gmp.info, Node: Integer Division, Next: Integer Exponentiation, Prev: Integer Arithmetic, Up: Integer Functions - -5.6 Division Functions -====================== - -Division is undefined if the divisor is zero. Passing a zero divisor -to the division or modulo functions (including the modular powering -functions `mpz_powm' and `mpz_powm_ui'), will cause an intentional -division by zero. This lets a program handle arithmetic exceptions in -these functions the same way as for normal C `int' arithmetic. - - -- Function: void mpz_cdiv_q (mpz_t Q, mpz_t N, mpz_t D) - -- Function: void mpz_cdiv_r (mpz_t R, mpz_t N, mpz_t D) - -- Function: void mpz_cdiv_qr (mpz_t Q, mpz_t R, mpz_t N, mpz_t D) - -- Function: unsigned long int mpz_cdiv_q_ui (mpz_t Q, mpz_t N, - unsigned long int D) - -- Function: unsigned long int mpz_cdiv_r_ui (mpz_t R, mpz_t N, - unsigned long int D) - -- Function: unsigned long int mpz_cdiv_qr_ui (mpz_t Q, mpz_t R, - mpz_t N, unsigned long int D) - -- Function: unsigned long int mpz_cdiv_ui (mpz_t N, - unsigned long int D) - -- Function: void mpz_cdiv_q_2exp (mpz_t Q, mpz_t N, mp_bitcnt_t B) - -- Function: void mpz_cdiv_r_2exp (mpz_t R, mpz_t N, mp_bitcnt_t B) - - -- Function: void mpz_fdiv_q (mpz_t Q, mpz_t N, mpz_t D) - -- Function: void mpz_fdiv_r (mpz_t R, mpz_t N, mpz_t D) - -- Function: void mpz_fdiv_qr (mpz_t Q, mpz_t R, mpz_t N, mpz_t D) - -- Function: unsigned long int mpz_fdiv_q_ui (mpz_t Q, mpz_t N, - unsigned long int D) - -- Function: unsigned long int mpz_fdiv_r_ui (mpz_t R, mpz_t N, - unsigned long int D) - -- Function: unsigned long int mpz_fdiv_qr_ui (mpz_t Q, mpz_t R, - mpz_t N, unsigned long int D) - -- Function: unsigned long int mpz_fdiv_ui (mpz_t N, - unsigned long int D) - -- Function: void mpz_fdiv_q_2exp (mpz_t Q, mpz_t N, mp_bitcnt_t B) - -- Function: void mpz_fdiv_r_2exp (mpz_t R, mpz_t N, mp_bitcnt_t B) - - -- Function: void mpz_tdiv_q (mpz_t Q, mpz_t N, mpz_t D) - -- Function: void mpz_tdiv_r (mpz_t R, mpz_t N, mpz_t D) - -- Function: void mpz_tdiv_qr (mpz_t Q, mpz_t R, mpz_t N, mpz_t D) - -- Function: unsigned long int mpz_tdiv_q_ui (mpz_t Q, mpz_t N, - unsigned long int D) - -- Function: unsigned long int mpz_tdiv_r_ui (mpz_t R, mpz_t N, - unsigned long int D) - -- Function: unsigned long int mpz_tdiv_qr_ui (mpz_t Q, mpz_t R, - mpz_t N, unsigned long int D) - -- Function: unsigned long int mpz_tdiv_ui (mpz_t N, - unsigned long int D) - -- Function: void mpz_tdiv_q_2exp (mpz_t Q, mpz_t N, mp_bitcnt_t B) - -- Function: void mpz_tdiv_r_2exp (mpz_t R, mpz_t N, mp_bitcnt_t B) - - Divide N by D, forming a quotient Q and/or remainder R. For the - `2exp' functions, D=2^B. The rounding is in three styles, each - suiting different applications. - - * `cdiv' rounds Q up towards +infinity, and R will have the - opposite sign to D. The `c' stands for "ceil". - - * `fdiv' rounds Q down towards -infinity, and R will have the - same sign as D. The `f' stands for "floor". - - * `tdiv' rounds Q towards zero, and R will have the same sign - as N. The `t' stands for "truncate". - - In all cases Q and R will satisfy N=Q*D+R, and R will satisfy - 0<=abs(R) 0 and that MOD is odd. - - This function is designed to take the same time and have the same - cache access patterns for any two same-size arguments, assuming - that function arguments are placed at the same position and that - the machine state is identical upon function entry. This function - is intended for cryptographic purposes, where resilience to - side-channel attacks is desired. - - -- Function: void mpz_pow_ui (mpz_t ROP, mpz_t BASE, unsigned long int - EXP) - -- Function: void mpz_ui_pow_ui (mpz_t ROP, unsigned long int BASE, - unsigned long int EXP) - Set ROP to BASE raised to EXP. The case 0^0 yields 1. - - -File: gmp.info, Node: Integer Roots, Next: Number Theoretic Functions, Prev: Integer Exponentiation, Up: Integer Functions - -5.8 Root Extraction Functions -============================= - - -- Function: int mpz_root (mpz_t ROP, mpz_t OP, unsigned long int N) - Set ROP to the truncated integer part of the Nth root of OP. - Return non-zero if the computation was exact, i.e., if OP is ROP - to the Nth power. - - -- Function: void mpz_rootrem (mpz_t ROOT, mpz_t REM, mpz_t U, - unsigned long int N) - Set ROOT to the truncated integer part of the Nth root of U. Set - REM to the remainder, U-ROOT**N. - - -- Function: void mpz_sqrt (mpz_t ROP, mpz_t OP) - Set ROP to the truncated integer part of the square root of OP. - - -- Function: void mpz_sqrtrem (mpz_t ROP1, mpz_t ROP2, mpz_t OP) - Set ROP1 to the truncated integer part of the square root of OP, - like `mpz_sqrt'. Set ROP2 to the remainder OP-ROP1*ROP1, which - will be zero if OP is a perfect square. - - If ROP1 and ROP2 are the same variable, the results are undefined. - - -- Function: int mpz_perfect_power_p (mpz_t OP) - Return non-zero if OP is a perfect power, i.e., if there exist - integers A and B, with B>1, such that OP equals A raised to the - power B. - - Under this definition both 0 and 1 are considered to be perfect - powers. Negative values of OP are accepted, but of course can - only be odd perfect powers. - - -- Function: int mpz_perfect_square_p (mpz_t OP) - Return non-zero if OP is a perfect square, i.e., if the square - root of OP is an integer. Under this definition both 0 and 1 are - considered to be perfect squares. - - -File: gmp.info, Node: Number Theoretic Functions, Next: Integer Comparisons, Prev: Integer Roots, Up: Integer Functions - -5.9 Number Theoretic Functions -============================== - - -- Function: int mpz_probab_prime_p (mpz_t N, int REPS) - Determine whether N is prime. Return 2 if N is definitely prime, - return 1 if N is probably prime (without being certain), or return - 0 if N is definitely composite. - - This function does some trial divisions, then some Miller-Rabin - probabilistic primality tests. REPS controls how many such tests - are done, 5 to 10 is a reasonable number, more will reduce the - chances of a composite being returned as "probably prime". - - Miller-Rabin and similar tests can be more properly called - compositeness tests. Numbers which fail are known to be composite - but those which pass might be prime or might be composite. Only a - few composites pass, hence those which pass are considered - probably prime. - - -- Function: void mpz_nextprime (mpz_t ROP, mpz_t OP) - Set ROP to the next prime greater than OP. - - This function uses a probabilistic algorithm to identify primes. - For practical purposes it's adequate, the chance of a composite - passing will be extremely small. - - -- Function: void mpz_gcd (mpz_t ROP, mpz_t OP1, mpz_t OP2) - Set ROP to the greatest common divisor of OP1 and OP2. The result - is always positive even if one or both input operands are negative. - - -- Function: unsigned long int mpz_gcd_ui (mpz_t ROP, mpz_t OP1, - unsigned long int OP2) - Compute the greatest common divisor of OP1 and OP2. If ROP is not - `NULL', store the result there. - - If the result is small enough to fit in an `unsigned long int', it - is returned. If the result does not fit, 0 is returned, and the - result is equal to the argument OP1. Note that the result will - always fit if OP2 is non-zero. - - -- Function: void mpz_gcdext (mpz_t G, mpz_t S, mpz_t T, mpz_t A, - mpz_t B) - Set G to the greatest common divisor of A and B, and in addition - set S and T to coefficients satisfying A*S + B*T = G. The value - in G is always positive, even if one or both of A and B are - negative. The values in S and T are chosen such that abs(S) <= - abs(B) and abs(T) <= abs(A). - - If T is `NULL' then that value is not computed. - - -- Function: void mpz_lcm (mpz_t ROP, mpz_t OP1, mpz_t OP2) - -- Function: void mpz_lcm_ui (mpz_t ROP, mpz_t OP1, unsigned long OP2) - Set ROP to the least common multiple of OP1 and OP2. ROP is - always positive, irrespective of the signs of OP1 and OP2. ROP - will be zero if either OP1 or OP2 is zero. - - -- Function: int mpz_invert (mpz_t ROP, mpz_t OP1, mpz_t OP2) - Compute the inverse of OP1 modulo OP2 and put the result in ROP. - If the inverse exists, the return value is non-zero and ROP will - satisfy 0 <= ROP < OP2. If an inverse doesn't exist the return - value is zero and ROP is undefined. - - -- Function: int mpz_jacobi (mpz_t A, mpz_t B) - Calculate the Jacobi symbol (A/B). This is defined only for B odd. - - -- Function: int mpz_legendre (mpz_t A, mpz_t P) - Calculate the Legendre symbol (A/P). This is defined only for P - an odd positive prime, and for such P it's identical to the Jacobi - symbol. - - -- Function: int mpz_kronecker (mpz_t A, mpz_t B) - -- Function: int mpz_kronecker_si (mpz_t A, long B) - -- Function: int mpz_kronecker_ui (mpz_t A, unsigned long B) - -- Function: int mpz_si_kronecker (long A, mpz_t B) - -- Function: int mpz_ui_kronecker (unsigned long A, mpz_t B) - Calculate the Jacobi symbol (A/B) with the Kronecker extension - (a/2)=(2/a) when a odd, or (a/2)=0 when a even. - - When B is odd the Jacobi symbol and Kronecker symbol are - identical, so `mpz_kronecker_ui' etc can be used for mixed - precision Jacobi symbols too. - - For more information see Henri Cohen section 1.4.2 (*note - References::), or any number theory textbook. See also the - example program `demos/qcn.c' which uses `mpz_kronecker_ui'. - - -- Function: mp_bitcnt_t mpz_remove (mpz_t ROP, mpz_t OP, mpz_t F) - Remove all occurrences of the factor F from OP and store the - result in ROP. The return value is how many such occurrences were - removed. - - -- Function: void mpz_fac_ui (mpz_t ROP, unsigned long int OP) - Set ROP to OP!, the factorial of OP. - - -- Function: void mpz_bin_ui (mpz_t ROP, mpz_t N, unsigned long int K) - -- Function: void mpz_bin_uiui (mpz_t ROP, unsigned long int N, - unsigned long int K) - Compute the binomial coefficient N over K and store the result in - ROP. Negative values of N are supported by `mpz_bin_ui', using - the identity bin(-n,k) = (-1)^k * bin(n+k-1,k), see Knuth volume 1 - section 1.2.6 part G. - - -- Function: void mpz_fib_ui (mpz_t FN, unsigned long int N) - -- Function: void mpz_fib2_ui (mpz_t FN, mpz_t FNSUB1, unsigned long - int N) - `mpz_fib_ui' sets FN to to F[n], the N'th Fibonacci number. - `mpz_fib2_ui' sets FN to F[n], and FNSUB1 to F[n-1]. - - These functions are designed for calculating isolated Fibonacci - numbers. When a sequence of values is wanted it's best to start - with `mpz_fib2_ui' and iterate the defining F[n+1]=F[n]+F[n-1] or - similar. - - -- Function: void mpz_lucnum_ui (mpz_t LN, unsigned long int N) - -- Function: void mpz_lucnum2_ui (mpz_t LN, mpz_t LNSUB1, unsigned - long int N) - `mpz_lucnum_ui' sets LN to to L[n], the N'th Lucas number. - `mpz_lucnum2_ui' sets LN to L[n], and LNSUB1 to L[n-1]. - - These functions are designed for calculating isolated Lucas - numbers. When a sequence of values is wanted it's best to start - with `mpz_lucnum2_ui' and iterate the defining L[n+1]=L[n]+L[n-1] - or similar. - - The Fibonacci numbers and Lucas numbers are related sequences, so - it's never necessary to call both `mpz_fib2_ui' and - `mpz_lucnum2_ui'. The formulas for going from Fibonacci to Lucas - can be found in *Note Lucas Numbers Algorithm::, the reverse is - straightforward too. - - -File: gmp.info, Node: Integer Comparisons, Next: Integer Logic and Bit Fiddling, Prev: Number Theoretic Functions, Up: Integer Functions - -5.10 Comparison Functions -========================= - - -- Function: int mpz_cmp (mpz_t OP1, mpz_t OP2) - -- Function: int mpz_cmp_d (mpz_t OP1, double OP2) - -- Macro: int mpz_cmp_si (mpz_t OP1, signed long int OP2) - -- Macro: int mpz_cmp_ui (mpz_t OP1, unsigned long int OP2) - Compare OP1 and OP2. Return a positive value if OP1 > OP2, zero - if OP1 = OP2, or a negative value if OP1 < OP2. - - `mpz_cmp_ui' and `mpz_cmp_si' are macros and will evaluate their - arguments more than once. `mpz_cmp_d' can be called with an - infinity, but results are undefined for a NaN. - - -- Function: int mpz_cmpabs (mpz_t OP1, mpz_t OP2) - -- Function: int mpz_cmpabs_d (mpz_t OP1, double OP2) - -- Function: int mpz_cmpabs_ui (mpz_t OP1, unsigned long int OP2) - Compare the absolute values of OP1 and OP2. Return a positive - value if abs(OP1) > abs(OP2), zero if abs(OP1) = abs(OP2), or a - negative value if abs(OP1) < abs(OP2). - - `mpz_cmpabs_d' can be called with an infinity, but results are - undefined for a NaN. - - -- Macro: int mpz_sgn (mpz_t OP) - Return +1 if OP > 0, 0 if OP = 0, and -1 if OP < 0. - - This function is actually implemented as a macro. It evaluates - its argument multiple times. - - -File: gmp.info, Node: Integer Logic and Bit Fiddling, Next: I/O of Integers, Prev: Integer Comparisons, Up: Integer Functions - -5.11 Logical and Bit Manipulation Functions -=========================================== - -These functions behave as if twos complement arithmetic were used -(although sign-magnitude is the actual implementation). The least -significant bit is number 0. - - -- Function: void mpz_and (mpz_t ROP, mpz_t OP1, mpz_t OP2) - Set ROP to OP1 bitwise-and OP2. - - -- Function: void mpz_ior (mpz_t ROP, mpz_t OP1, mpz_t OP2) - Set ROP to OP1 bitwise inclusive-or OP2. - - -- Function: void mpz_xor (mpz_t ROP, mpz_t OP1, mpz_t OP2) - Set ROP to OP1 bitwise exclusive-or OP2. - - -- Function: void mpz_com (mpz_t ROP, mpz_t OP) - Set ROP to the one's complement of OP. - - -- Function: mp_bitcnt_t mpz_popcount (mpz_t OP) - If OP>=0, return the population count of OP, which is the number - of 1 bits in the binary representation. If OP<0, the number of 1s - is infinite, and the return value is the largest possible - `mp_bitcnt_t'. - - -- Function: mp_bitcnt_t mpz_hamdist (mpz_t OP1, mpz_t OP2) - If OP1 and OP2 are both >=0 or both <0, return the hamming - distance between the two operands, which is the number of bit - positions where OP1 and OP2 have different bit values. If one - operand is >=0 and the other <0 then the number of bits different - is infinite, and the return value is the largest possible - `mp_bitcnt_t'. - - -- Function: mp_bitcnt_t mpz_scan0 (mpz_t OP, mp_bitcnt_t STARTING_BIT) - -- Function: mp_bitcnt_t mpz_scan1 (mpz_t OP, mp_bitcnt_t STARTING_BIT) - Scan OP, starting from bit STARTING_BIT, towards more significant - bits, until the first 0 or 1 bit (respectively) is found. Return - the index of the found bit. - - If the bit at STARTING_BIT is already what's sought, then - STARTING_BIT is returned. - - If there's no bit found, then the largest possible `mp_bitcnt_t' is - returned. This will happen in `mpz_scan0' past the end of a - negative number, or `mpz_scan1' past the end of a nonnegative - number. - - -- Function: void mpz_setbit (mpz_t ROP, mp_bitcnt_t BIT_INDEX) - Set bit BIT_INDEX in ROP. - - -- Function: void mpz_clrbit (mpz_t ROP, mp_bitcnt_t BIT_INDEX) - Clear bit BIT_INDEX in ROP. - - -- Function: void mpz_combit (mpz_t ROP, mp_bitcnt_t BIT_INDEX) - Complement bit BIT_INDEX in ROP. - - -- Function: int mpz_tstbit (mpz_t OP, mp_bitcnt_t BIT_INDEX) - Test bit BIT_INDEX in OP and return 0 or 1 accordingly. - - -File: gmp.info, Node: I/O of Integers, Next: Integer Random Numbers, Prev: Integer Logic and Bit Fiddling, Up: Integer Functions - -5.12 Input and Output Functions -=============================== - -Functions that perform input from a stdio stream, and functions that -output to a stdio stream. Passing a `NULL' pointer for a STREAM -argument to any of these functions will make them read from `stdin' and -write to `stdout', respectively. - - When using any of these functions, it is a good idea to include -`stdio.h' before `gmp.h', since that will allow `gmp.h' to define -prototypes for these functions. - - -- Function: size_t mpz_out_str (FILE *STREAM, int BASE, mpz_t OP) - Output OP on stdio stream STREAM, as a string of digits in base - BASE. The base argument may vary from 2 to 62 or from -2 to -36. - - For BASE in the range 2..36, digits and lower-case letters are - used; for -2..-36, digits and upper-case letters are used; for - 37..62, digits, upper-case letters, and lower-case letters (in - that significance order) are used. - - Return the number of bytes written, or if an error occurred, - return 0. - - -- Function: size_t mpz_inp_str (mpz_t ROP, FILE *STREAM, int BASE) - Input a possibly white-space preceded string in base BASE from - stdio stream STREAM, and put the read integer in ROP. - - The BASE may vary from 2 to 62, or if BASE is 0, then the leading - characters are used: `0x' and `0X' for hexadecimal, `0b' and `0B' - for binary, `0' for octal, or decimal otherwise. - - For bases up to 36, case is ignored; upper-case and lower-case - letters have the same value. For bases 37 to 62, upper-case - letter represent the usual 10..35 while lower-case letter - represent 36..61. - - Return the number of bytes read, or if an error occurred, return 0. - - -- Function: size_t mpz_out_raw (FILE *STREAM, mpz_t OP) - Output OP on stdio stream STREAM, in raw binary format. The - integer is written in a portable format, with 4 bytes of size - information, and that many bytes of limbs. Both the size and the - limbs are written in decreasing significance order (i.e., in - big-endian). - - The output can be read with `mpz_inp_raw'. - - Return the number of bytes written, or if an error occurred, - return 0. - - The output of this can not be read by `mpz_inp_raw' from GMP 1, - because of changes necessary for compatibility between 32-bit and - 64-bit machines. - - -- Function: size_t mpz_inp_raw (mpz_t ROP, FILE *STREAM) - Input from stdio stream STREAM in the format written by - `mpz_out_raw', and put the result in ROP. Return the number of - bytes read, or if an error occurred, return 0. - - This routine can read the output from `mpz_out_raw' also from GMP - 1, in spite of changes necessary for compatibility between 32-bit - and 64-bit machines. - - -File: gmp.info, Node: Integer Random Numbers, Next: Integer Import and Export, Prev: I/O of Integers, Up: Integer Functions - -5.13 Random Number Functions -============================ - -The random number functions of GMP come in two groups; older function -that rely on a global state, and newer functions that accept a state -parameter that is read and modified. Please see the *Note Random -Number Functions:: for more information on how to use and not to use -random number functions. - - -- Function: void mpz_urandomb (mpz_t ROP, gmp_randstate_t STATE, - mp_bitcnt_t N) - Generate a uniformly distributed random integer in the range 0 to - 2^N-1, inclusive. - - The variable STATE must be initialized by calling one of the - `gmp_randinit' functions (*Note Random State Initialization::) - before invoking this function. - - -- Function: void mpz_urandomm (mpz_t ROP, gmp_randstate_t STATE, - mpz_t N) - Generate a uniform random integer in the range 0 to N-1, inclusive. - - The variable STATE must be initialized by calling one of the - `gmp_randinit' functions (*Note Random State Initialization::) - before invoking this function. - - -- Function: void mpz_rrandomb (mpz_t ROP, gmp_randstate_t STATE, - mp_bitcnt_t N) - Generate a random integer with long strings of zeros and ones in - the binary representation. Useful for testing functions and - algorithms, since this kind of random numbers have proven to be - more likely to trigger corner-case bugs. The random number will - be in the range 0 to 2^N-1, inclusive. - - The variable STATE must be initialized by calling one of the - `gmp_randinit' functions (*Note Random State Initialization::) - before invoking this function. - - -- Function: void mpz_random (mpz_t ROP, mp_size_t MAX_SIZE) - Generate a random integer of at most MAX_SIZE limbs. The generated - random number doesn't satisfy any particular requirements of - randomness. Negative random numbers are generated when MAX_SIZE - is negative. - - This function is obsolete. Use `mpz_urandomb' or `mpz_urandomm' - instead. - - -- Function: void mpz_random2 (mpz_t ROP, mp_size_t MAX_SIZE) - Generate a random integer of at most MAX_SIZE limbs, with long - strings of zeros and ones in the binary representation. Useful - for testing functions and algorithms, since this kind of random - numbers have proven to be more likely to trigger corner-case bugs. - Negative random numbers are generated when MAX_SIZE is negative. - - This function is obsolete. Use `mpz_rrandomb' instead. - - -File: gmp.info, Node: Integer Import and Export, Next: Miscellaneous Integer Functions, Prev: Integer Random Numbers, Up: Integer Functions - -5.14 Integer Import and Export -============================== - -`mpz_t' variables can be converted to and from arbitrary words of binary -data with the following functions. - - -- Function: void mpz_import (mpz_t ROP, size_t COUNT, int ORDER, - size_t SIZE, int ENDIAN, size_t NAILS, const void *OP) - Set ROP from an array of word data at OP. - - The parameters specify the format of the data. COUNT many words - are read, each SIZE bytes. ORDER can be 1 for most significant - word first or -1 for least significant first. Within each word - ENDIAN can be 1 for most significant byte first, -1 for least - significant first, or 0 for the native endianness of the host CPU. - The most significant NAILS bits of each word are skipped, this - can be 0 to use the full words. - - There is no sign taken from the data, ROP will simply be a positive - integer. An application can handle any sign itself, and apply it - for instance with `mpz_neg'. - - There are no data alignment restrictions on OP, any address is - allowed. - - Here's an example converting an array of `unsigned long' data, most - significant element first, and host byte order within each value. - - unsigned long a[20]; - /* Initialize Z and A */ - mpz_import (z, 20, 1, sizeof(a[0]), 0, 0, a); - - This example assumes the full `sizeof' bytes are used for data in - the given type, which is usually true, and certainly true for - `unsigned long' everywhere we know of. However on Cray vector - systems it may be noted that `short' and `int' are always stored - in 8 bytes (and with `sizeof' indicating that) but use only 32 or - 46 bits. The NAILS feature can account for this, by passing for - instance `8*sizeof(int)-INT_BIT'. - - -- Function: void * mpz_export (void *ROP, size_t *COUNTP, int ORDER, - size_t SIZE, int ENDIAN, size_t NAILS, mpz_t OP) - Fill ROP with word data from OP. - - The parameters specify the format of the data produced. Each word - will be SIZE bytes and ORDER can be 1 for most significant word - first or -1 for least significant first. Within each word ENDIAN - can be 1 for most significant byte first, -1 for least significant - first, or 0 for the native endianness of the host CPU. The most - significant NAILS bits of each word are unused and set to zero, - this can be 0 to produce full words. - - The number of words produced is written to `*COUNTP', or COUNTP - can be `NULL' to discard the count. ROP must have enough space - for the data, or if ROP is `NULL' then a result array of the - necessary size is allocated using the current GMP allocation - function (*note Custom Allocation::). In either case the return - value is the destination used, either ROP or the allocated block. - - If OP is non-zero then the most significant word produced will be - non-zero. If OP is zero then the count returned will be zero and - nothing written to ROP. If ROP is `NULL' in this case, no block - is allocated, just `NULL' is returned. - - The sign of OP is ignored, just the absolute value is exported. An - application can use `mpz_sgn' to get the sign and handle it as - desired. (*note Integer Comparisons::) - - There are no data alignment restrictions on ROP, any address is - allowed. - - When an application is allocating space itself the required size - can be determined with a calculation like the following. Since - `mpz_sizeinbase' always returns at least 1, `count' here will be - at least one, which avoids any portability problems with - `malloc(0)', though if `z' is zero no space at all is actually - needed (or written). - - numb = 8*size - nail; - count = (mpz_sizeinbase (z, 2) + numb-1) / numb; - p = malloc (count * size); - - -File: gmp.info, Node: Miscellaneous Integer Functions, Next: Integer Special Functions, Prev: Integer Import and Export, Up: Integer Functions - -5.15 Miscellaneous Functions -============================ - - -- Function: int mpz_fits_ulong_p (mpz_t OP) - -- Function: int mpz_fits_slong_p (mpz_t OP) - -- Function: int mpz_fits_uint_p (mpz_t OP) - -- Function: int mpz_fits_sint_p (mpz_t OP) - -- Function: int mpz_fits_ushort_p (mpz_t OP) - -- Function: int mpz_fits_sshort_p (mpz_t OP) - Return non-zero iff the value of OP fits in an `unsigned long int', - `signed long int', `unsigned int', `signed int', `unsigned short - int', or `signed short int', respectively. Otherwise, return zero. - - -- Macro: int mpz_odd_p (mpz_t OP) - -- Macro: int mpz_even_p (mpz_t OP) - Determine whether OP is odd or even, respectively. Return - non-zero if yes, zero if no. These macros evaluate their argument - more than once. - - -- Function: size_t mpz_sizeinbase (mpz_t OP, int BASE) - Return the size of OP measured in number of digits in the given - BASE. BASE can vary from 2 to 62. The sign of OP is ignored, - just the absolute value is used. The result will be either exact - or 1 too big. If BASE is a power of 2, the result is always - exact. If OP is zero the return value is always 1. - - This function can be used to determine the space required when - converting OP to a string. The right amount of allocation is - normally two more than the value returned by `mpz_sizeinbase', one - extra for a minus sign and one for the null-terminator. - - It will be noted that `mpz_sizeinbase(OP,2)' can be used to locate - the most significant 1 bit in OP, counting from 1. (Unlike the - bitwise functions which start from 0, *Note Logical and Bit - Manipulation Functions: Integer Logic and Bit Fiddling.) - - -File: gmp.info, Node: Integer Special Functions, Prev: Miscellaneous Integer Functions, Up: Integer Functions - -5.16 Special Functions -====================== - -The functions in this section are for various special purposes. Most -applications will not need them. - - -- Function: void mpz_array_init (mpz_t INTEGER_ARRAY, mp_size_t - ARRAY_SIZE, mp_size_t FIXED_NUM_BITS) - This is a special type of initialization. *Fixed* space of - FIXED_NUM_BITS is allocated to each of the ARRAY_SIZE integers in - INTEGER_ARRAY. There is no way to free the storage allocated by - this function. Don't call `mpz_clear'! - - The INTEGER_ARRAY parameter is the first `mpz_t' in the array. For - example, - - mpz_t arr[20000]; - mpz_array_init (arr[0], 20000, 512); - - This function is only intended for programs that create a large - number of integers and need to reduce memory usage by avoiding the - overheads of allocating and reallocating lots of small blocks. In - normal programs this function is not recommended. - - The space allocated to each integer by this function will not be - automatically increased, unlike the normal `mpz_init', so an - application must ensure it is sufficient for any value stored. - The following space requirements apply to various routines, - - * `mpz_abs', `mpz_neg', `mpz_set', `mpz_set_si' and - `mpz_set_ui' need room for the value they store. - - * `mpz_add', `mpz_add_ui', `mpz_sub' and `mpz_sub_ui' need room - for the larger of the two operands, plus an extra - `mp_bits_per_limb'. - - * `mpz_mul', `mpz_mul_ui' and `mpz_mul_ui' need room for the sum - of the number of bits in their operands, but each rounded up - to a multiple of `mp_bits_per_limb'. - - * `mpz_swap' can be used between two array variables, but not - between an array and a normal variable. - - For other functions, or if in doubt, the suggestion is to - calculate in a regular `mpz_init' variable and copy the result to - an array variable with `mpz_set'. - - -- Function: void * _mpz_realloc (mpz_t INTEGER, mp_size_t NEW_ALLOC) - Change the space for INTEGER to NEW_ALLOC limbs. The value in - INTEGER is preserved if it fits, or is set to 0 if not. The return - value is not useful to applications and should be ignored. - - `mpz_realloc2' is the preferred way to accomplish allocation - changes like this. `mpz_realloc2' and `_mpz_realloc' are the same - except that `_mpz_realloc' takes its size in limbs. - - -- Function: mp_limb_t mpz_getlimbn (mpz_t OP, mp_size_t N) - Return limb number N from OP. The sign of OP is ignored, just the - absolute value is used. The least significant limb is number 0. - - `mpz_size' can be used to find how many limbs make up OP. - `mpz_getlimbn' returns zero if N is outside the range 0 to - `mpz_size(OP)-1'. - - -- Function: size_t mpz_size (mpz_t OP) - Return the size of OP measured in number of limbs. If OP is zero, - the returned value will be zero. - - -File: gmp.info, Node: Rational Number Functions, Next: Floating-point Functions, Prev: Integer Functions, Up: Top - -6 Rational Number Functions -*************************** - -This chapter describes the GMP functions for performing arithmetic on -rational numbers. These functions start with the prefix `mpq_'. - - Rational numbers are stored in objects of type `mpq_t'. - - All rational arithmetic functions assume operands have a canonical -form, and canonicalize their result. The canonical from means that the -denominator and the numerator have no common factors, and that the -denominator is positive. Zero has the unique representation 0/1. - - Pure assignment functions do not canonicalize the assigned variable. -It is the responsibility of the user to canonicalize the assigned -variable before any arithmetic operations are performed on that -variable. - - -- Function: void mpq_canonicalize (mpq_t OP) - Remove any factors that are common to the numerator and - denominator of OP, and make the denominator positive. - -* Menu: - -* Initializing Rationals:: -* Rational Conversions:: -* Rational Arithmetic:: -* Comparing Rationals:: -* Applying Integer Functions:: -* I/O of Rationals:: - - -File: gmp.info, Node: Initializing Rationals, Next: Rational Conversions, Prev: Rational Number Functions, Up: Rational Number Functions - -6.1 Initialization and Assignment Functions -=========================================== - - -- Function: void mpq_init (mpq_t X) - Initialize X and set it to 0/1. Each variable should normally - only be initialized once, or at least cleared out (using the - function `mpq_clear') between each initialization. - - -- Function: void mpq_inits (mpq_t X, ...) - Initialize a NULL-terminated list of `mpq_t' variables, and set - their values to 0/1. - - -- Function: void mpq_clear (mpq_t X) - Free the space occupied by X. Make sure to call this function for - all `mpq_t' variables when you are done with them. - - -- Function: void mpq_clears (mpq_t X, ...) - Free the space occupied by a NULL-terminated list of `mpq_t' - variables. - - -- Function: void mpq_set (mpq_t ROP, mpq_t OP) - -- Function: void mpq_set_z (mpq_t ROP, mpz_t OP) - Assign ROP from OP. - - -- Function: void mpq_set_ui (mpq_t ROP, unsigned long int OP1, - unsigned long int OP2) - -- Function: void mpq_set_si (mpq_t ROP, signed long int OP1, unsigned - long int OP2) - Set the value of ROP to OP1/OP2. Note that if OP1 and OP2 have - common factors, ROP has to be passed to `mpq_canonicalize' before - any operations are performed on ROP. - - -- Function: int mpq_set_str (mpq_t ROP, char *STR, int BASE) - Set ROP from a null-terminated string STR in the given BASE. - - The string can be an integer like "41" or a fraction like - "41/152". The fraction must be in canonical form (*note Rational - Number Functions::), or if not then `mpq_canonicalize' must be - called. - - The numerator and optional denominator are parsed the same as in - `mpz_set_str' (*note Assigning Integers::). White space is - allowed in the string, and is simply ignored. The BASE can vary - from 2 to 62, or if BASE is 0 then the leading characters are - used: `0x' or `0X' for hex, `0b' or `0B' for binary, `0' for - octal, or decimal otherwise. Note that this is done separately - for the numerator and denominator, so for instance `0xEF/100' is - 239/100, whereas `0xEF/0x100' is 239/256. - - The return value is 0 if the entire string is a valid number, or - -1 if not. - - -- Function: void mpq_swap (mpq_t ROP1, mpq_t ROP2) - Swap the values ROP1 and ROP2 efficiently. - - -File: gmp.info, Node: Rational Conversions, Next: Rational Arithmetic, Prev: Initializing Rationals, Up: Rational Number Functions - -6.2 Conversion Functions -======================== - - -- Function: double mpq_get_d (mpq_t OP) - Convert OP to a `double', truncating if necessary (ie. rounding - towards zero). - - If the exponent from the conversion is too big or too small to fit - a `double' then the result is system dependent. For too big an - infinity is returned when available. For too small 0.0 is - normally returned. Hardware overflow, underflow and denorm traps - may or may not occur. - - -- Function: void mpq_set_d (mpq_t ROP, double OP) - -- Function: void mpq_set_f (mpq_t ROP, mpf_t OP) - Set ROP to the value of OP. There is no rounding, this conversion - is exact. - - -- Function: char * mpq_get_str (char *STR, int BASE, mpq_t OP) - Convert OP to a string of digits in base BASE. The base may vary - from 2 to 36. The string will be of the form `num/den', or if the - denominator is 1 then just `num'. - - If STR is `NULL', the result string is allocated using the current - allocation function (*note Custom Allocation::). The block will be - `strlen(str)+1' bytes, that being exactly enough for the string and - null-terminator. - - If STR is not `NULL', it should point to a block of storage large - enough for the result, that being - - mpz_sizeinbase (mpq_numref(OP), BASE) - + mpz_sizeinbase (mpq_denref(OP), BASE) + 3 - - The three extra bytes are for a possible minus sign, possible - slash, and the null-terminator. - - A pointer to the result string is returned, being either the - allocated block, or the given STR. - - -File: gmp.info, Node: Rational Arithmetic, Next: Comparing Rationals, Prev: Rational Conversions, Up: Rational Number Functions - -6.3 Arithmetic Functions -======================== - - -- Function: void mpq_add (mpq_t SUM, mpq_t ADDEND1, mpq_t ADDEND2) - Set SUM to ADDEND1 + ADDEND2. - - -- Function: void mpq_sub (mpq_t DIFFERENCE, mpq_t MINUEND, mpq_t - SUBTRAHEND) - Set DIFFERENCE to MINUEND - SUBTRAHEND. - - -- Function: void mpq_mul (mpq_t PRODUCT, mpq_t MULTIPLIER, mpq_t - MULTIPLICAND) - Set PRODUCT to MULTIPLIER times MULTIPLICAND. - - -- Function: void mpq_mul_2exp (mpq_t ROP, mpq_t OP1, mp_bitcnt_t OP2) - Set ROP to OP1 times 2 raised to OP2. - - -- Function: void mpq_div (mpq_t QUOTIENT, mpq_t DIVIDEND, mpq_t - DIVISOR) - Set QUOTIENT to DIVIDEND/DIVISOR. - - -- Function: void mpq_div_2exp (mpq_t ROP, mpq_t OP1, mp_bitcnt_t OP2) - Set ROP to OP1 divided by 2 raised to OP2. - - -- Function: void mpq_neg (mpq_t NEGATED_OPERAND, mpq_t OPERAND) - Set NEGATED_OPERAND to -OPERAND. - - -- Function: void mpq_abs (mpq_t ROP, mpq_t OP) - Set ROP to the absolute value of OP. - - -- Function: void mpq_inv (mpq_t INVERTED_NUMBER, mpq_t NUMBER) - Set INVERTED_NUMBER to 1/NUMBER. If the new denominator is zero, - this routine will divide by zero. - - -File: gmp.info, Node: Comparing Rationals, Next: Applying Integer Functions, Prev: Rational Arithmetic, Up: Rational Number Functions - -6.4 Comparison Functions -======================== - - -- Function: int mpq_cmp (mpq_t OP1, mpq_t OP2) - Compare OP1 and OP2. Return a positive value if OP1 > OP2, zero - if OP1 = OP2, and a negative value if OP1 < OP2. - - To determine if two rationals are equal, `mpq_equal' is faster than - `mpq_cmp'. - - -- Macro: int mpq_cmp_ui (mpq_t OP1, unsigned long int NUM2, unsigned - long int DEN2) - -- Macro: int mpq_cmp_si (mpq_t OP1, long int NUM2, unsigned long int - DEN2) - Compare OP1 and NUM2/DEN2. Return a positive value if OP1 > - NUM2/DEN2, zero if OP1 = NUM2/DEN2, and a negative value if OP1 < - NUM2/DEN2. - - NUM2 and DEN2 are allowed to have common factors. - - These functions are implemented as a macros and evaluate their - arguments multiple times. - - -- Macro: int mpq_sgn (mpq_t OP) - Return +1 if OP > 0, 0 if OP = 0, and -1 if OP < 0. - - This function is actually implemented as a macro. It evaluates its - arguments multiple times. - - -- Function: int mpq_equal (mpq_t OP1, mpq_t OP2) - Return non-zero if OP1 and OP2 are equal, zero if they are - non-equal. Although `mpq_cmp' can be used for the same purpose, - this function is much faster. - - -File: gmp.info, Node: Applying Integer Functions, Next: I/O of Rationals, Prev: Comparing Rationals, Up: Rational Number Functions - -6.5 Applying Integer Functions to Rationals -=========================================== - -The set of `mpq' functions is quite small. In particular, there are few -functions for either input or output. The following functions give -direct access to the numerator and denominator of an `mpq_t'. - - Note that if an assignment to the numerator and/or denominator could -take an `mpq_t' out of the canonical form described at the start of -this chapter (*note Rational Number Functions::) then -`mpq_canonicalize' must be called before any other `mpq' functions are -applied to that `mpq_t'. - - -- Macro: mpz_t mpq_numref (mpq_t OP) - -- Macro: mpz_t mpq_denref (mpq_t OP) - Return a reference to the numerator and denominator of OP, - respectively. The `mpz' functions can be used on the result of - these macros. - - -- Function: void mpq_get_num (mpz_t NUMERATOR, mpq_t RATIONAL) - -- Function: void mpq_get_den (mpz_t DENOMINATOR, mpq_t RATIONAL) - -- Function: void mpq_set_num (mpq_t RATIONAL, mpz_t NUMERATOR) - -- Function: void mpq_set_den (mpq_t RATIONAL, mpz_t DENOMINATOR) - Get or set the numerator or denominator of a rational. These - functions are equivalent to calling `mpz_set' with an appropriate - `mpq_numref' or `mpq_denref'. Direct use of `mpq_numref' or - `mpq_denref' is recommended instead of these functions. - - -File: gmp.info, Node: I/O of Rationals, Prev: Applying Integer Functions, Up: Rational Number Functions - -6.6 Input and Output Functions -============================== - -When using any of these functions, it's a good idea to include `stdio.h' -before `gmp.h', since that will allow `gmp.h' to define prototypes for -these functions. - - Passing a `NULL' pointer for a STREAM argument to any of these -functions will make them read from `stdin' and write to `stdout', -respectively. - - -- Function: size_t mpq_out_str (FILE *STREAM, int BASE, mpq_t OP) - Output OP on stdio stream STREAM, as a string of digits in base - BASE. The base may vary from 2 to 36. Output is in the form - `num/den' or if the denominator is 1 then just `num'. - - Return the number of bytes written, or if an error occurred, - return 0. - - -- Function: size_t mpq_inp_str (mpq_t ROP, FILE *STREAM, int BASE) - Read a string of digits from STREAM and convert them to a rational - in ROP. Any initial white-space characters are read and - discarded. Return the number of characters read (including white - space), or 0 if a rational could not be read. - - The input can be a fraction like `17/63' or just an integer like - `123'. Reading stops at the first character not in this form, and - white space is not permitted within the string. If the input - might not be in canonical form, then `mpq_canonicalize' must be - called (*note Rational Number Functions::). - - The BASE can be between 2 and 36, or can be 0 in which case the - leading characters of the string determine the base, `0x' or `0X' - for hexadecimal, `0' for octal, or decimal otherwise. The leading - characters are examined separately for the numerator and - denominator of a fraction, so for instance `0x10/11' is 16/11, - whereas `0x10/0x11' is 16/17. - - -File: gmp.info, Node: Floating-point Functions, Next: Low-level Functions, Prev: Rational Number Functions, Up: Top - -7 Floating-point Functions -************************** - -GMP floating point numbers are stored in objects of type `mpf_t' and -functions operating on them have an `mpf_' prefix. - - The mantissa of each float has a user-selectable precision, limited -only by available memory. Each variable has its own precision, and -that can be increased or decreased at any time. - - The exponent of each float is a fixed precision, one machine word on -most systems. In the current implementation the exponent is a count of -limbs, so for example on a 32-bit system this means a range of roughly -2^-68719476768 to 2^68719476736, or on a 64-bit system this will be -greater. Note however `mpf_get_str' can only return an exponent which -fits an `mp_exp_t' and currently `mpf_set_str' doesn't accept exponents -bigger than a `long'. - - Each variable keeps a size for the mantissa data actually in use. -This means that if a float is exactly represented in only a few bits -then only those bits will be used in a calculation, even if the -selected precision is high. - - All calculations are performed to the precision of the destination -variable. Each function is defined to calculate with "infinite -precision" followed by a truncation to the destination precision, but -of course the work done is only what's needed to determine a result -under that definition. - - The precision selected for a variable is a minimum value, GMP may -increase it a little to facilitate efficient calculation. Currently -this means rounding up to a whole limb, and then sometimes having a -further partial limb, depending on the high limb of the mantissa. But -applications shouldn't be concerned by such details. - - The mantissa in stored in binary, as might be imagined from the fact -precisions are expressed in bits. One consequence of this is that -decimal fractions like 0.1 cannot be represented exactly. The same is -true of plain IEEE `double' floats. This makes both highly unsuitable -for calculations involving money or other values that should be exact -decimal fractions. (Suitably scaled integers, or perhaps rationals, -are better choices.) - - `mpf' functions and variables have no special notion of infinity or -not-a-number, and applications must take care not to overflow the -exponent or results will be unpredictable. This might change in a -future release. - - Note that the `mpf' functions are _not_ intended as a smooth -extension to IEEE P754 arithmetic. In particular results obtained on -one computer often differ from the results on a computer with a -different word size. - -* Menu: - -* Initializing Floats:: -* Assigning Floats:: -* Simultaneous Float Init & Assign:: -* Converting Floats:: -* Float Arithmetic:: -* Float Comparison:: -* I/O of Floats:: -* Miscellaneous Float Functions:: - - -File: gmp.info, Node: Initializing Floats, Next: Assigning Floats, Prev: Floating-point Functions, Up: Floating-point Functions - -7.1 Initialization Functions -============================ - - -- Function: void mpf_set_default_prec (mp_bitcnt_t PREC) - Set the default precision to be *at least* PREC bits. All - subsequent calls to `mpf_init' will use this precision, but - previously initialized variables are unaffected. - - -- Function: mp_bitcnt_t mpf_get_default_prec (void) - Return the default precision actually used. - - An `mpf_t' object must be initialized before storing the first value -in it. The functions `mpf_init' and `mpf_init2' are used for that -purpose. - - -- Function: void mpf_init (mpf_t X) - Initialize X to 0. Normally, a variable should be initialized - once only or at least be cleared, using `mpf_clear', between - initializations. The precision of X is undefined unless a default - precision has already been established by a call to - `mpf_set_default_prec'. - - -- Function: void mpf_init2 (mpf_t X, mp_bitcnt_t PREC) - Initialize X to 0 and set its precision to be *at least* PREC - bits. Normally, a variable should be initialized once only or at - least be cleared, using `mpf_clear', between initializations. - - -- Function: void mpf_inits (mpf_t X, ...) - Initialize a NULL-terminated list of `mpf_t' variables, and set - their values to 0. The precision of the initialized variables is - undefined unless a default precision has already been established - by a call to `mpf_set_default_prec'. - - -- Function: void mpf_clear (mpf_t X) - Free the space occupied by X. Make sure to call this function for - all `mpf_t' variables when you are done with them. - - -- Function: void mpf_clears (mpf_t X, ...) - Free the space occupied by a NULL-terminated list of `mpf_t' - variables. - - Here is an example on how to initialize floating-point variables: - { - mpf_t x, y; - mpf_init (x); /* use default precision */ - mpf_init2 (y, 256); /* precision _at least_ 256 bits */ - ... - /* Unless the program is about to exit, do ... */ - mpf_clear (x); - mpf_clear (y); - } - - The following three functions are useful for changing the precision -during a calculation. A typical use would be for adjusting the -precision gradually in iterative algorithms like Newton-Raphson, making -the computation precision closely match the actual accurate part of the -numbers. - - -- Function: mp_bitcnt_t mpf_get_prec (mpf_t OP) - Return the current precision of OP, in bits. - - -- Function: void mpf_set_prec (mpf_t ROP, mp_bitcnt_t PREC) - Set the precision of ROP to be *at least* PREC bits. The value in - ROP will be truncated to the new precision. - - This function requires a call to `realloc', and so should not be - used in a tight loop. - - -- Function: void mpf_set_prec_raw (mpf_t ROP, mp_bitcnt_t PREC) - Set the precision of ROP to be *at least* PREC bits, without - changing the memory allocated. - - PREC must be no more than the allocated precision for ROP, that - being the precision when ROP was initialized, or in the most recent - `mpf_set_prec'. - - The value in ROP is unchanged, and in particular if it had a higher - precision than PREC it will retain that higher precision. New - values written to ROP will use the new PREC. - - Before calling `mpf_clear' or the full `mpf_set_prec', another - `mpf_set_prec_raw' call must be made to restore ROP to its original - allocated precision. Failing to do so will have unpredictable - results. - - `mpf_get_prec' can be used before `mpf_set_prec_raw' to get the - original allocated precision. After `mpf_set_prec_raw' it - reflects the PREC value set. - - `mpf_set_prec_raw' is an efficient way to use an `mpf_t' variable - at different precisions during a calculation, perhaps to gradually - increase precision in an iteration, or just to use various - different precisions for different purposes during a calculation. - - -File: gmp.info, Node: Assigning Floats, Next: Simultaneous Float Init & Assign, Prev: Initializing Floats, Up: Floating-point Functions - -7.2 Assignment Functions -======================== - -These functions assign new values to already initialized floats (*note -Initializing Floats::). - - -- Function: void mpf_set (mpf_t ROP, mpf_t OP) - -- Function: void mpf_set_ui (mpf_t ROP, unsigned long int OP) - -- Function: void mpf_set_si (mpf_t ROP, signed long int OP) - -- Function: void mpf_set_d (mpf_t ROP, double OP) - -- Function: void mpf_set_z (mpf_t ROP, mpz_t OP) - -- Function: void mpf_set_q (mpf_t ROP, mpq_t OP) - Set the value of ROP from OP. - - -- Function: int mpf_set_str (mpf_t ROP, char *STR, int BASE) - Set the value of ROP from the string in STR. The string is of the - form `M@N' or, if the base is 10 or less, alternatively `MeN'. - `M' is the mantissa and `N' is the exponent. The mantissa is - always in the specified base. The exponent is either in the - specified base or, if BASE is negative, in decimal. The decimal - point expected is taken from the current locale, on systems - providing `localeconv'. - - The argument BASE may be in the ranges 2 to 62, or -62 to -2. - Negative values are used to specify that the exponent is in - decimal. - - For bases up to 36, case is ignored; upper-case and lower-case - letters have the same value; for bases 37 to 62, upper-case letter - represent the usual 10..35 while lower-case letter represent - 36..61. - - Unlike the corresponding `mpz' function, the base will not be - determined from the leading characters of the string if BASE is 0. - This is so that numbers like `0.23' are not interpreted as octal. - - White space is allowed in the string, and is simply ignored. - [This is not really true; white-space is ignored in the beginning - of the string and within the mantissa, but not in other places, - such as after a minus sign or in the exponent. We are considering - changing the definition of this function, making it fail when - there is any white-space in the input, since that makes a lot of - sense. Please tell us your opinion about this change. Do you - really want it to accept "3 14" as meaning 314 as it does now?] - - This function returns 0 if the entire string is a valid number in - base BASE. Otherwise it returns -1. - - -- Function: void mpf_swap (mpf_t ROP1, mpf_t ROP2) - Swap ROP1 and ROP2 efficiently. Both the values and the - precisions of the two variables are swapped. - - -File: gmp.info, Node: Simultaneous Float Init & Assign, Next: Converting Floats, Prev: Assigning Floats, Up: Floating-point Functions - -7.3 Combined Initialization and Assignment Functions -==================================================== - -For convenience, GMP provides a parallel series of initialize-and-set -functions which initialize the output and then store the value there. -These functions' names have the form `mpf_init_set...' - - Once the float has been initialized by any of the `mpf_init_set...' -functions, it can be used as the source or destination operand for the -ordinary float functions. Don't use an initialize-and-set function on -a variable already initialized! - - -- Function: void mpf_init_set (mpf_t ROP, mpf_t OP) - -- Function: void mpf_init_set_ui (mpf_t ROP, unsigned long int OP) - -- Function: void mpf_init_set_si (mpf_t ROP, signed long int OP) - -- Function: void mpf_init_set_d (mpf_t ROP, double OP) - Initialize ROP and set its value from OP. - - The precision of ROP will be taken from the active default - precision, as set by `mpf_set_default_prec'. - - -- Function: int mpf_init_set_str (mpf_t ROP, char *STR, int BASE) - Initialize ROP and set its value from the string in STR. See - `mpf_set_str' above for details on the assignment operation. - - Note that ROP is initialized even if an error occurs. (I.e., you - have to call `mpf_clear' for it.) - - The precision of ROP will be taken from the active default - precision, as set by `mpf_set_default_prec'. - - -File: gmp.info, Node: Converting Floats, Next: Float Arithmetic, Prev: Simultaneous Float Init & Assign, Up: Floating-point Functions - -7.4 Conversion Functions -======================== - - -- Function: double mpf_get_d (mpf_t OP) - Convert OP to a `double', truncating if necessary (ie. rounding - towards zero). - - If the exponent in OP is too big or too small to fit a `double' - then the result is system dependent. For too big an infinity is - returned when available. For too small 0.0 is normally returned. - Hardware overflow, underflow and denorm traps may or may not occur. - - -- Function: double mpf_get_d_2exp (signed long int *EXP, mpf_t OP) - Convert OP to a `double', truncating if necessary (ie. rounding - towards zero), and with an exponent returned separately. - - The return value is in the range 0.5<=abs(D)<1 and the exponent is - stored to `*EXP'. D * 2^EXP is the (truncated) OP value. If OP - is zero, the return is 0.0 and 0 is stored to `*EXP'. - - This is similar to the standard C `frexp' function (*note - Normalization Functions: (libc)Normalization Functions.). - - -- Function: long mpf_get_si (mpf_t OP) - -- Function: unsigned long mpf_get_ui (mpf_t OP) - Convert OP to a `long' or `unsigned long', truncating any fraction - part. If OP is too big for the return type, the result is - undefined. - - See also `mpf_fits_slong_p' and `mpf_fits_ulong_p' (*note - Miscellaneous Float Functions::). - - -- Function: char * mpf_get_str (char *STR, mp_exp_t *EXPPTR, int - BASE, size_t N_DIGITS, mpf_t OP) - Convert OP to a string of digits in base BASE. The base argument - may vary from 2 to 62 or from -2 to -36. Up to N_DIGITS digits - will be generated. Trailing zeros are not returned. No more - digits than can be accurately represented by OP are ever - generated. If N_DIGITS is 0 then that accurate maximum number of - digits are generated. - - For BASE in the range 2..36, digits and lower-case letters are - used; for -2..-36, digits and upper-case letters are used; for - 37..62, digits, upper-case letters, and lower-case letters (in - that significance order) are used. - - If STR is `NULL', the result string is allocated using the current - allocation function (*note Custom Allocation::). The block will be - `strlen(str)+1' bytes, that being exactly enough for the string and - null-terminator. - - If STR is not `NULL', it should point to a block of N_DIGITS + 2 - bytes, that being enough for the mantissa, a possible minus sign, - and a null-terminator. When N_DIGITS is 0 to get all significant - digits, an application won't be able to know the space required, - and STR should be `NULL' in that case. - - The generated string is a fraction, with an implicit radix point - immediately to the left of the first digit. The applicable - exponent is written through the EXPPTR pointer. For example, the - number 3.1416 would be returned as string "31416" and exponent 1. - - When OP is zero, an empty string is produced and the exponent - returned is 0. - - A pointer to the result string is returned, being either the - allocated block or the given STR. - - -File: gmp.info, Node: Float Arithmetic, Next: Float Comparison, Prev: Converting Floats, Up: Floating-point Functions - -7.5 Arithmetic Functions -======================== - - -- Function: void mpf_add (mpf_t ROP, mpf_t OP1, mpf_t OP2) - -- Function: void mpf_add_ui (mpf_t ROP, mpf_t OP1, unsigned long int - OP2) - Set ROP to OP1 + OP2. - - -- Function: void mpf_sub (mpf_t ROP, mpf_t OP1, mpf_t OP2) - -- Function: void mpf_ui_sub (mpf_t ROP, unsigned long int OP1, mpf_t - OP2) - -- Function: void mpf_sub_ui (mpf_t ROP, mpf_t OP1, unsigned long int - OP2) - Set ROP to OP1 - OP2. - - -- Function: void mpf_mul (mpf_t ROP, mpf_t OP1, mpf_t OP2) - -- Function: void mpf_mul_ui (mpf_t ROP, mpf_t OP1, unsigned long int - OP2) - Set ROP to OP1 times OP2. - - Division is undefined if the divisor is zero, and passing a zero -divisor to the divide functions will make these functions intentionally -divide by zero. This lets the user handle arithmetic exceptions in -these functions in the same manner as other arithmetic exceptions. - - -- Function: void mpf_div (mpf_t ROP, mpf_t OP1, mpf_t OP2) - -- Function: void mpf_ui_div (mpf_t ROP, unsigned long int OP1, mpf_t - OP2) - -- Function: void mpf_div_ui (mpf_t ROP, mpf_t OP1, unsigned long int - OP2) - Set ROP to OP1/OP2. - - -- Function: void mpf_sqrt (mpf_t ROP, mpf_t OP) - -- Function: void mpf_sqrt_ui (mpf_t ROP, unsigned long int OP) - Set ROP to the square root of OP. - - -- Function: void mpf_pow_ui (mpf_t ROP, mpf_t OP1, unsigned long int - OP2) - Set ROP to OP1 raised to the power OP2. - - -- Function: void mpf_neg (mpf_t ROP, mpf_t OP) - Set ROP to -OP. - - -- Function: void mpf_abs (mpf_t ROP, mpf_t OP) - Set ROP to the absolute value of OP. - - -- Function: void mpf_mul_2exp (mpf_t ROP, mpf_t OP1, mp_bitcnt_t OP2) - Set ROP to OP1 times 2 raised to OP2. - - -- Function: void mpf_div_2exp (mpf_t ROP, mpf_t OP1, mp_bitcnt_t OP2) - Set ROP to OP1 divided by 2 raised to OP2. - - -File: gmp.info, Node: Float Comparison, Next: I/O of Floats, Prev: Float Arithmetic, Up: Floating-point Functions - -7.6 Comparison Functions -======================== - - -- Function: int mpf_cmp (mpf_t OP1, mpf_t OP2) - -- Function: int mpf_cmp_d (mpf_t OP1, double OP2) - -- Function: int mpf_cmp_ui (mpf_t OP1, unsigned long int OP2) - -- Function: int mpf_cmp_si (mpf_t OP1, signed long int OP2) - Compare OP1 and OP2. Return a positive value if OP1 > OP2, zero - if OP1 = OP2, and a negative value if OP1 < OP2. - - `mpf_cmp_d' can be called with an infinity, but results are - undefined for a NaN. - - -- Function: int mpf_eq (mpf_t OP1, mpf_t OP2, mp_bitcnt_t op3) - Return non-zero if the first OP3 bits of OP1 and OP2 are equal, - zero otherwise. I.e., test if OP1 and OP2 are approximately equal. - - Caution 1: All version of GMP up to version 4.2.4 compared just - whole limbs, meaning sometimes more than OP3 bits, sometimes fewer. - - Caution 2: This function will consider XXX11...111 and XX100...000 - different, even if ... is replaced by a semi-infinite number of - bits. Such numbers are really just one ulp off, and should be - considered equal. - - -- Function: void mpf_reldiff (mpf_t ROP, mpf_t OP1, mpf_t OP2) - Compute the relative difference between OP1 and OP2 and store the - result in ROP. This is abs(OP1-OP2)/OP1. - - -- Macro: int mpf_sgn (mpf_t OP) - Return +1 if OP > 0, 0 if OP = 0, and -1 if OP < 0. - - This function is actually implemented as a macro. It evaluates - its arguments multiple times. - - -File: gmp.info, Node: I/O of Floats, Next: Miscellaneous Float Functions, Prev: Float Comparison, Up: Floating-point Functions - -7.7 Input and Output Functions -============================== - -Functions that perform input from a stdio stream, and functions that -output to a stdio stream. Passing a `NULL' pointer for a STREAM -argument to any of these functions will make them read from `stdin' and -write to `stdout', respectively. - - When using any of these functions, it is a good idea to include -`stdio.h' before `gmp.h', since that will allow `gmp.h' to define -prototypes for these functions. - - -- Function: size_t mpf_out_str (FILE *STREAM, int BASE, size_t - N_DIGITS, mpf_t OP) - Print OP to STREAM, as a string of digits. Return the number of - bytes written, or if an error occurred, return 0. - - The mantissa is prefixed with an `0.' and is in the given BASE, - which may vary from 2 to 62 or from -2 to -36. An exponent is - then printed, separated by an `e', or if the base is greater than - 10 then by an `@'. The exponent is always in decimal. The - decimal point follows the current locale, on systems providing - `localeconv'. - - For BASE in the range 2..36, digits and lower-case letters are - used; for -2..-36, digits and upper-case letters are used; for - 37..62, digits, upper-case letters, and lower-case letters (in - that significance order) are used. - - Up to N_DIGITS will be printed from the mantissa, except that no - more digits than are accurately representable by OP will be - printed. N_DIGITS can be 0 to select that accurate maximum. - - -- Function: size_t mpf_inp_str (mpf_t ROP, FILE *STREAM, int BASE) - Read a string in base BASE from STREAM, and put the read float in - ROP. The string is of the form `M@N' or, if the base is 10 or - less, alternatively `MeN'. `M' is the mantissa and `N' is the - exponent. The mantissa is always in the specified base. The - exponent is either in the specified base or, if BASE is negative, - in decimal. The decimal point expected is taken from the current - locale, on systems providing `localeconv'. - - The argument BASE may be in the ranges 2 to 36, or -36 to -2. - Negative values are used to specify that the exponent is in - decimal. - - Unlike the corresponding `mpz' function, the base will not be - determined from the leading characters of the string if BASE is 0. - This is so that numbers like `0.23' are not interpreted as octal. - - Return the number of bytes read, or if an error occurred, return 0. - - -File: gmp.info, Node: Miscellaneous Float Functions, Prev: I/O of Floats, Up: Floating-point Functions - -7.8 Miscellaneous Functions -=========================== - - -- Function: void mpf_ceil (mpf_t ROP, mpf_t OP) - -- Function: void mpf_floor (mpf_t ROP, mpf_t OP) - -- Function: void mpf_trunc (mpf_t ROP, mpf_t OP) - Set ROP to OP rounded to an integer. `mpf_ceil' rounds to the - next higher integer, `mpf_floor' to the next lower, and `mpf_trunc' - to the integer towards zero. - - -- Function: int mpf_integer_p (mpf_t OP) - Return non-zero if OP is an integer. - - -- Function: int mpf_fits_ulong_p (mpf_t OP) - -- Function: int mpf_fits_slong_p (mpf_t OP) - -- Function: int mpf_fits_uint_p (mpf_t OP) - -- Function: int mpf_fits_sint_p (mpf_t OP) - -- Function: int mpf_fits_ushort_p (mpf_t OP) - -- Function: int mpf_fits_sshort_p (mpf_t OP) - Return non-zero if OP would fit in the respective C data type, when - truncated to an integer. - - -- Function: void mpf_urandomb (mpf_t ROP, gmp_randstate_t STATE, - mp_bitcnt_t NBITS) - Generate a uniformly distributed random float in ROP, such that 0 - <= ROP < 1, with NBITS significant bits in the mantissa. - - The variable STATE must be initialized by calling one of the - `gmp_randinit' functions (*Note Random State Initialization::) - before invoking this function. - - -- Function: void mpf_random2 (mpf_t ROP, mp_size_t MAX_SIZE, mp_exp_t - EXP) - Generate a random float of at most MAX_SIZE limbs, with long - strings of zeros and ones in the binary representation. The - exponent of the number is in the interval -EXP to EXP (in limbs). - This function is useful for testing functions and algorithms, - since these kind of random numbers have proven to be more likely - to trigger corner-case bugs. Negative random numbers are - generated when MAX_SIZE is negative. - - -File: gmp.info, Node: Low-level Functions, Next: Random Number Functions, Prev: Floating-point Functions, Up: Top - -8 Low-level Functions -********************* - -This chapter describes low-level GMP functions, used to implement the -high-level GMP functions, but also intended for time-critical user code. - - These functions start with the prefix `mpn_'. - - The `mpn' functions are designed to be as fast as possible, *not* to -provide a coherent calling interface. The different functions have -somewhat similar interfaces, but there are variations that make them -hard to use. These functions do as little as possible apart from the -real multiple precision computation, so that no time is spent on things -that not all callers need. - - A source operand is specified by a pointer to the least significant -limb and a limb count. A destination operand is specified by just a -pointer. It is the responsibility of the caller to ensure that the -destination has enough space for storing the result. - - With this way of specifying operands, it is possible to perform -computations on subranges of an argument, and store the result into a -subrange of a destination. - - A common requirement for all functions is that each source area -needs at least one limb. No size argument may be zero. Unless -otherwise stated, in-place operations are allowed where source and -destination are the same, but not where they only partly overlap. - - The `mpn' functions are the base for the implementation of the -`mpz_', `mpf_', and `mpq_' functions. - - This example adds the number beginning at S1P and the number -beginning at S2P and writes the sum at DESTP. All areas have N limbs. - - cy = mpn_add_n (destp, s1p, s2p, n) - - It should be noted that the `mpn' functions make no attempt to -identify high or low zero limbs on their operands, or other special -forms. On random data such cases will be unlikely and it'd be wasteful -for every function to check every time. An application knowing -something about its data can take steps to trim or perhaps split its -calculations. - - -In the notation used below, a source operand is identified by the -pointer to the least significant limb, and the limb count in braces. -For example, {S1P, S1N}. - - -- Function: mp_limb_t mpn_add_n (mp_limb_t *RP, const mp_limb_t *S1P, - const mp_limb_t *S2P, mp_size_t N) - Add {S1P, N} and {S2P, N}, and write the N least significant limbs - of the result to RP. Return carry, either 0 or 1. - - This is the lowest-level function for addition. It is the - preferred function for addition, since it is written in assembly - for most CPUs. For addition of a variable to itself (i.e., S1P - equals S2P) use `mpn_lshift' with a count of 1 for optimal speed. - - -- Function: mp_limb_t mpn_add_1 (mp_limb_t *RP, const mp_limb_t *S1P, - mp_size_t N, mp_limb_t S2LIMB) - Add {S1P, N} and S2LIMB, and write the N least significant limbs - of the result to RP. Return carry, either 0 or 1. - - -- Function: mp_limb_t mpn_add (mp_limb_t *RP, const mp_limb_t *S1P, - mp_size_t S1N, const mp_limb_t *S2P, mp_size_t S2N) - Add {S1P, S1N} and {S2P, S2N}, and write the S1N least significant - limbs of the result to RP. Return carry, either 0 or 1. - - This function requires that S1N is greater than or equal to S2N. - - -- Function: mp_limb_t mpn_sub_n (mp_limb_t *RP, const mp_limb_t *S1P, - const mp_limb_t *S2P, mp_size_t N) - Subtract {S2P, N} from {S1P, N}, and write the N least significant - limbs of the result to RP. Return borrow, either 0 or 1. - - This is the lowest-level function for subtraction. It is the - preferred function for subtraction, since it is written in - assembly for most CPUs. - - -- Function: mp_limb_t mpn_sub_1 (mp_limb_t *RP, const mp_limb_t *S1P, - mp_size_t N, mp_limb_t S2LIMB) - Subtract S2LIMB from {S1P, N}, and write the N least significant - limbs of the result to RP. Return borrow, either 0 or 1. - - -- Function: mp_limb_t mpn_sub (mp_limb_t *RP, const mp_limb_t *S1P, - mp_size_t S1N, const mp_limb_t *S2P, mp_size_t S2N) - Subtract {S2P, S2N} from {S1P, S1N}, and write the S1N least - significant limbs of the result to RP. Return borrow, either 0 or - 1. - - This function requires that S1N is greater than or equal to S2N. - - -- Function: void mpn_neg (mp_limb_t *RP, const mp_limb_t *SP, - mp_size_t N) - Perform the negation of {SP, N}, and write the result to {RP, N}. - Return carry-out. - - -- Function: void mpn_mul_n (mp_limb_t *RP, const mp_limb_t *S1P, - const mp_limb_t *S2P, mp_size_t N) - Multiply {S1P, N} and {S2P, N}, and write the 2*N-limb result to - RP. - - The destination has to have space for 2*N limbs, even if the - product's most significant limb is zero. No overlap is permitted - between the destination and either source. - - If the two input operands are the same, use `mpn_sqr'. - - -- Function: mp_limb_t mpn_mul (mp_limb_t *RP, const mp_limb_t *S1P, - mp_size_t S1N, const mp_limb_t *S2P, mp_size_t S2N) - Multiply {S1P, S1N} and {S2P, S2N}, and write the (S1N+S2N)-limb - result to RP. Return the most significant limb of the result. - - The destination has to have space for S1N + S2N limbs, even if the - product's most significant limb is zero. No overlap is permitted - between the destination and either source. - - This function requires that S1N is greater than or equal to S2N. - - -- Function: void mpn_sqr (mp_limb_t *RP, const mp_limb_t *S1P, - mp_size_t N) - Compute the square of {S1P, N} and write the 2*N-limb result to RP. - - The destination has to have space for 2*N limbs, even if the - result's most significant limb is zero. No overlap is permitted - between the destination and the source. - - -- Function: mp_limb_t mpn_mul_1 (mp_limb_t *RP, const mp_limb_t *S1P, - mp_size_t N, mp_limb_t S2LIMB) - Multiply {S1P, N} by S2LIMB, and write the N least significant - limbs of the product to RP. Return the most significant limb of - the product. {S1P, N} and {RP, N} are allowed to overlap provided - RP <= S1P. - - This is a low-level function that is a building block for general - multiplication as well as other operations in GMP. It is written - in assembly for most CPUs. - - Don't call this function if S2LIMB is a power of 2; use - `mpn_lshift' with a count equal to the logarithm of S2LIMB - instead, for optimal speed. - - -- Function: mp_limb_t mpn_addmul_1 (mp_limb_t *RP, const mp_limb_t - *S1P, mp_size_t N, mp_limb_t S2LIMB) - Multiply {S1P, N} and S2LIMB, and add the N least significant - limbs of the product to {RP, N} and write the result to RP. - Return the most significant limb of the product, plus carry-out - from the addition. - - This is a low-level function that is a building block for general - multiplication as well as other operations in GMP. It is written - in assembly for most CPUs. - - -- Function: mp_limb_t mpn_submul_1 (mp_limb_t *RP, const mp_limb_t - *S1P, mp_size_t N, mp_limb_t S2LIMB) - Multiply {S1P, N} and S2LIMB, and subtract the N least significant - limbs of the product from {RP, N} and write the result to RP. - Return the most significant limb of the product, plus borrow-out - from the subtraction. - - This is a low-level function that is a building block for general - multiplication and division as well as other operations in GMP. - It is written in assembly for most CPUs. - - -- Function: void mpn_tdiv_qr (mp_limb_t *QP, mp_limb_t *RP, mp_size_t - QXN, const mp_limb_t *NP, mp_size_t NN, const mp_limb_t *DP, - mp_size_t DN) - Divide {NP, NN} by {DP, DN} and put the quotient at {QP, NN-DN+1} - and the remainder at {RP, DN}. The quotient is rounded towards 0. - - No overlap is permitted between arguments, except that NP might - equal RP. The dividend size NN must be greater than or equal to - divisor size DN. The most significant limb of the divisor must be - non-zero. The QXN operand must be zero. - - -- Function: mp_limb_t mpn_divrem (mp_limb_t *R1P, mp_size_t QXN, - mp_limb_t *RS2P, mp_size_t RS2N, const mp_limb_t *S3P, - mp_size_t S3N) - [This function is obsolete. Please call `mpn_tdiv_qr' instead for - best performance.] - - Divide {RS2P, RS2N} by {S3P, S3N}, and write the quotient at R1P, - with the exception of the most significant limb, which is - returned. The remainder replaces the dividend at RS2P; it will be - S3N limbs long (i.e., as many limbs as the divisor). - - In addition to an integer quotient, QXN fraction limbs are - developed, and stored after the integral limbs. For most usages, - QXN will be zero. - - It is required that RS2N is greater than or equal to S3N. It is - required that the most significant bit of the divisor is set. - - If the quotient is not needed, pass RS2P + S3N as R1P. Aside from - that special case, no overlap between arguments is permitted. - - Return the most significant limb of the quotient, either 0 or 1. - - The area at R1P needs to be RS2N - S3N + QXN limbs large. - - -- Function: mp_limb_t mpn_divrem_1 (mp_limb_t *R1P, mp_size_t QXN, - mp_limb_t *S2P, mp_size_t S2N, mp_limb_t S3LIMB) - -- Macro: mp_limb_t mpn_divmod_1 (mp_limb_t *R1P, mp_limb_t *S2P, - mp_size_t S2N, mp_limb_t S3LIMB) - Divide {S2P, S2N} by S3LIMB, and write the quotient at R1P. - Return the remainder. - - The integer quotient is written to {R1P+QXN, S2N} and in addition - QXN fraction limbs are developed and written to {R1P, QXN}. - Either or both S2N and QXN can be zero. For most usages, QXN will - be zero. - - `mpn_divmod_1' exists for upward source compatibility and is - simply a macro calling `mpn_divrem_1' with a QXN of 0. - - The areas at R1P and S2P have to be identical or completely - separate, not partially overlapping. - - -- Function: mp_limb_t mpn_divmod (mp_limb_t *R1P, mp_limb_t *RS2P, - mp_size_t RS2N, const mp_limb_t *S3P, mp_size_t S3N) - [This function is obsolete. Please call `mpn_tdiv_qr' instead for - best performance.] - - -- Macro: mp_limb_t mpn_divexact_by3 (mp_limb_t *RP, mp_limb_t *SP, - mp_size_t N) - -- Function: mp_limb_t mpn_divexact_by3c (mp_limb_t *RP, mp_limb_t - *SP, mp_size_t N, mp_limb_t CARRY) - Divide {SP, N} by 3, expecting it to divide exactly, and writing - the result to {RP, N}. If 3 divides exactly, the return value is - zero and the result is the quotient. If not, the return value is - non-zero and the result won't be anything useful. - - `mpn_divexact_by3c' takes an initial carry parameter, which can be - the return value from a previous call, so a large calculation can - be done piece by piece from low to high. `mpn_divexact_by3' is - simply a macro calling `mpn_divexact_by3c' with a 0 carry - parameter. - - These routines use a multiply-by-inverse and will be faster than - `mpn_divrem_1' on CPUs with fast multiplication but slow division. - - The source a, result q, size n, initial carry i, and return value - c satisfy c*b^n + a-i = 3*q, where b=2^GMP_NUMB_BITS. The return - c is always 0, 1 or 2, and the initial carry i must also be 0, 1 - or 2 (these are both borrows really). When c=0 clearly q=(a-i)/3. - When c!=0, the remainder (a-i) mod 3 is given by 3-c, because b - == 1 mod 3 (when `mp_bits_per_limb' is even, which is always so - currently). - - -- Function: mp_limb_t mpn_mod_1 (mp_limb_t *S1P, mp_size_t S1N, - mp_limb_t S2LIMB) - Divide {S1P, S1N} by S2LIMB, and return the remainder. S1N can be - zero. - - -- Function: mp_limb_t mpn_lshift (mp_limb_t *RP, const mp_limb_t *SP, - mp_size_t N, unsigned int COUNT) - Shift {SP, N} left by COUNT bits, and write the result to {RP, N}. - The bits shifted out at the left are returned in the least - significant COUNT bits of the return value (the rest of the return - value is zero). - - COUNT must be in the range 1 to mp_bits_per_limb-1. The regions - {SP, N} and {RP, N} may overlap, provided RP >= SP. - - This function is written in assembly for most CPUs. - - -- Function: mp_limb_t mpn_rshift (mp_limb_t *RP, const mp_limb_t *SP, - mp_size_t N, unsigned int COUNT) - Shift {SP, N} right by COUNT bits, and write the result to {RP, - N}. The bits shifted out at the right are returned in the most - significant COUNT bits of the return value (the rest of the return - value is zero). - - COUNT must be in the range 1 to mp_bits_per_limb-1. The regions - {SP, N} and {RP, N} may overlap, provided RP <= SP. - - This function is written in assembly for most CPUs. - - -- Function: int mpn_cmp (const mp_limb_t *S1P, const mp_limb_t *S2P, - mp_size_t N) - Compare {S1P, N} and {S2P, N} and return a positive value if S1 > - S2, 0 if they are equal, or a negative value if S1 < S2. - - -- Function: mp_size_t mpn_gcd (mp_limb_t *RP, mp_limb_t *XP, - mp_size_t XN, mp_limb_t *YP, mp_size_t YN) - Set {RP, RETVAL} to the greatest common divisor of {XP, XN} and - {YP, YN}. The result can be up to YN limbs, the return value is - the actual number produced. Both source operands are destroyed. - - {XP, XN} must have at least as many bits as {YP, YN}. {YP, YN} - must be odd. Both operands must have non-zero most significant - limbs. No overlap is permitted between {XP, XN} and {YP, YN}. - - -- Function: mp_limb_t mpn_gcd_1 (const mp_limb_t *XP, mp_size_t XN, - mp_limb_t YLIMB) - Return the greatest common divisor of {XP, XN} and YLIMB. Both - operands must be non-zero. - - -- Function: mp_size_t mpn_gcdext (mp_limb_t *GP, mp_limb_t *SP, - mp_size_t *SN, mp_limb_t *XP, mp_size_t XN, mp_limb_t *YP, - mp_size_t YN) - Let U be defined by {XP, XN} and let V be defined by {YP, YN}. - - Compute the greatest common divisor G of U and V. Compute a - cofactor S such that G = US + VT. The second cofactor T is not - computed but can easily be obtained from (G - U*S) / V (the - division will be exact). It is required that U >= V > 0. - - S satisfies S = 1 or abs(S) < V / (2 G). S = 0 if and only if V - divides U (i.e., G = V). - - Store G at GP and let the return value define its limb count. - Store S at SP and let |*SN| define its limb count. S can be - negative; when this happens *SN will be negative. The areas at GP - and SP should each have room for XN+1 limbs. - - The areas {XP, XN+1} and {YP, YN+1} are destroyed (i.e. the input - operands plus an extra limb past the end of each). - - Compatibility note: GMP 4.3.0 and 4.3.1 defined S less strictly. - Earlier as well as later GMP releases define S as described here. - - -- Function: mp_size_t mpn_sqrtrem (mp_limb_t *R1P, mp_limb_t *R2P, - const mp_limb_t *SP, mp_size_t N) - Compute the square root of {SP, N} and put the result at {R1P, - ceil(N/2)} and the remainder at {R2P, RETVAL}. R2P needs space - for N limbs, but the return value indicates how many are produced. - - The most significant limb of {SP, N} must be non-zero. The areas - {R1P, ceil(N/2)} and {SP, N} must be completely separate. The - areas {R2P, N} and {SP, N} must be either identical or completely - separate. - - If the remainder is not wanted then R2P can be `NULL', and in this - case the return value is zero or non-zero according to whether the - remainder would have been zero or non-zero. - - A return value of zero indicates a perfect square. See also - `mpz_perfect_square_p'. - - -- Function: mp_size_t mpn_get_str (unsigned char *STR, int BASE, - mp_limb_t *S1P, mp_size_t S1N) - Convert {S1P, S1N} to a raw unsigned char array at STR in base - BASE, and return the number of characters produced. There may be - leading zeros in the string. The string is not in ASCII; to - convert it to printable format, add the ASCII codes for `0' or - `A', depending on the base and range. BASE can vary from 2 to 256. - - The most significant limb of the input {S1P, S1N} must be - non-zero. The input {S1P, S1N} is clobbered, except when BASE is - a power of 2, in which case it's unchanged. - - The area at STR has to have space for the largest possible number - represented by a S1N long limb array, plus one extra character. - - -- Function: mp_size_t mpn_set_str (mp_limb_t *RP, const unsigned char - *STR, size_t STRSIZE, int BASE) - Convert bytes {STR,STRSIZE} in the given BASE to limbs at RP. - - STR[0] is the most significant byte and STR[STRSIZE-1] is the - least significant. Each byte should be a value in the range 0 to - BASE-1, not an ASCII character. BASE can vary from 2 to 256. - - The return value is the number of limbs written to RP. If the most - significant input byte is non-zero then the high limb at RP will be - non-zero, and only that exact number of limbs will be required - there. - - If the most significant input byte is zero then there may be high - zero limbs written to RP and included in the return value. - - STRSIZE must be at least 1, and no overlap is permitted between - {STR,STRSIZE} and the result at RP. - - -- Function: mp_bitcnt_t mpn_scan0 (const mp_limb_t *S1P, mp_bitcnt_t - BIT) - Scan S1P from bit position BIT for the next clear bit. - - It is required that there be a clear bit within the area at S1P at - or beyond bit position BIT, so that the function has something to - return. - - -- Function: mp_bitcnt_t mpn_scan1 (const mp_limb_t *S1P, mp_bitcnt_t - BIT) - Scan S1P from bit position BIT for the next set bit. - - It is required that there be a set bit within the area at S1P at or - beyond bit position BIT, so that the function has something to - return. - - -- Function: void mpn_random (mp_limb_t *R1P, mp_size_t R1N) - -- Function: void mpn_random2 (mp_limb_t *R1P, mp_size_t R1N) - Generate a random number of length R1N and store it at R1P. The - most significant limb is always non-zero. `mpn_random' generates - uniformly distributed limb data, `mpn_random2' generates long - strings of zeros and ones in the binary representation. - - `mpn_random2' is intended for testing the correctness of the `mpn' - routines. - - -- Function: mp_bitcnt_t mpn_popcount (const mp_limb_t *S1P, mp_size_t - N) - Count the number of set bits in {S1P, N}. - - -- Function: mp_bitcnt_t mpn_hamdist (const mp_limb_t *S1P, const - mp_limb_t *S2P, mp_size_t N) - Compute the hamming distance between {S1P, N} and {S2P, N}, which - is the number of bit positions where the two operands have - different bit values. - - -- Function: int mpn_perfect_square_p (const mp_limb_t *S1P, mp_size_t - N) - Return non-zero iff {S1P, N} is a perfect square. - - -- Function: void mpn_and_n (mp_limb_t *RP, const mp_limb_t *S1P, - const mp_limb_t *S2P, mp_size_t N) - Perform the bitwise logical and of {S1P, N} and {S2P, N}, and - write the result to {RP, N}. - - -- Function: void mpn_ior_n (mp_limb_t *RP, const mp_limb_t *S1P, - const mp_limb_t *S2P, mp_size_t N) - Perform the bitwise logical inclusive or of {S1P, N} and {S2P, N}, - and write the result to {RP, N}. - - -- Function: void mpn_xor_n (mp_limb_t *RP, const mp_limb_t *S1P, - const mp_limb_t *S2P, mp_size_t N) - Perform the bitwise logical exclusive or of {S1P, N} and {S2P, N}, - and write the result to {RP, N}. - - -- Function: void mpn_andn_n (mp_limb_t *RP, const mp_limb_t *S1P, - const mp_limb_t *S2P, mp_size_t N) - Perform the bitwise logical and of {S1P, N} and the bitwise - complement of {S2P, N}, and write the result to {RP, N}. - - -- Function: void mpn_iorn_n (mp_limb_t *RP, const mp_limb_t *S1P, - const mp_limb_t *S2P, mp_size_t N) - Perform the bitwise logical inclusive or of {S1P, N} and the - bitwise complement of {S2P, N}, and write the result to {RP, N}. - - -- Function: void mpn_nand_n (mp_limb_t *RP, const mp_limb_t *S1P, - const mp_limb_t *S2P, mp_size_t N) - Perform the bitwise logical and of {S1P, N} and {S2P, N}, and - write the bitwise complement of the result to {RP, N}. - - -- Function: void mpn_nior_n (mp_limb_t *RP, const mp_limb_t *S1P, - const mp_limb_t *S2P, mp_size_t N) - Perform the bitwise logical inclusive or of {S1P, N} and {S2P, N}, - and write the bitwise complement of the result to {RP, N}. - - -- Function: void mpn_xnor_n (mp_limb_t *RP, const mp_limb_t *S1P, - const mp_limb_t *S2P, mp_size_t N) - Perform the bitwise logical exclusive or of {S1P, N} and {S2P, N}, - and write the bitwise complement of the result to {RP, N}. - - -- Function: void mpn_com (mp_limb_t *RP, const mp_limb_t *SP, - mp_size_t N) - Perform the bitwise complement of {SP, N}, and write the result to - {RP, N}. - - -- Function: void mpn_copyi (mp_limb_t *RP, const mp_limb_t *S1P, - mp_size_t N) - Copy from {S1P, N} to {RP, N}, increasingly. - - -- Function: void mpn_copyd (mp_limb_t *RP, const mp_limb_t *S1P, - mp_size_t N) - Copy from {S1P, N} to {RP, N}, decreasingly. - - -- Function: void mpn_zero (mp_limb_t *RP, mp_size_t N) - Zero {RP, N}. - - -8.1 Nails -========= - -*Everything in this section is highly experimental and may disappear or -be subject to incompatible changes in a future version of GMP.* - - Nails are an experimental feature whereby a few bits are left unused -at the top of each `mp_limb_t'. This can significantly improve carry -handling on some processors. - - All the `mpn' functions accepting limb data will expect the nail -bits to be zero on entry, and will return data with the nails similarly -all zero. This applies both to limb vectors and to single limb -arguments. - - Nails can be enabled by configuring with `--enable-nails'. By -default the number of bits will be chosen according to what suits the -host processor, but a particular number can be selected with -`--enable-nails=N'. - - At the mpn level, a nail build is neither source nor binary -compatible with a non-nail build, strictly speaking. But programs -acting on limbs only through the mpn functions are likely to work -equally well with either build, and judicious use of the definitions -below should make any program compatible with either build, at the -source level. - - For the higher level routines, meaning `mpz' etc, a nail build -should be fully source and binary compatible with a non-nail build. - - -- Macro: GMP_NAIL_BITS - -- Macro: GMP_NUMB_BITS - -- Macro: GMP_LIMB_BITS - `GMP_NAIL_BITS' is the number of nail bits, or 0 when nails are - not in use. `GMP_NUMB_BITS' is the number of data bits in a limb. - `GMP_LIMB_BITS' is the total number of bits in an `mp_limb_t'. In - all cases - - GMP_LIMB_BITS == GMP_NAIL_BITS + GMP_NUMB_BITS - - -- Macro: GMP_NAIL_MASK - -- Macro: GMP_NUMB_MASK - Bit masks for the nail and number parts of a limb. - `GMP_NAIL_MASK' is 0 when nails are not in use. - - `GMP_NAIL_MASK' is not often needed, since the nail part can be - obtained with `x >> GMP_NUMB_BITS', and that means one less large - constant, which can help various RISC chips. - - -- Macro: GMP_NUMB_MAX - The maximum value that can be stored in the number part of a limb. - This is the same as `GMP_NUMB_MASK', but can be used for clarity - when doing comparisons rather than bit-wise operations. - - The term "nails" comes from finger or toe nails, which are at the -ends of a limb (arm or leg). "numb" is short for number, but is also -how the developers felt after trying for a long time to come up with -sensible names for these things. - - In the future (the distant future most likely) a non-zero nail might -be permitted, giving non-unique representations for numbers in a limb -vector. This would help vector processors since carries would only -ever need to propagate one or two limbs. - - -File: gmp.info, Node: Random Number Functions, Next: Formatted Output, Prev: Low-level Functions, Up: Top - -9 Random Number Functions -************************* - -Sequences of pseudo-random numbers in GMP are generated using a -variable of type `gmp_randstate_t', which holds an algorithm selection -and a current state. Such a variable must be initialized by a call to -one of the `gmp_randinit' functions, and can be seeded with one of the -`gmp_randseed' functions. - - The functions actually generating random numbers are described in -*Note Integer Random Numbers::, and *Note Miscellaneous Float -Functions::. - - The older style random number functions don't accept a -`gmp_randstate_t' parameter but instead share a global variable of that -type. They use a default algorithm and are currently not seeded -(though perhaps that will change in the future). The new functions -accepting a `gmp_randstate_t' are recommended for applications that -care about randomness. - -* Menu: - -* Random State Initialization:: -* Random State Seeding:: -* Random State Miscellaneous:: - - -File: gmp.info, Node: Random State Initialization, Next: Random State Seeding, Prev: Random Number Functions, Up: Random Number Functions - -9.1 Random State Initialization -=============================== - - -- Function: void gmp_randinit_default (gmp_randstate_t STATE) - Initialize STATE with a default algorithm. This will be a - compromise between speed and randomness, and is recommended for - applications with no special requirements. Currently this is - `gmp_randinit_mt'. - - -- Function: void gmp_randinit_mt (gmp_randstate_t STATE) - Initialize STATE for a Mersenne Twister algorithm. This algorithm - is fast and has good randomness properties. - - -- Function: void gmp_randinit_lc_2exp (gmp_randstate_t STATE, mpz_t - A, unsigned long C, mp_bitcnt_t M2EXP) - Initialize STATE with a linear congruential algorithm X = (A*X + - C) mod 2^M2EXP. - - The low bits of X in this algorithm are not very random. The least - significant bit will have a period no more than 2, and the second - bit no more than 4, etc. For this reason only the high half of - each X is actually used. - - When a random number of more than M2EXP/2 bits is to be generated, - multiple iterations of the recurrence are used and the results - concatenated. - - -- Function: int gmp_randinit_lc_2exp_size (gmp_randstate_t STATE, - mp_bitcnt_t SIZE) - Initialize STATE for a linear congruential algorithm as per - `gmp_randinit_lc_2exp'. A, C and M2EXP are selected from a table, - chosen so that SIZE bits (or more) of each X will be used, ie. - M2EXP/2 >= SIZE. - - If successful the return value is non-zero. If SIZE is bigger - than the table data provides then the return value is zero. The - maximum SIZE currently supported is 128. - - -- Function: void gmp_randinit_set (gmp_randstate_t ROP, - gmp_randstate_t OP) - Initialize ROP with a copy of the algorithm and state from OP. - - -- Function: void gmp_randinit (gmp_randstate_t STATE, - gmp_randalg_t ALG, ...) - *This function is obsolete.* - - Initialize STATE with an algorithm selected by ALG. The only - choice is `GMP_RAND_ALG_LC', which is `gmp_randinit_lc_2exp_size' - described above. A third parameter of type `unsigned long' is - required, this is the SIZE for that function. - `GMP_RAND_ALG_DEFAULT' or 0 are the same as `GMP_RAND_ALG_LC'. - - `gmp_randinit' sets bits in the global variable `gmp_errno' to - indicate an error. `GMP_ERROR_UNSUPPORTED_ARGUMENT' if ALG is - unsupported, or `GMP_ERROR_INVALID_ARGUMENT' if the SIZE parameter - is too big. It may be noted this error reporting is not thread - safe (a good reason to use `gmp_randinit_lc_2exp_size' instead). - - -- Function: void gmp_randclear (gmp_randstate_t STATE) - Free all memory occupied by STATE. - - -File: gmp.info, Node: Random State Seeding, Next: Random State Miscellaneous, Prev: Random State Initialization, Up: Random Number Functions - -9.2 Random State Seeding -======================== - - -- Function: void gmp_randseed (gmp_randstate_t STATE, mpz_t SEED) - -- Function: void gmp_randseed_ui (gmp_randstate_t STATE, - unsigned long int SEED) - Set an initial seed value into STATE. - - The size of a seed determines how many different sequences of - random numbers that it's possible to generate. The "quality" of - the seed is the randomness of a given seed compared to the - previous seed used, and this affects the randomness of separate - number sequences. The method for choosing a seed is critical if - the generated numbers are to be used for important applications, - such as generating cryptographic keys. - - Traditionally the system time has been used to seed, but care - needs to be taken with this. If an application seeds often and - the resolution of the system clock is low, then the same sequence - of numbers might be repeated. Also, the system time is quite easy - to guess, so if unpredictability is required then it should - definitely not be the only source for the seed value. On some - systems there's a special device `/dev/random' which provides - random data better suited for use as a seed. - - -File: gmp.info, Node: Random State Miscellaneous, Prev: Random State Seeding, Up: Random Number Functions - -9.3 Random State Miscellaneous -============================== - - -- Function: unsigned long gmp_urandomb_ui (gmp_randstate_t STATE, - unsigned long N) - Return a uniformly distributed random number of N bits, ie. in the - range 0 to 2^N-1 inclusive. N must be less than or equal to the - number of bits in an `unsigned long'. - - -- Function: unsigned long gmp_urandomm_ui (gmp_randstate_t STATE, - unsigned long N) - Return a uniformly distributed random number in the range 0 to - N-1, inclusive. - - -File: gmp.info, Node: Formatted Output, Next: Formatted Input, Prev: Random Number Functions, Up: Top - -10 Formatted Output -******************* - -* Menu: - -* Formatted Output Strings:: -* Formatted Output Functions:: -* C++ Formatted Output:: - - -File: gmp.info, Node: Formatted Output Strings, Next: Formatted Output Functions, Prev: Formatted Output, Up: Formatted Output - -10.1 Format Strings -=================== - -`gmp_printf' and friends accept format strings similar to the standard C -`printf' (*note Formatted Output: (libc)Formatted Output.). A format -specification is of the form - - % [flags] [width] [.[precision]] [type] conv - - GMP adds types `Z', `Q' and `F' for `mpz_t', `mpq_t' and `mpf_t' -respectively, `M' for `mp_limb_t', and `N' for an `mp_limb_t' array. -`Z', `Q', `M' and `N' behave like integers. `Q' will print a `/' and a -denominator, if needed. `F' behaves like a float. For example, - - mpz_t z; - gmp_printf ("%s is an mpz %Zd\n", "here", z); - - mpq_t q; - gmp_printf ("a hex rational: %#40Qx\n", q); - - mpf_t f; - int n; - gmp_printf ("fixed point mpf %.*Ff with %d digits\n", n, f, n); - - mp_limb_t l; - gmp_printf ("limb %Mu\n", l); - - const mp_limb_t *ptr; - mp_size_t size; - gmp_printf ("limb array %Nx\n", ptr, size); - - For `N' the limbs are expected least significant first, as per the -`mpn' functions (*note Low-level Functions::). A negative size can be -given to print the value as a negative. - - All the standard C `printf' types behave the same as the C library -`printf', and can be freely intermixed with the GMP extensions. In the -current implementation the standard parts of the format string are -simply handed to `printf' and only the GMP extensions handled directly. - - The flags accepted are as follows. GLIBC style ' is only for the -standard C types (not the GMP types), and only if the C library -supports it. - - 0 pad with zeros (rather than spaces) - # show the base with `0x', `0X' or `0' - + always show a sign - (space) show a space or a `-' sign - ' group digits, GLIBC style (not GMP types) - - The optional width and precision can be given as a number within the -format string, or as a `*' to take an extra parameter of type `int', the -same as the standard `printf'. - - The standard types accepted are as follows. `h' and `l' are -portable, the rest will depend on the compiler (or include files) for -the type and the C library for the output. - - h short - hh char - j intmax_t or uintmax_t - l long or wchar_t - ll long long - L long double - q quad_t or u_quad_t - t ptrdiff_t - z size_t - -The GMP types are - - F mpf_t, float conversions - Q mpq_t, integer conversions - M mp_limb_t, integer conversions - N mp_limb_t array, integer conversions - Z mpz_t, integer conversions - - The conversions accepted are as follows. `a' and `A' are always -supported for `mpf_t' but depend on the C library for standard C float -types. `m' and `p' depend on the C library. - - a A hex floats, C99 style - c character - d decimal integer - e E scientific format float - f fixed point float - i same as d - g G fixed or scientific float - m `strerror' string, GLIBC style - n store characters written so far - o octal integer - p pointer - s string - u unsigned integer - x X hex integer - - `o', `x' and `X' are unsigned for the standard C types, but for -types `Z', `Q' and `N' they are signed. `u' is not meaningful for `Z', -`Q' and `N'. - - `M' is a proxy for the C library `l' or `L', according to the size -of `mp_limb_t'. Unsigned conversions will be usual, but a signed -conversion can be used and will interpret the value as a twos complement -negative. - - `n' can be used with any type, even the GMP types. - - Other types or conversions that might be accepted by the C library -`printf' cannot be used through `gmp_printf', this includes for -instance extensions registered with GLIBC `register_printf_function'. -Also currently there's no support for POSIX `$' style numbered arguments -(perhaps this will be added in the future). - - The precision field has it's usual meaning for integer `Z' and float -`F' types, but is currently undefined for `Q' and should not be used -with that. - - `mpf_t' conversions only ever generate as many digits as can be -accurately represented by the operand, the same as `mpf_get_str' does. -Zeros will be used if necessary to pad to the requested precision. This -happens even for an `f' conversion of an `mpf_t' which is an integer, -for instance 2^1024 in an `mpf_t' of 128 bits precision will only -produce about 40 digits, then pad with zeros to the decimal point. An -empty precision field like `%.Fe' or `%.Ff' can be used to specifically -request just the significant digits. - - The decimal point character (or string) is taken from the current -locale settings on systems which provide `localeconv' (*note Locales -and Internationalization: (libc)Locales.). The C library will normally -do the same for standard float output. - - The format string is only interpreted as plain `char's, multibyte -characters are not recognised. Perhaps this will change in the future. - - -File: gmp.info, Node: Formatted Output Functions, Next: C++ Formatted Output, Prev: Formatted Output Strings, Up: Formatted Output - -10.2 Functions -============== - -Each of the following functions is similar to the corresponding C -library function. The basic `printf' forms take a variable argument -list. The `vprintf' forms take an argument pointer, see *Note Variadic -Functions: (libc)Variadic Functions, or `man 3 va_start'. - - It should be emphasised that if a format string is invalid, or the -arguments don't match what the format specifies, then the behaviour of -any of these functions will be unpredictable. GCC format string -checking is not available, since it doesn't recognise the GMP -extensions. - - The file based functions `gmp_printf' and `gmp_fprintf' will return --1 to indicate a write error. Output is not "atomic", so partial -output may be produced if a write error occurs. All the functions can -return -1 if the C library `printf' variant in use returns -1, but this -shouldn't normally occur. - - -- Function: int gmp_printf (const char *FMT, ...) - -- Function: int gmp_vprintf (const char *FMT, va_list AP) - Print to the standard output `stdout'. Return the number of - characters written, or -1 if an error occurred. - - -- Function: int gmp_fprintf (FILE *FP, const char *FMT, ...) - -- Function: int gmp_vfprintf (FILE *FP, const char *FMT, va_list AP) - Print to the stream FP. Return the number of characters written, - or -1 if an error occurred. - - -- Function: int gmp_sprintf (char *BUF, const char *FMT, ...) - -- Function: int gmp_vsprintf (char *BUF, const char *FMT, va_list AP) - Form a null-terminated string in BUF. Return the number of - characters written, excluding the terminating null. - - No overlap is permitted between the space at BUF and the string - FMT. - - These functions are not recommended, since there's no protection - against exceeding the space available at BUF. - - -- Function: int gmp_snprintf (char *BUF, size_t SIZE, const char - *FMT, ...) - -- Function: int gmp_vsnprintf (char *BUF, size_t SIZE, const char - *FMT, va_list AP) - Form a null-terminated string in BUF. No more than SIZE bytes - will be written. To get the full output, SIZE must be enough for - the string and null-terminator. - - The return value is the total number of characters which ought to - have been produced, excluding the terminating null. If RETVAL >= - SIZE then the actual output has been truncated to the first SIZE-1 - characters, and a null appended. - - No overlap is permitted between the region {BUF,SIZE} and the FMT - string. - - Notice the return value is in ISO C99 `snprintf' style. This is - so even if the C library `vsnprintf' is the older GLIBC 2.0.x - style. - - -- Function: int gmp_asprintf (char **PP, const char *FMT, ...) - -- Function: int gmp_vasprintf (char **PP, const char *FMT, va_list AP) - Form a null-terminated string in a block of memory obtained from - the current memory allocation function (*note Custom - Allocation::). The block will be the size of the string and - null-terminator. The address of the block in stored to *PP. The - return value is the number of characters produced, excluding the - null-terminator. - - Unlike the C library `asprintf', `gmp_asprintf' doesn't return -1 - if there's no more memory available, it lets the current allocation - function handle that. - - -- Function: int gmp_obstack_printf (struct obstack *OB, const char - *FMT, ...) - -- Function: int gmp_obstack_vprintf (struct obstack *OB, const char - *FMT, va_list AP) - Append to the current object in OB. The return value is the - number of characters written. A null-terminator is not written. - - FMT cannot be within the current object in OB, since that object - might move as it grows. - - These functions are available only when the C library provides the - obstack feature, which probably means only on GNU systems, see - *Note Obstacks: (libc)Obstacks. - - -File: gmp.info, Node: C++ Formatted Output, Prev: Formatted Output Functions, Up: Formatted Output - -10.3 C++ Formatted Output -========================= - -The following functions are provided in `libgmpxx' (*note Headers and -Libraries::), which is built if C++ support is enabled (*note Build -Options::). Prototypes are available from `'. - - -- Function: ostream& operator<< (ostream& STREAM, mpz_t OP) - Print OP to STREAM, using its `ios' formatting settings. - `ios::width' is reset to 0 after output, the same as the standard - `ostream operator<<' routines do. - - In hex or octal, OP is printed as a signed number, the same as for - decimal. This is unlike the standard `operator<<' routines on - `int' etc, which instead give twos complement. - - -- Function: ostream& operator<< (ostream& STREAM, mpq_t OP) - Print OP to STREAM, using its `ios' formatting settings. - `ios::width' is reset to 0 after output, the same as the standard - `ostream operator<<' routines do. - - Output will be a fraction like `5/9', or if the denominator is 1 - then just a plain integer like `123'. - - In hex or octal, OP is printed as a signed value, the same as for - decimal. If `ios::showbase' is set then a base indicator is shown - on both the numerator and denominator (if the denominator is - required). - - -- Function: ostream& operator<< (ostream& STREAM, mpf_t OP) - Print OP to STREAM, using its `ios' formatting settings. - `ios::width' is reset to 0 after output, the same as the standard - `ostream operator<<' routines do. - - The decimal point follows the standard library float `operator<<', - which on recent systems means the `std::locale' imbued on STREAM. - - Hex and octal are supported, unlike the standard `operator<<' on - `double'. The mantissa will be in hex or octal, the exponent will - be in decimal. For hex the exponent delimiter is an `@'. This is - as per `mpf_out_str'. - - `ios::showbase' is supported, and will put a base on the mantissa, - for example hex `0x1.8' or `0x0.8', or octal `01.4' or `00.4'. - This last form is slightly strange, but at least differentiates - itself from decimal. - - These operators mean that GMP types can be printed in the usual C++ -way, for example, - - mpz_t z; - int n; - ... - cout << "iteration " << n << " value " << z << "\n"; - - But note that `ostream' output (and `istream' input, *note C++ -Formatted Input::) is the only overloading available for the GMP types -and that for instance using `+' with an `mpz_t' will have unpredictable -results. For classes with overloading, see *Note C++ Class Interface::. - - -File: gmp.info, Node: Formatted Input, Next: C++ Class Interface, Prev: Formatted Output, Up: Top - -11 Formatted Input -****************** - -* Menu: - -* Formatted Input Strings:: -* Formatted Input Functions:: -* C++ Formatted Input:: - - -File: gmp.info, Node: Formatted Input Strings, Next: Formatted Input Functions, Prev: Formatted Input, Up: Formatted Input - -11.1 Formatted Input Strings -============================ - -`gmp_scanf' and friends accept format strings similar to the standard C -`scanf' (*note Formatted Input: (libc)Formatted Input.). A format -specification is of the form - - % [flags] [width] [type] conv - - GMP adds types `Z', `Q' and `F' for `mpz_t', `mpq_t' and `mpf_t' -respectively. `Z' and `Q' behave like integers. `Q' will read a `/' -and a denominator, if present. `F' behaves like a float. - - GMP variables don't require an `&' when passed to `gmp_scanf', since -they're already "call-by-reference". For example, - - /* to read say "a(5) = 1234" */ - int n; - mpz_t z; - gmp_scanf ("a(%d) = %Zd\n", &n, z); - - mpq_t q1, q2; - gmp_sscanf ("0377 + 0x10/0x11", "%Qi + %Qi", q1, q2); - - /* to read say "topleft (1.55,-2.66)" */ - mpf_t x, y; - char buf[32]; - gmp_scanf ("%31s (%Ff,%Ff)", buf, x, y); - - All the standard C `scanf' types behave the same as in the C library -`scanf', and can be freely intermixed with the GMP extensions. In the -current implementation the standard parts of the format string are -simply handed to `scanf' and only the GMP extensions handled directly. - - The flags accepted are as follows. `a' and `'' will depend on -support from the C library, and `'' cannot be used with GMP types. - - * read but don't store - a allocate a buffer (string conversions) - ' grouped digits, GLIBC style (not GMP - types) - - The standard types accepted are as follows. `h' and `l' are -portable, the rest will depend on the compiler (or include files) for -the type and the C library for the input. - - h short - hh char - j intmax_t or uintmax_t - l long int, double or wchar_t - ll long long - L long double - q quad_t or u_quad_t - t ptrdiff_t - z size_t - -The GMP types are - - F mpf_t, float conversions - Q mpq_t, integer conversions - Z mpz_t, integer conversions - - The conversions accepted are as follows. `p' and `[' will depend on -support from the C library, the rest are standard. - - c character or characters - d decimal integer - e E f g G float - i integer with base indicator - n characters read so far - o octal integer - p pointer - s string of non-whitespace characters - u decimal integer - x X hex integer - [ string of characters in a set - - `e', `E', `f', `g' and `G' are identical, they all read either fixed -point or scientific format, and either upper or lower case `e' for the -exponent in scientific format. - - C99 style hex float format (`printf %a', *note Formatted Output -Strings::) is always accepted for `mpf_t', but for the standard float -types it will depend on the C library. - - `x' and `X' are identical, both accept both upper and lower case -hexadecimal. - - `o', `u', `x' and `X' all read positive or negative values. For the -standard C types these are described as "unsigned" conversions, but -that merely affects certain overflow handling, negatives are still -allowed (per `strtoul', *note Parsing of Integers: (libc)Parsing of -Integers.). For GMP types there are no overflows, so `d' and `u' are -identical. - - `Q' type reads the numerator and (optional) denominator as given. -If the value might not be in canonical form then `mpq_canonicalize' -must be called before using it in any calculations (*note Rational -Number Functions::). - - `Qi' will read a base specification separately for the numerator and -denominator. For example `0x10/11' would be 16/11, whereas `0x10/0x11' -would be 16/17. - - `n' can be used with any of the types above, even the GMP types. -`*' to suppress assignment is allowed, though in that case it would do -nothing at all. - - Other conversions or types that might be accepted by the C library -`scanf' cannot be used through `gmp_scanf'. - - Whitespace is read and discarded before a field, except for `c' and -`[' conversions. - - For float conversions, the decimal point character (or string) -expected is taken from the current locale settings on systems which -provide `localeconv' (*note Locales and Internationalization: -(libc)Locales.). The C library will normally do the same for standard -float input. - - The format string is only interpreted as plain `char's, multibyte -characters are not recognised. Perhaps this will change in the future. - - -File: gmp.info, Node: Formatted Input Functions, Next: C++ Formatted Input, Prev: Formatted Input Strings, Up: Formatted Input - -11.2 Formatted Input Functions -============================== - -Each of the following functions is similar to the corresponding C -library function. The plain `scanf' forms take a variable argument -list. The `vscanf' forms take an argument pointer, see *Note Variadic -Functions: (libc)Variadic Functions, or `man 3 va_start'. - - It should be emphasised that if a format string is invalid, or the -arguments don't match what the format specifies, then the behaviour of -any of these functions will be unpredictable. GCC format string -checking is not available, since it doesn't recognise the GMP -extensions. - - No overlap is permitted between the FMT string and any of the results -produced. - - -- Function: int gmp_scanf (const char *FMT, ...) - -- Function: int gmp_vscanf (const char *FMT, va_list AP) - Read from the standard input `stdin'. - - -- Function: int gmp_fscanf (FILE *FP, const char *FMT, ...) - -- Function: int gmp_vfscanf (FILE *FP, const char *FMT, va_list AP) - Read from the stream FP. - - -- Function: int gmp_sscanf (const char *S, const char *FMT, ...) - -- Function: int gmp_vsscanf (const char *S, const char *FMT, va_list - AP) - Read from a null-terminated string S. - - The return value from each of these functions is the same as the -standard C99 `scanf', namely the number of fields successfully parsed -and stored. `%n' fields and fields read but suppressed by `*' don't -count towards the return value. - - If end of input (or a file error) is reached before a character for -a field or a literal, and if no previous non-suppressed fields have -matched, then the return value is `EOF' instead of 0. A whitespace -character in the format string is only an optional match and doesn't -induce an `EOF' in this fashion. Leading whitespace read and discarded -for a field don't count as characters for that field. - - For the GMP types, input parsing follows C99 rules, namely one -character of lookahead is used and characters are read while they -continue to meet the format requirements. If this doesn't provide a -complete number then the function terminates, with that field not -stored nor counted towards the return value. For instance with `mpf_t' -an input `1.23e-XYZ' would be read up to the `X' and that character -pushed back since it's not a digit. The string `1.23e-' would then be -considered invalid since an `e' must be followed by at least one digit. - - For the standard C types, in the current implementation GMP calls -the C library `scanf' functions, which might have looser rules about -what constitutes a valid input. - - Note that `gmp_sscanf' is the same as `gmp_fscanf' and only does one -character of lookahead when parsing. Although clearly it could look at -its entire input, it is deliberately made identical to `gmp_fscanf', -the same way C99 `sscanf' is the same as `fscanf'. - - -File: gmp.info, Node: C++ Formatted Input, Prev: Formatted Input Functions, Up: Formatted Input - -11.3 C++ Formatted Input -======================== - -The following functions are provided in `libgmpxx' (*note Headers and -Libraries::), which is built only if C++ support is enabled (*note -Build Options::). Prototypes are available from `'. - - -- Function: istream& operator>> (istream& STREAM, mpz_t ROP) - Read ROP from STREAM, using its `ios' formatting settings. - - -- Function: istream& operator>> (istream& STREAM, mpq_t ROP) - An integer like `123' will be read, or a fraction like `5/9'. No - whitespace is allowed around the `/'. If the fraction is not in - canonical form then `mpq_canonicalize' must be called (*note - Rational Number Functions::) before operating on it. - - As per integer input, an `0' or `0x' base indicator is read when - none of `ios::dec', `ios::oct' or `ios::hex' are set. This is - done separately for numerator and denominator, so that for instance - `0x10/11' is 16/11 and `0x10/0x11' is 16/17. - - -- Function: istream& operator>> (istream& STREAM, mpf_t ROP) - Read ROP from STREAM, using its `ios' formatting settings. - - Hex or octal floats are not supported, but might be in the future, - or perhaps it's best to accept only what the standard float - `operator>>' does. - - Note that digit grouping specified by the `istream' locale is -currently not accepted. Perhaps this will change in the future. - - - These operators mean that GMP types can be read in the usual C++ -way, for example, - - mpz_t z; - ... - cin >> z; - - But note that `istream' input (and `ostream' output, *note C++ -Formatted Output::) is the only overloading available for the GMP types -and that for instance using `+' with an `mpz_t' will have unpredictable -results. For classes with overloading, see *Note C++ Class Interface::. - - -File: gmp.info, Node: C++ Class Interface, Next: BSD Compatible Functions, Prev: Formatted Input, Up: Top - -12 C++ Class Interface -********************** - -This chapter describes the C++ class based interface to GMP. - - All GMP C language types and functions can be used in C++ programs, -since `gmp.h' has `extern "C"' qualifiers, but the class interface -offers overloaded functions and operators which may be more convenient. - - Due to the implementation of this interface, a reasonably recent C++ -compiler is required, one supporting namespaces, partial specialization -of templates and member templates. For GCC this means version 2.91 or -later. - - *Everything described in this chapter is to be considered preliminary -and might be subject to incompatible changes if some unforeseen -difficulty reveals itself.* - -* Menu: - -* C++ Interface General:: -* C++ Interface Integers:: -* C++ Interface Rationals:: -* C++ Interface Floats:: -* C++ Interface Random Numbers:: -* C++ Interface Limitations:: - - -File: gmp.info, Node: C++ Interface General, Next: C++ Interface Integers, Prev: C++ Class Interface, Up: C++ Class Interface - -12.1 C++ Interface General -========================== - -All the C++ classes and functions are available with - - #include - - Programs should be linked with the `libgmpxx' and `libgmp' -libraries. For example, - - g++ mycxxprog.cc -lgmpxx -lgmp - -The classes defined are - - -- Class: mpz_class - -- Class: mpq_class - -- Class: mpf_class - - The standard operators and various standard functions are overloaded -to allow arithmetic with these classes. For example, - - int - main (void) - { - mpz_class a, b, c; - - a = 1234; - b = "-5678"; - c = a+b; - cout << "sum is " << c << "\n"; - cout << "absolute value is " << abs(c) << "\n"; - - return 0; - } - - An important feature of the implementation is that an expression like -`a=b+c' results in a single call to the corresponding `mpz_add', -without using a temporary for the `b+c' part. Expressions which by -their nature imply intermediate values, like `a=b*c+d*e', still use -temporaries though. - - The classes can be freely intermixed in expressions, as can the -classes and the standard types `long', `unsigned long' and `double'. -Smaller types like `int' or `float' can also be intermixed, since C++ -will promote them. - - Note that `bool' is not accepted directly, but must be explicitly -cast to an `int' first. This is because C++ will automatically convert -any pointer to a `bool', so if GMP accepted `bool' it would make all -sorts of invalid class and pointer combinations compile but almost -certainly not do anything sensible. - - Conversions back from the classes to standard C++ types aren't done -automatically, instead member functions like `get_si' are provided (see -the following sections for details). - - Also there are no automatic conversions from the classes to the -corresponding GMP C types, instead a reference to the underlying C -object can be obtained with the following functions, - - -- Function: mpz_t mpz_class::get_mpz_t () - -- Function: mpq_t mpq_class::get_mpq_t () - -- Function: mpf_t mpf_class::get_mpf_t () - - These can be used to call a C function which doesn't have a C++ class -interface. For example to set `a' to the GCD of `b' and `c', - - mpz_class a, b, c; - ... - mpz_gcd (a.get_mpz_t(), b.get_mpz_t(), c.get_mpz_t()); - - In the other direction, a class can be initialized from the -corresponding GMP C type, or assigned to if an explicit constructor is -used. In both cases this makes a copy of the value, it doesn't create -any sort of association. For example, - - mpz_t z; - // ... init and calculate z ... - mpz_class x(z); - mpz_class y; - y = mpz_class (z); - - There are no namespace setups in `gmpxx.h', all types and functions -are simply put into the global namespace. This is what `gmp.h' has -done in the past, and continues to do for compatibility. The extras -provided by `gmpxx.h' follow GMP naming conventions and are unlikely to -clash with anything. - - -File: gmp.info, Node: C++ Interface Integers, Next: C++ Interface Rationals, Prev: C++ Interface General, Up: C++ Class Interface - -12.2 C++ Interface Integers -=========================== - - -- Function: void mpz_class::mpz_class (type N) - Construct an `mpz_class'. All the standard C++ types may be used, - except `long long' and `long double', and all the GMP C++ classes - can be used. Any necessary conversion follows the corresponding C - function, for example `double' follows `mpz_set_d' (*note - Assigning Integers::). - - -- Function: void mpz_class::mpz_class (mpz_t Z) - Construct an `mpz_class' from an `mpz_t'. The value in Z is - copied into the new `mpz_class', there won't be any permanent - association between it and Z. - - -- Function: void mpz_class::mpz_class (const char *S) - -- Function: void mpz_class::mpz_class (const char *S, int BASE = 0) - -- Function: void mpz_class::mpz_class (const string& S) - -- Function: void mpz_class::mpz_class (const string& S, int BASE = 0) - Construct an `mpz_class' converted from a string using - `mpz_set_str' (*note Assigning Integers::). - - If the string is not a valid integer, an `std::invalid_argument' - exception is thrown. The same applies to `operator='. - - -- Function: mpz_class operator/ (mpz_class A, mpz_class D) - -- Function: mpz_class operator% (mpz_class A, mpz_class D) - Divisions involving `mpz_class' round towards zero, as per the - `mpz_tdiv_q' and `mpz_tdiv_r' functions (*note Integer Division::). - This is the same as the C99 `/' and `%' operators. - - The `mpz_fdiv...' or `mpz_cdiv...' functions can always be called - directly if desired. For example, - - mpz_class q, a, d; - ... - mpz_fdiv_q (q.get_mpz_t(), a.get_mpz_t(), d.get_mpz_t()); - - -- Function: mpz_class abs (mpz_class OP1) - -- Function: int cmp (mpz_class OP1, type OP2) - -- Function: int cmp (type OP1, mpz_class OP2) - -- Function: bool mpz_class::fits_sint_p (void) - -- Function: bool mpz_class::fits_slong_p (void) - -- Function: bool mpz_class::fits_sshort_p (void) - -- Function: bool mpz_class::fits_uint_p (void) - -- Function: bool mpz_class::fits_ulong_p (void) - -- Function: bool mpz_class::fits_ushort_p (void) - -- Function: double mpz_class::get_d (void) - -- Function: long mpz_class::get_si (void) - -- Function: string mpz_class::get_str (int BASE = 10) - -- Function: unsigned long mpz_class::get_ui (void) - -- Function: int mpz_class::set_str (const char *STR, int BASE) - -- Function: int mpz_class::set_str (const string& STR, int BASE) - -- Function: int sgn (mpz_class OP) - -- Function: mpz_class sqrt (mpz_class OP) - These functions provide a C++ class interface to the corresponding - GMP C routines. - - `cmp' can be used with any of the classes or the standard C++ - types, except `long long' and `long double'. - - - Overloaded operators for combinations of `mpz_class' and `double' -are provided for completeness, but it should be noted that if the given -`double' is not an integer then the way any rounding is done is -currently unspecified. The rounding might take place at the start, in -the middle, or at the end of the operation, and it might change in the -future. - - Conversions between `mpz_class' and `double', however, are defined -to follow the corresponding C functions `mpz_get_d' and `mpz_set_d'. -And comparisons are always made exactly, as per `mpz_cmp_d'. - - -File: gmp.info, Node: C++ Interface Rationals, Next: C++ Interface Floats, Prev: C++ Interface Integers, Up: C++ Class Interface - -12.3 C++ Interface Rationals -============================ - -In all the following constructors, if a fraction is given then it -should be in canonical form, or if not then `mpq_class::canonicalize' -called. - - -- Function: void mpq_class::mpq_class (type OP) - -- Function: void mpq_class::mpq_class (integer NUM, integer DEN) - Construct an `mpq_class'. The initial value can be a single value - of any type, or a pair of integers (`mpz_class' or standard C++ - integer types) representing a fraction, except that `long long' - and `long double' are not supported. For example, - - mpq_class q (99); - mpq_class q (1.75); - mpq_class q (1, 3); - - -- Function: void mpq_class::mpq_class (mpq_t Q) - Construct an `mpq_class' from an `mpq_t'. The value in Q is - copied into the new `mpq_class', there won't be any permanent - association between it and Q. - - -- Function: void mpq_class::mpq_class (const char *S) - -- Function: void mpq_class::mpq_class (const char *S, int BASE = 0) - -- Function: void mpq_class::mpq_class (const string& S) - -- Function: void mpq_class::mpq_class (const string& S, int BASE = 0) - Construct an `mpq_class' converted from a string using - `mpq_set_str' (*note Initializing Rationals::). - - If the string is not a valid rational, an `std::invalid_argument' - exception is thrown. The same applies to `operator='. - - -- Function: void mpq_class::canonicalize () - Put an `mpq_class' into canonical form, as per *Note Rational - Number Functions::. All arithmetic operators require their - operands in canonical form, and will return results in canonical - form. - - -- Function: mpq_class abs (mpq_class OP) - -- Function: int cmp (mpq_class OP1, type OP2) - -- Function: int cmp (type OP1, mpq_class OP2) - -- Function: double mpq_class::get_d (void) - -- Function: string mpq_class::get_str (int BASE = 10) - -- Function: int mpq_class::set_str (const char *STR, int BASE) - -- Function: int mpq_class::set_str (const string& STR, int BASE) - -- Function: int sgn (mpq_class OP) - These functions provide a C++ class interface to the corresponding - GMP C routines. - - `cmp' can be used with any of the classes or the standard C++ - types, except `long long' and `long double'. - - -- Function: mpz_class& mpq_class::get_num () - -- Function: mpz_class& mpq_class::get_den () - Get a reference to an `mpz_class' which is the numerator or - denominator of an `mpq_class'. This can be used both for read and - write access. If the object returned is modified, it modifies the - original `mpq_class'. - - If direct manipulation might produce a non-canonical value, then - `mpq_class::canonicalize' must be called before further operations. - - -- Function: mpz_t mpq_class::get_num_mpz_t () - -- Function: mpz_t mpq_class::get_den_mpz_t () - Get a reference to the underlying `mpz_t' numerator or denominator - of an `mpq_class'. This can be passed to C functions expecting an - `mpz_t'. Any modifications made to the `mpz_t' will modify the - original `mpq_class'. - - If direct manipulation might produce a non-canonical value, then - `mpq_class::canonicalize' must be called before further operations. - - -- Function: istream& operator>> (istream& STREAM, mpq_class& ROP); - Read ROP from STREAM, using its `ios' formatting settings, the - same as `mpq_t operator>>' (*note C++ Formatted Input::). - - If the ROP read might not be in canonical form then - `mpq_class::canonicalize' must be called. - - -File: gmp.info, Node: C++ Interface Floats, Next: C++ Interface Random Numbers, Prev: C++ Interface Rationals, Up: C++ Class Interface - -12.4 C++ Interface Floats -========================= - -When an expression requires the use of temporary intermediate -`mpf_class' values, like `f=g*h+x*y', those temporaries will have the -same precision as the destination `f'. Explicit constructors can be -used if this doesn't suit. - - -- Function: mpf_class::mpf_class (type OP) - -- Function: mpf_class::mpf_class (type OP, unsigned long PREC) - Construct an `mpf_class'. Any standard C++ type can be used, - except `long long' and `long double', and any of the GMP C++ - classes can be used. - - If PREC is given, the initial precision is that value, in bits. If - PREC is not given, then the initial precision is determined by the - type of OP given. An `mpz_class', `mpq_class', or C++ builtin - type will give the default `mpf' precision (*note Initializing - Floats::). An `mpf_class' or expression will give the precision - of that value. The precision of a binary expression is the higher - of the two operands. - - mpf_class f(1.5); // default precision - mpf_class f(1.5, 500); // 500 bits (at least) - mpf_class f(x); // precision of x - mpf_class f(abs(x)); // precision of x - mpf_class f(-g, 1000); // 1000 bits (at least) - mpf_class f(x+y); // greater of precisions of x and y - - -- Function: void mpf_class::mpf_class (const char *S) - -- Function: void mpf_class::mpf_class (const char *S, unsigned long - PREC, int BASE = 0) - -- Function: void mpf_class::mpf_class (const string& S) - -- Function: void mpf_class::mpf_class (const string& S, unsigned long - PREC, int BASE = 0) - Construct an `mpf_class' converted from a string using - `mpf_set_str' (*note Assigning Floats::). If PREC is given, the - initial precision is that value, in bits. If not, the default - `mpf' precision (*note Initializing Floats::) is used. - - If the string is not a valid float, an `std::invalid_argument' - exception is thrown. The same applies to `operator='. - - -- Function: mpf_class& mpf_class::operator= (type OP) - Convert and store the given OP value to an `mpf_class' object. The - same types are accepted as for the constructors above. - - Note that `operator=' only stores a new value, it doesn't copy or - change the precision of the destination, instead the value is - truncated if necessary. This is the same as `mpf_set' etc. Note - in particular this means for `mpf_class' a copy constructor is not - the same as a default constructor plus assignment. - - mpf_class x (y); // x created with precision of y - - mpf_class x; // x created with default precision - x = y; // value truncated to that precision - - Applications using templated code may need to be careful about the - assumptions the code makes in this area, when working with - `mpf_class' values of various different or non-default precisions. - For instance implementations of the standard `complex' template - have been seen in both styles above, though of course `complex' is - normally only actually specified for use with the builtin float - types. - - -- Function: mpf_class abs (mpf_class OP) - -- Function: mpf_class ceil (mpf_class OP) - -- Function: int cmp (mpf_class OP1, type OP2) - -- Function: int cmp (type OP1, mpf_class OP2) - -- Function: bool mpf_class::fits_sint_p (void) - -- Function: bool mpf_class::fits_slong_p (void) - -- Function: bool mpf_class::fits_sshort_p (void) - -- Function: bool mpf_class::fits_uint_p (void) - -- Function: bool mpf_class::fits_ulong_p (void) - -- Function: bool mpf_class::fits_ushort_p (void) - -- Function: mpf_class floor (mpf_class OP) - -- Function: mpf_class hypot (mpf_class OP1, mpf_class OP2) - -- Function: double mpf_class::get_d (void) - -- Function: long mpf_class::get_si (void) - -- Function: string mpf_class::get_str (mp_exp_t& EXP, int BASE = 10, - size_t DIGITS = 0) - -- Function: unsigned long mpf_class::get_ui (void) - -- Function: int mpf_class::set_str (const char *STR, int BASE) - -- Function: int mpf_class::set_str (const string& STR, int BASE) - -- Function: int sgn (mpf_class OP) - -- Function: mpf_class sqrt (mpf_class OP) - -- Function: mpf_class trunc (mpf_class OP) - These functions provide a C++ class interface to the corresponding - GMP C routines. - - `cmp' can be used with any of the classes or the standard C++ - types, except `long long' and `long double'. - - The accuracy provided by `hypot' is not currently guaranteed. - - -- Function: mp_bitcnt_t mpf_class::get_prec () - -- Function: void mpf_class::set_prec (mp_bitcnt_t PREC) - -- Function: void mpf_class::set_prec_raw (mp_bitcnt_t PREC) - Get or set the current precision of an `mpf_class'. - - The restrictions described for `mpf_set_prec_raw' (*note - Initializing Floats::) apply to `mpf_class::set_prec_raw'. Note - in particular that the `mpf_class' must be restored to it's - allocated precision before being destroyed. This must be done by - application code, there's no automatic mechanism for it. - - -File: gmp.info, Node: C++ Interface Random Numbers, Next: C++ Interface Limitations, Prev: C++ Interface Floats, Up: C++ Class Interface - -12.5 C++ Interface Random Numbers -================================= - - -- Class: gmp_randclass - The C++ class interface to the GMP random number functions uses - `gmp_randclass' to hold an algorithm selection and current state, - as per `gmp_randstate_t'. - - -- Function: gmp_randclass::gmp_randclass (void (*RANDINIT) - (gmp_randstate_t, ...), ...) - Construct a `gmp_randclass', using a call to the given RANDINIT - function (*note Random State Initialization::). The arguments - expected are the same as RANDINIT, but with `mpz_class' instead of - `mpz_t'. For example, - - gmp_randclass r1 (gmp_randinit_default); - gmp_randclass r2 (gmp_randinit_lc_2exp_size, 32); - gmp_randclass r3 (gmp_randinit_lc_2exp, a, c, m2exp); - gmp_randclass r4 (gmp_randinit_mt); - - `gmp_randinit_lc_2exp_size' will fail if the size requested is too - big, an `std::length_error' exception is thrown in that case. - - -- Function: gmp_randclass::gmp_randclass (gmp_randalg_t ALG, ...) - Construct a `gmp_randclass' using the same parameters as - `gmp_randinit' (*note Random State Initialization::). This - function is obsolete and the above RANDINIT style should be - preferred. - - -- Function: void gmp_randclass::seed (unsigned long int S) - -- Function: void gmp_randclass::seed (mpz_class S) - Seed a random number generator. See *note Random Number - Functions::, for how to choose a good seed. - - -- Function: mpz_class gmp_randclass::get_z_bits (unsigned long BITS) - -- Function: mpz_class gmp_randclass::get_z_bits (mpz_class BITS) - Generate a random integer with a specified number of bits. - - -- Function: mpz_class gmp_randclass::get_z_range (mpz_class N) - Generate a random integer in the range 0 to N-1 inclusive. - - -- Function: mpf_class gmp_randclass::get_f () - -- Function: mpf_class gmp_randclass::get_f (unsigned long PREC) - Generate a random float F in the range 0 <= F < 1. F will be to - PREC bits precision, or if PREC is not given then to the precision - of the destination. For example, - - gmp_randclass r; - ... - mpf_class f (0, 512); // 512 bits precision - f = r.get_f(); // random number, 512 bits - - -File: gmp.info, Node: C++ Interface Limitations, Prev: C++ Interface Random Numbers, Up: C++ Class Interface - -12.6 C++ Interface Limitations -============================== - -`mpq_class' and Templated Reading - A generic piece of template code probably won't know that - `mpq_class' requires a `canonicalize' call if inputs read with - `operator>>' might be non-canonical. This can lead to incorrect - results. - - `operator>>' behaves as it does for reasons of efficiency. A - canonicalize can be quite time consuming on large operands, and is - best avoided if it's not necessary. - - But this potential difficulty reduces the usefulness of - `mpq_class'. Perhaps a mechanism to tell `operator>>' what to do - will be adopted in the future, maybe a preprocessor define, a - global flag, or an `ios' flag pressed into service. Or maybe, at - the risk of inconsistency, the `mpq_class' `operator>>' could - canonicalize and leave `mpq_t' `operator>>' not doing so, for use - on those occasions when that's acceptable. Send feedback or - alternate ideas to . - -Subclassing - Subclassing the GMP C++ classes works, but is not currently - recommended. - - Expressions involving subclasses resolve correctly (or seem to), - but in normal C++ fashion the subclass doesn't inherit - constructors and assignments. There's many of those in the GMP - classes, and a good way to reestablish them in a subclass is not - yet provided. - -Templated Expressions - A subtle difficulty exists when using expressions together with - application-defined template functions. Consider the following, - with `T' intended to be some numeric type, - - template - T fun (const T &, const T &); - - When used with, say, plain `mpz_class' variables, it works fine: - `T' is resolved as `mpz_class'. - - mpz_class f(1), g(2); - fun (f, g); // Good - - But when one of the arguments is an expression, it doesn't work. - - mpz_class f(1), g(2), h(3); - fun (f, g+h); // Bad - - This is because `g+h' ends up being a certain expression template - type internal to `gmpxx.h', which the C++ template resolution - rules are unable to automatically convert to `mpz_class'. The - workaround is simply to add an explicit cast. - - mpz_class f(1), g(2), h(3); - fun (f, mpz_class(g+h)); // Good - - Similarly, within `fun' it may be necessary to cast an expression - to type `T' when calling a templated `fun2'. - - template - void fun (T f, T g) - { - fun2 (f, f+g); // Bad - } - - template - void fun (T f, T g) - { - fun2 (f, T(f+g)); // Good - } - - -File: gmp.info, Node: BSD Compatible Functions, Next: Custom Allocation, Prev: C++ Class Interface, Up: Top - -13 Berkeley MP Compatible Functions -*********************************** - -These functions are intended to be fully compatible with the Berkeley MP -library which is available on many BSD derived U*ix systems. The -`--enable-mpbsd' option must be used when building GNU MP to make these -available (*note Installing GMP::). - - The original Berkeley MP library has a usage restriction: you cannot -use the same variable as both source and destination in a single -function call. The compatible functions in GNU MP do not share this -restriction--inputs and outputs may overlap. - - It is not recommended that new programs are written using these -functions. Apart from the incomplete set of functions, the interface -for initializing `MINT' objects is more error prone, and the `pow' -function collides with `pow' in `libm.a'. - - Include the header `mp.h' to get the definition of the necessary -types and functions. If you are on a BSD derived system, make sure to -include GNU `mp.h' if you are going to link the GNU `libmp.a' to your -program. This means that you probably need to give the `-I

' -option to the compiler, where `' is the directory where you have -GNU `mp.h'. - - -- Function: MINT * itom (signed short int INITIAL_VALUE) - Allocate an integer consisting of a `MINT' object and dynamic limb - space. Initialize the integer to INITIAL_VALUE. Return a pointer - to the `MINT' object. - - -- Function: MINT * xtom (char *INITIAL_VALUE) - Allocate an integer consisting of a `MINT' object and dynamic limb - space. Initialize the integer from INITIAL_VALUE, a hexadecimal, - null-terminated C string. Return a pointer to the `MINT' object. - - -- Function: void move (MINT *SRC, MINT *DEST) - Set DEST to SRC by copying. Both variables must be previously - initialized. - - -- Function: void madd (MINT *SRC_1, MINT *SRC_2, MINT *DESTINATION) - Add SRC_1 and SRC_2 and put the sum in DESTINATION. - - -- Function: void msub (MINT *SRC_1, MINT *SRC_2, MINT *DESTINATION) - Subtract SRC_2 from SRC_1 and put the difference in DESTINATION. - - -- Function: void mult (MINT *SRC_1, MINT *SRC_2, MINT *DESTINATION) - Multiply SRC_1 and SRC_2 and put the product in DESTINATION. - - -- Function: void mdiv (MINT *DIVIDEND, MINT *DIVISOR, MINT *QUOTIENT, - MINT *REMAINDER) - -- Function: void sdiv (MINT *DIVIDEND, signed short int DIVISOR, MINT - *QUOTIENT, signed short int *REMAINDER) - Set QUOTIENT to DIVIDEND/DIVISOR, and REMAINDER to DIVIDEND mod - DIVISOR. The quotient is rounded towards zero; the remainder has - the same sign as the dividend unless it is zero. - - Some implementations of these functions work differently--or not - at all--for negative arguments. - - -- Function: void msqrt (MINT *OP, MINT *ROOT, MINT *REMAINDER) - Set ROOT to the truncated integer part of the square root of OP, - like `mpz_sqrt'. Set REMAINDER to OP-ROOT*ROOT, i.e. zero if OP - is a perfect square. - - If ROOT and REMAINDER are the same variable, the results are - undefined. - - -- Function: void pow (MINT *BASE, MINT *EXP, MINT *MOD, MINT *DEST) - Set DEST to (BASE raised to EXP) modulo MOD. - - Note that the name `pow' clashes with `pow' from the standard C - math library (*note Exponentiation and Logarithms: (libc)Exponents - and Logarithms.). An application will only be able to use one or - the other. - - -- Function: void rpow (MINT *BASE, signed short int EXP, MINT *DEST) - Set DEST to BASE raised to EXP. - - -- Function: void gcd (MINT *OP1, MINT *OP2, MINT *RES) - Set RES to the greatest common divisor of OP1 and OP2. - - -- Function: int mcmp (MINT *OP1, MINT *OP2) - Compare OP1 and OP2. Return a positive value if OP1 > OP2, zero - if OP1 = OP2, and a negative value if OP1 < OP2. - - -- Function: void min (MINT *DEST) - Input a decimal string from `stdin', and put the read integer in - DEST. SPC and TAB are allowed in the number string, and are - ignored. - - -- Function: void mout (MINT *SRC) - Output SRC to `stdout', as a decimal string. Also output a - newline. - - -- Function: char * mtox (MINT *OP) - Convert OP to a hexadecimal string, and return a pointer to the - string. The returned string is allocated using the default memory - allocation function, `malloc' by default. It will be - `strlen(str)+1' bytes, that being exactly enough for the string - and null-terminator. - - -- Function: void mfree (MINT *OP) - De-allocate, the space used by OP. *This function should only be - passed a value returned by `itom' or `xtom'.* - - -File: gmp.info, Node: Custom Allocation, Next: Language Bindings, Prev: BSD Compatible Functions, Up: Top - -14 Custom Allocation -******************** - -By default GMP uses `malloc', `realloc' and `free' for memory -allocation, and if they fail GMP prints a message to the standard error -output and terminates the program. - - Alternate functions can be specified, to allocate memory in a -different way or to have a different error action on running out of -memory. - - This feature is available in the Berkeley compatibility library -(*note BSD Compatible Functions::) as well as the main GMP library. - - -- Function: void mp_set_memory_functions ( - void *(*ALLOC_FUNC_PTR) (size_t), - void *(*REALLOC_FUNC_PTR) (void *, size_t, size_t), - void (*FREE_FUNC_PTR) (void *, size_t)) - Replace the current allocation functions from the arguments. If - an argument is `NULL', the corresponding default function is used. - - These functions will be used for all memory allocation done by - GMP, apart from temporary space from `alloca' if that function is - available and GMP is configured to use it (*note Build Options::). - - *Be sure to call `mp_set_memory_functions' only when there are no - active GMP objects allocated using the previous memory functions! - Usually that means calling it before any other GMP function.* - - The functions supplied should fit the following declarations: - - -- Function: void * allocate_function (size_t ALLOC_SIZE) - Return a pointer to newly allocated space with at least ALLOC_SIZE - bytes. - - -- Function: void * reallocate_function (void *PTR, size_t OLD_SIZE, - size_t NEW_SIZE) - Resize a previously allocated block PTR of OLD_SIZE bytes to be - NEW_SIZE bytes. - - The block may be moved if necessary or if desired, and in that - case the smaller of OLD_SIZE and NEW_SIZE bytes must be copied to - the new location. The return value is a pointer to the resized - block, that being the new location if moved or just PTR if not. - - PTR is never `NULL', it's always a previously allocated block. - NEW_SIZE may be bigger or smaller than OLD_SIZE. - - -- Function: void free_function (void *PTR, size_t SIZE) - De-allocate the space pointed to by PTR. - - PTR is never `NULL', it's always a previously allocated block of - SIZE bytes. - - A "byte" here means the unit used by the `sizeof' operator. - - The OLD_SIZE parameters to REALLOCATE_FUNCTION and FREE_FUNCTION are -passed for convenience, but of course can be ignored if not needed. -The default functions using `malloc' and friends for instance don't use -them. - - No error return is allowed from any of these functions, if they -return then they must have performed the specified operation. In -particular note that ALLOCATE_FUNCTION or REALLOCATE_FUNCTION mustn't -return `NULL'. - - Getting a different fatal error action is a good use for custom -allocation functions, for example giving a graphical dialog rather than -the default print to `stderr'. How much is possible when genuinely out -of memory is another question though. - - There's currently no defined way for the allocation functions to -recover from an error such as out of memory, they must terminate -program execution. A `longjmp' or throwing a C++ exception will have -undefined results. This may change in the future. - - GMP may use allocated blocks to hold pointers to other allocated -blocks. This will limit the assumptions a conservative garbage -collection scheme can make. - - Since the default GMP allocation uses `malloc' and friends, those -functions will be linked in even if the first thing a program does is an -`mp_set_memory_functions'. It's necessary to change the GMP sources if -this is a problem. - - - -- Function: void mp_get_memory_functions ( - void *(**ALLOC_FUNC_PTR) (size_t), - void *(**REALLOC_FUNC_PTR) (void *, size_t, size_t), - void (**FREE_FUNC_PTR) (void *, size_t)) - Get the current allocation functions, storing function pointers to - the locations given by the arguments. If an argument is `NULL', - that function pointer is not stored. - - For example, to get just the current free function, - - void (*freefunc) (void *, size_t); - - mp_get_memory_functions (NULL, NULL, &freefunc); - - -File: gmp.info, Node: Language Bindings, Next: Algorithms, Prev: Custom Allocation, Up: Top - -15 Language Bindings -******************** - -The following packages and projects offer access to GMP from languages -other than C, though perhaps with varying levels of functionality and -efficiency. - - -C++ - * GMP C++ class interface, *note C++ Class Interface:: - Straightforward interface, expression templates to eliminate - temporaries. - - * ALP `http://www-sop.inria.fr/saga/logiciels/ALP/' - Linear algebra and polynomials using templates. - - * Arithmos `http://www.win.ua.ac.be/~cant/arithmos/' - Rationals with infinities and square roots. - - * CLN `http://www.ginac.de/CLN/' - High level classes for arithmetic. - - * LiDIA `http://www.cdc.informatik.tu-darmstadt.de/TI/LiDIA/' - A C++ library for computational number theory. - - * Linbox `http://www.linalg.org/' - Sparse vectors and matrices. - - * NTL `http://www.shoup.net/ntl/' - A C++ number theory library. - -Fortran - * Omni F77 `http://phase.hpcc.jp/Omni/home.html' - Arbitrary precision floats. - -Haskell - * Glasgow Haskell Compiler `http://www.haskell.org/ghc/' - -Java - * Kaffe `http://www.kaffe.org/' - - * Kissme `http://kissme.sourceforge.net/' - -Lisp - * GNU Common Lisp `http://www.gnu.org/software/gcl/gcl.html' - - * Librep `http://librep.sourceforge.net/' - - * XEmacs (21.5.18 beta and up) `http://www.xemacs.org' - Optional big integers, rationals and floats using GMP. - -M4 - * GNU m4 betas `http://www.seindal.dk/rene/gnu/' - Optionally provides an arbitrary precision `mpeval'. - -ML - * MLton compiler `http://mlton.org/' - -Objective Caml - * MLGMP `http://www.di.ens.fr/~monniaux/programmes.html.en' - - * Numerix `http://pauillac.inria.fr/~quercia/' - Optionally using GMP. - -Oz - * Mozart `http://www.mozart-oz.org/' - -Pascal - * GNU Pascal Compiler `http://www.gnu-pascal.de/' - GMP unit. - - * Numerix `http://pauillac.inria.fr/~quercia/' - For Free Pascal, optionally using GMP. - -Perl - * GMP module, see `demos/perl' in the GMP sources (*note - Demonstration Programs::). - - * Math::GMP `http://www.cpan.org/' - Compatible with Math::BigInt, but not as many functions as - the GMP module above. - - * Math::BigInt::GMP `http://www.cpan.org/' - Plug Math::GMP into normal Math::BigInt operations. - -Pike - * mpz module in the standard distribution, - `http://pike.ida.liu.se/' - -Prolog - * SWI Prolog `http://www.swi-prolog.org/' - Arbitrary precision floats. - -Python - * mpz module in the standard distribution, - `http://www.python.org/' - - * GMPY `http://gmpy.sourceforge.net/' - -Scheme - * GNU Guile (upcoming 1.8) - `http://www.gnu.org/software/guile/guile.html' - - * RScheme `http://www.rscheme.org/' - - * STklos `http://www.stklos.org/' - -Smalltalk - * GNU Smalltalk - `http://www.smalltalk.org/versions/GNUSmalltalk.html' - -Other - * Axiom `http://savannah.nongnu.org/projects/axiom' - Computer algebra using GCL. - - * DrGenius `http://drgenius.seul.org/' - Geometry system and mathematical programming language. - - * GiNaC `http://www.ginac.de/' - C++ computer algebra using CLN. - - * GOO `http://www.googoogaga.org/' - Dynamic object oriented language. - - * Maxima `http://www.ma.utexas.edu/users/wfs/maxima.html' - Macsyma computer algebra using GCL. - - * Q `http://q-lang.sourceforge.net/' - Equational programming system. - - * Regina `http://regina.sourceforge.net/' - Topological calculator. - - * Yacas `http://www.xs4all.nl/~apinkus/yacas.html' - Yet another computer algebra system. - - - -File: gmp.info, Node: Algorithms, Next: Internals, Prev: Language Bindings, Up: Top - -16 Algorithms -************* - -This chapter is an introduction to some of the algorithms used for -various GMP operations. The code is likely to be hard to understand -without knowing something about the algorithms. - - Some GMP internals are mentioned, but applications that expect to be -compatible with future GMP releases should take care to use only the -documented functions. - -* Menu: - -* Multiplication Algorithms:: -* Division Algorithms:: -* Greatest Common Divisor Algorithms:: -* Powering Algorithms:: -* Root Extraction Algorithms:: -* Radix Conversion Algorithms:: -* Other Algorithms:: -* Assembly Coding:: - - -File: gmp.info, Node: Multiplication Algorithms, Next: Division Algorithms, Prev: Algorithms, Up: Algorithms - -16.1 Multiplication -=================== - -NxN limb multiplications and squares are done using one of five -algorithms, as the size N increases. - - Algorithm Threshold - Basecase (none) - Karatsuba `MUL_TOOM22_THRESHOLD' - Toom-3 `MUL_TOOM33_THRESHOLD' - Toom-4 `MUL_TOOM44_THRESHOLD' - FFT `MUL_FFT_THRESHOLD' - - Similarly for squaring, with the `SQR' thresholds. - - NxM multiplications of operands with different sizes above -`MUL_TOOM22_THRESHOLD' are currently done by special Toom-inspired -algorithms or directly with FFT, depending on operand size (*note -Unbalanced Multiplication::). - -* Menu: - -* Basecase Multiplication:: -* Karatsuba Multiplication:: -* Toom 3-Way Multiplication:: -* Toom 4-Way Multiplication:: -* FFT Multiplication:: -* Other Multiplication:: -* Unbalanced Multiplication:: - - -File: gmp.info, Node: Basecase Multiplication, Next: Karatsuba Multiplication, Prev: Multiplication Algorithms, Up: Multiplication Algorithms - -16.1.1 Basecase Multiplication ------------------------------- - -Basecase NxM multiplication is a straightforward rectangular set of -cross-products, the same as long multiplication done by hand and for -that reason sometimes known as the schoolbook or grammar school method. -This is an O(N*M) algorithm. See Knuth section 4.3.1 algorithm M -(*note References::), and the `mpn/generic/mul_basecase.c' code. - - Assembly implementations of `mpn_mul_basecase' are essentially the -same as the generic C code, but have all the usual assembly tricks and -obscurities introduced for speed. - - A square can be done in roughly half the time of a multiply, by -using the fact that the cross products above and below the diagonal are -the same. A triangle of products below the diagonal is formed, doubled -(left shift by one bit), and then the products on the diagonal added. -This can be seen in `mpn/generic/sqr_basecase.c'. Again the assembly -implementations take essentially the same approach. - - u0 u1 u2 u3 u4 - +---+---+---+---+---+ - u0 | d | | | | | - +---+---+---+---+---+ - u1 | | d | | | | - +---+---+---+---+---+ - u2 | | | d | | | - +---+---+---+---+---+ - u3 | | | | d | | - +---+---+---+---+---+ - u4 | | | | | d | - +---+---+---+---+---+ - - In practice squaring isn't a full 2x faster than multiplying, it's -usually around 1.5x. Less than 1.5x probably indicates -`mpn_sqr_basecase' wants improving on that CPU. - - On some CPUs `mpn_mul_basecase' can be faster than the generic C -`mpn_sqr_basecase' on some small sizes. `SQR_BASECASE_THRESHOLD' is -the size at which to use `mpn_sqr_basecase', this will be zero if that -routine should be used always. - - -File: gmp.info, Node: Karatsuba Multiplication, Next: Toom 3-Way Multiplication, Prev: Basecase Multiplication, Up: Multiplication Algorithms - -16.1.2 Karatsuba Multiplication -------------------------------- - -The Karatsuba multiplication algorithm is described in Knuth section -4.3.3 part A, and various other textbooks. A brief description is -given here. - - The inputs x and y are treated as each split into two parts of equal -length (or the most significant part one limb shorter if N is odd). - - high low - +----------+----------+ - | x1 | x0 | - +----------+----------+ - - +----------+----------+ - | y1 | y0 | - +----------+----------+ - - Let b be the power of 2 where the split occurs, ie. if x0 is k limbs -(y0 the same) then b=2^(k*mp_bits_per_limb). With that x=x1*b+x0 and -y=y1*b+y0, and the following holds, - - x*y = (b^2+b)*x1*y1 - b*(x1-x0)*(y1-y0) + (b+1)*x0*y0 - - This formula means doing only three multiplies of (N/2)x(N/2) limbs, -whereas a basecase multiply of NxN limbs is equivalent to four -multiplies of (N/2)x(N/2). The factors (b^2+b) etc represent the -positions where the three products must be added. - - high low - +--------+--------+ +--------+--------+ - | x1*y1 | | x0*y0 | - +--------+--------+ +--------+--------+ - +--------+--------+ - add | x1*y1 | - +--------+--------+ - +--------+--------+ - add | x0*y0 | - +--------+--------+ - +--------+--------+ - sub | (x1-x0)*(y1-y0) | - +--------+--------+ - - The term (x1-x0)*(y1-y0) is best calculated as an absolute value, -and the sign used to choose to add or subtract. Notice the sum -high(x0*y0)+low(x1*y1) occurs twice, so it's possible to do 5*k limb -additions, rather than 6*k, but in GMP extra function call overheads -outweigh the saving. - - Squaring is similar to multiplying, but with x=y the formula reduces -to an equivalent with three squares, - - x^2 = (b^2+b)*x1^2 - b*(x1-x0)^2 + (b+1)*x0^2 - - The final result is accumulated from those three squares the same -way as for the three multiplies above. The middle term (x1-x0)^2 is now -always positive. - - A similar formula for both multiplying and squaring can be -constructed with a middle term (x1+x0)*(y1+y0). But those sums can -exceed k limbs, leading to more carry handling and additions than the -form above. - - Karatsuba multiplication is asymptotically an O(N^1.585) algorithm, -the exponent being log(3)/log(2), representing 3 multiplies each 1/2 -the size of the inputs. This is a big improvement over the basecase -multiply at O(N^2) and the advantage soon overcomes the extra additions -Karatsuba performs. `MUL_TOOM22_THRESHOLD' can be as little as 10 -limbs. The `SQR' threshold is usually about twice the `MUL'. - - The basecase algorithm will take a time of the form M(N) = a*N^2 + -b*N + c and the Karatsuba algorithm K(N) = 3*M(N/2) + d*N + e, which -expands to K(N) = 3/4*a*N^2 + 3/2*b*N + 3*c + d*N + e. The factor 3/4 -for a means per-crossproduct speedups in the basecase code will -increase the threshold since they benefit M(N) more than K(N). And -conversely the 3/2 for b means linear style speedups of b will increase -the threshold since they benefit K(N) more than M(N). The latter can -be seen for instance when adding an optimized `mpn_sqr_diagonal' to -`mpn_sqr_basecase'. Of course all speedups reduce total time, and in -that sense the algorithm thresholds are merely of academic interest. - - -File: gmp.info, Node: Toom 3-Way Multiplication, Next: Toom 4-Way Multiplication, Prev: Karatsuba Multiplication, Up: Multiplication Algorithms - -16.1.3 Toom 3-Way Multiplication --------------------------------- - -The Karatsuba formula is the simplest case of a general approach to -splitting inputs that leads to both Toom and FFT algorithms. A -description of Toom can be found in Knuth section 4.3.3, with an -example 3-way calculation after Theorem A. The 3-way form used in GMP -is described here. - - The operands are each considered split into 3 pieces of equal length -(or the most significant part 1 or 2 limbs shorter than the other two). - - high low - +----------+----------+----------+ - | x2 | x1 | x0 | - +----------+----------+----------+ - - +----------+----------+----------+ - | y2 | y1 | y0 | - +----------+----------+----------+ - -These parts are treated as the coefficients of two polynomials - - X(t) = x2*t^2 + x1*t + x0 - Y(t) = y2*t^2 + y1*t + y0 - - Let b equal the power of 2 which is the size of the x0, x1, y0 and -y1 pieces, ie. if they're k limbs each then b=2^(k*mp_bits_per_limb). -With this x=X(b) and y=Y(b). - - Let a polynomial W(t)=X(t)*Y(t) and suppose its coefficients are - - W(t) = w4*t^4 + w3*t^3 + w2*t^2 + w1*t + w0 - - The w[i] are going to be determined, and when they are they'll give -the final result using w=W(b), since x*y=X(b)*Y(b)=W(b). The -coefficients will be roughly b^2 each, and the final W(b) will be an -addition like, - - high low - +-------+-------+ - | w4 | - +-------+-------+ - +--------+-------+ - | w3 | - +--------+-------+ - +--------+-------+ - | w2 | - +--------+-------+ - +--------+-------+ - | w1 | - +--------+-------+ - +-------+-------+ - | w0 | - +-------+-------+ - - The w[i] coefficients could be formed by a simple set of cross -products, like w4=x2*y2, w3=x2*y1+x1*y2, w2=x2*y0+x1*y1+x0*y2 etc, but -this would need all nine x[i]*y[j] for i,j=0,1,2, and would be -equivalent merely to a basecase multiply. Instead the following -approach is used. - - X(t) and Y(t) are evaluated and multiplied at 5 points, giving -values of W(t) at those points. In GMP the following points are used, - - Point Value - t=0 x0 * y0, which gives w0 immediately - t=1 (x2+x1+x0) * (y2+y1+y0) - t=-1 (x2-x1+x0) * (y2-y1+y0) - t=2 (4*x2+2*x1+x0) * (4*y2+2*y1+y0) - t=inf x2 * y2, which gives w4 immediately - - At t=-1 the values can be negative and that's handled using the -absolute values and tracking the sign separately. At t=inf the value -is actually X(t)*Y(t)/t^4 in the limit as t approaches infinity, but -it's much easier to think of as simply x2*y2 giving w4 immediately -(much like x0*y0 at t=0 gives w0 immediately). - - Each of the points substituted into W(t)=w4*t^4+...+w0 gives a -linear combination of the w[i] coefficients, and the value of those -combinations has just been calculated. - - W(0) = w0 - W(1) = w4 + w3 + w2 + w1 + w0 - W(-1) = w4 - w3 + w2 - w1 + w0 - W(2) = 16*w4 + 8*w3 + 4*w2 + 2*w1 + w0 - W(inf) = w4 - - This is a set of five equations in five unknowns, and some -elementary linear algebra quickly isolates each w[i]. This involves -adding or subtracting one W(t) value from another, and a couple of -divisions by powers of 2 and one division by 3, the latter using the -special `mpn_divexact_by3' (*note Exact Division::). - - The conversion of W(t) values to the coefficients is interpolation. -A polynomial of degree 4 like W(t) is uniquely determined by values -known at 5 different points. The points are arbitrary and can be -chosen to make the linear equations come out with a convenient set of -steps for quickly isolating the w[i]. - - Squaring follows the same procedure as multiplication, but there's -only one X(t) and it's evaluated at the 5 points, and those values -squared to give values of W(t). The interpolation is then identical, -and in fact the same `toom3_interpolate' subroutine is used for both -squaring and multiplying. - - Toom-3 is asymptotically O(N^1.465), the exponent being -log(5)/log(3), representing 5 recursive multiplies of 1/3 the original -size each. This is an improvement over Karatsuba at O(N^1.585), though -Toom does more work in the evaluation and interpolation and so it only -realizes its advantage above a certain size. - - Near the crossover between Toom-3 and Karatsuba there's generally a -range of sizes where the difference between the two is small. -`MUL_TOOM33_THRESHOLD' is a somewhat arbitrary point in that range and -successive runs of the tune program can give different values due to -small variations in measuring. A graph of time versus size for the two -shows the effect, see `tune/README'. - - At the fairly small sizes where the Toom-3 thresholds occur it's -worth remembering that the asymptotic behaviour for Karatsuba and -Toom-3 can't be expected to make accurate predictions, due of course to -the big influence of all sorts of overheads, and the fact that only a -few recursions of each are being performed. Even at large sizes -there's a good chance machine dependent effects like cache architecture -will mean actual performance deviates from what might be predicted. - - The formula given for the Karatsuba algorithm (*note Karatsuba -Multiplication::) has an equivalent for Toom-3 involving only five -multiplies, but this would be complicated and unenlightening. - - An alternate view of Toom-3 can be found in Zuras (*note -References::), using a vector to represent the x and y splits and a -matrix multiplication for the evaluation and interpolation stages. The -matrix inverses are not meant to be actually used, and they have -elements with values much greater than in fact arise in the -interpolation steps. The diagram shown for the 3-way is attractive, -but again doesn't have to be implemented that way and for example with -a bit of rearrangement just one division by 6 can be done. - - -File: gmp.info, Node: Toom 4-Way Multiplication, Next: FFT Multiplication, Prev: Toom 3-Way Multiplication, Up: Multiplication Algorithms - -16.1.4 Toom 4-Way Multiplication --------------------------------- - -Karatsuba and Toom-3 split the operands into 2 and 3 coefficients, -respectively. Toom-4 analogously splits the operands into 4 -coefficients. Using the notation from the section on Toom-3 -multiplication, we form two polynomials: - - X(t) = x3*t^3 + x2*t^2 + x1*t + x0 - Y(t) = y3*t^3 + y2*t^2 + y1*t + y0 - - X(t) and Y(t) are evaluated and multiplied at 7 points, giving -values of W(t) at those points. In GMP the following points are used, - - Point Value - t=0 x0 * y0, which gives w0 immediately - t=1/2 (x3+2*x2+4*x1+8*x0) * (y3+2*y2+4*y1+8*y0) - t=-1/2 (-x3+2*x2-4*x1+8*x0) * (-y3+2*y2-4*y1+8*y0) - t=1 (x3+x2+x1+x0) * (y3+y2+y1+y0) - t=-1 (-x3+x2-x1+x0) * (-y3+y2-y1+y0) - t=2 (8*x3+4*x2+2*x1+x0) * (8*y3+4*y2+2*y1+y0) - t=inf x3 * y3, which gives w6 immediately - - The number of additions and subtractions for Toom-4 is much larger -than for Toom-3. But several subexpressions occur multiple times, for -example x2+x0, occurs for both t=1 and t=-1. - - Toom-4 is asymptotically O(N^1.404), the exponent being -log(7)/log(4), representing 7 recursive multiplies of 1/4 the original -size each. - - -File: gmp.info, Node: FFT Multiplication, Next: Other Multiplication, Prev: Toom 4-Way Multiplication, Up: Multiplication Algorithms - -16.1.5 FFT Multiplication -------------------------- - -At large to very large sizes a Fermat style FFT multiplication is used, -following Scho"nhage and Strassen (*note References::). Descriptions -of FFTs in various forms can be found in many textbooks, for instance -Knuth section 4.3.3 part C or Lipson chapter IX. A brief description -of the form used in GMP is given here. - - The multiplication done is x*y mod 2^N+1, for a given N. A full -product x*y is obtained by choosing N>=bits(x)+bits(y) and padding x -and y with high zero limbs. The modular product is the native form for -the algorithm, so padding to get a full product is unavoidable. - - The algorithm follows a split, evaluate, pointwise multiply, -interpolate and combine similar to that described above for Karatsuba -and Toom-3. A k parameter controls the split, with an FFT-k splitting -into 2^k pieces of M=N/2^k bits each. N must be a multiple of -(2^k)*mp_bits_per_limb so the split falls on limb boundaries, avoiding -bit shifts in the split and combine stages. - - The evaluations, pointwise multiplications, and interpolation, are -all done modulo 2^N'+1 where N' is 2M+k+3 rounded up to a multiple of -2^k and of `mp_bits_per_limb'. The results of interpolation will be -the following negacyclic convolution of the input pieces, and the -choice of N' ensures these sums aren't truncated. - - --- - \ b - w[n] = / (-1) * x[i] * y[j] - --- - i+j==b*2^k+n - b=0,1 - - The points used for the evaluation are g^i for i=0 to 2^k-1 where -g=2^(2N'/2^k). g is a 2^k'th root of unity mod 2^N'+1, which produces -necessary cancellations at the interpolation stage, and it's also a -power of 2 so the fast Fourier transforms used for the evaluation and -interpolation do only shifts, adds and negations. - - The pointwise multiplications are done modulo 2^N'+1 and either -recurse into a further FFT or use a plain multiplication (Toom-3, -Karatsuba or basecase), whichever is optimal at the size N'. The -interpolation is an inverse fast Fourier transform. The resulting set -of sums of x[i]*y[j] are added at appropriate offsets to give the final -result. - - Squaring is the same, but x is the only input so it's one transform -at the evaluate stage and the pointwise multiplies are squares. The -interpolation is the same. - - For a mod 2^N+1 product, an FFT-k is an O(N^(k/(k-1))) algorithm, -the exponent representing 2^k recursed modular multiplies each -1/2^(k-1) the size of the original. Each successive k is an asymptotic -improvement, but overheads mean each is only faster at bigger and -bigger sizes. In the code, `MUL_FFT_TABLE' and `SQR_FFT_TABLE' are the -thresholds where each k is used. Each new k effectively swaps some -multiplying for some shifts, adds and overheads. - - A mod 2^N+1 product can be formed with a normal NxN->2N bit multiply -plus a subtraction, so an FFT and Toom-3 etc can be compared directly. -A k=4 FFT at O(N^1.333) can be expected to be the first faster than -Toom-3 at O(N^1.465). In practice this is what's found, with -`MUL_FFT_MODF_THRESHOLD' and `SQR_FFT_MODF_THRESHOLD' being between 300 -and 1000 limbs, depending on the CPU. So far it's been found that only -very large FFTs recurse into pointwise multiplies above these sizes. - - When an FFT is to give a full product, the change of N to 2N doesn't -alter the theoretical complexity for a given k, but for the purposes of -considering where an FFT might be first used it can be assumed that the -FFT is recursing into a normal multiply and that on that basis it's -doing 2^k recursed multiplies each 1/2^(k-2) the size of the inputs, -making it O(N^(k/(k-2))). This would mean k=7 at O(N^1.4) would be the -first FFT faster than Toom-3. In practice `MUL_FFT_THRESHOLD' and -`SQR_FFT_THRESHOLD' have been found to be in the k=8 range, somewhere -between 3000 and 10000 limbs. - - The way N is split into 2^k pieces and then 2M+k+3 is rounded up to -a multiple of 2^k and `mp_bits_per_limb' means that when -2^k>=mp_bits_per_limb the effective N is a multiple of 2^(2k-1) bits. -The +k+3 means some values of N just under such a multiple will be -rounded to the next. The complexity calculations above assume that a -favourable size is used, meaning one which isn't padded through -rounding, and it's also assumed that the extra +k+3 bits are negligible -at typical FFT sizes. - - The practical effect of the 2^(2k-1) constraint is to introduce a -step-effect into measured speeds. For example k=8 will round N up to a -multiple of 32768 bits, so for a 32-bit limb there'll be 512 limb -groups of sizes for which `mpn_mul_n' runs at the same speed. Or for -k=9 groups of 2048 limbs, k=10 groups of 8192 limbs, etc. In practice -it's been found each k is used at quite small multiples of its size -constraint and so the step effect is quite noticeable in a time versus -size graph. - - The threshold determinations currently measure at the mid-points of -size steps, but this is sub-optimal since at the start of a new step it -can happen that it's better to go back to the previous k for a while. -Something more sophisticated for `MUL_FFT_TABLE' and `SQR_FFT_TABLE' -will be needed. - - -File: gmp.info, Node: Other Multiplication, Next: Unbalanced Multiplication, Prev: FFT Multiplication, Up: Multiplication Algorithms - -16.1.6 Other Multiplication ---------------------------- - -The Toom algorithms described above (*note Toom 3-Way Multiplication::, -*note Toom 4-Way Multiplication::) generalizes to split into an -arbitrary number of pieces, as per Knuth section 4.3.3 algorithm C. -This is not currently used. The notes here are merely for interest. - - In general a split into r+1 pieces is made, and evaluations and -pointwise multiplications done at 2*r+1 points. A 4-way split does 7 -pointwise multiplies, 5-way does 9, etc. Asymptotically an (r+1)-way -algorithm is O(N^(log(2*r+1)/log(r+1))). Only the pointwise -multiplications count towards big-O complexity, but the time spent in -the evaluate and interpolate stages grows with r and has a significant -practical impact, with the asymptotic advantage of each r realized only -at bigger and bigger sizes. The overheads grow as O(N*r), whereas in -an r=2^k FFT they grow only as O(N*log(r)). - - Knuth algorithm C evaluates at points 0,1,2,...,2*r, but exercise 4 -uses -r,...,0,...,r and the latter saves some small multiplies in the -evaluate stage (or rather trades them for additions), and has a further -saving of nearly half the interpolate steps. The idea is to separate -odd and even final coefficients and then perform algorithm C steps C7 -and C8 on them separately. The divisors at step C7 become j^2 and the -multipliers at C8 become 2*t*j-j^2. - - Splitting odd and even parts through positive and negative points -can be thought of as using -1 as a square root of unity. If a 4th root -of unity was available then a further split and speedup would be -possible, but no such root exists for plain integers. Going to complex -integers with i=sqrt(-1) doesn't help, essentially because in Cartesian -form it takes three real multiplies to do a complex multiply. The -existence of 2^k'th roots of unity in a suitable ring or field lets the -fast Fourier transform keep splitting and get to O(N*log(r)). - - Floating point FFTs use complex numbers approximating Nth roots of -unity. Some processors have special support for such FFTs. But these -are not used in GMP since it's very difficult to guarantee an exact -result (to some number of bits). An occasional difference of 1 in the -last bit might not matter to a typical signal processing algorithm, but -is of course of vital importance to GMP. - - -File: gmp.info, Node: Unbalanced Multiplication, Prev: Other Multiplication, Up: Multiplication Algorithms - -16.1.7 Unbalanced Multiplication --------------------------------- - -Multiplication of operands with different sizes, both below -`MUL_TOOM22_THRESHOLD' are done with plain schoolbook multiplication -(*note Basecase Multiplication::). - - For really large operands, we invoke FFT directly. - - For operands between these sizes, we use Toom inspired algorithms -suggested by Alberto Zanoni and Marco Bodrato. The idea is to split -the operands into polynomials of different degree. GMP currently -splits the smaller operand onto 2 coefficients, i.e., a polynomial of -degree 1, but the larger operand can be split into 2, 3, or 4 -coefficients, i.e., a polynomial of degree 1 to 3. - - -File: gmp.info, Node: Division Algorithms, Next: Greatest Common Divisor Algorithms, Prev: Multiplication Algorithms, Up: Algorithms - -16.2 Division Algorithms -======================== - -* Menu: - -* Single Limb Division:: -* Basecase Division:: -* Divide and Conquer Division:: -* Block-Wise Barrett Division:: -* Exact Division:: -* Exact Remainder:: -* Small Quotient Division:: - - -File: gmp.info, Node: Single Limb Division, Next: Basecase Division, Prev: Division Algorithms, Up: Division Algorithms - -16.2.1 Single Limb Division ---------------------------- - -Nx1 division is implemented using repeated 2x1 divisions from high to -low, either with a hardware divide instruction or a multiplication by -inverse, whichever is best on a given CPU. - - The multiply by inverse follows "Improved division by invariant -integers" by Mo"ller and Granlund (*note References::) and is -implemented as `udiv_qrnnd_preinv' in `gmp-impl.h'. The idea is to -have a fixed-point approximation to 1/d (see `invert_limb') and then -multiply by the high limb (plus one bit) of the dividend to get a -quotient q. With d normalized (high bit set), q is no more than 1 too -small. Subtracting q*d from the dividend gives a remainder, and -reveals whether q or q-1 is correct. - - The result is a division done with two multiplications and four or -five arithmetic operations. On CPUs with low latency multipliers this -can be much faster than a hardware divide, though the cost of -calculating the inverse at the start may mean it's only better on -inputs bigger than say 4 or 5 limbs. - - When a divisor must be normalized, either for the generic C -`__udiv_qrnnd_c' or the multiply by inverse, the division performed is -actually a*2^k by d*2^k where a is the dividend and k is the power -necessary to have the high bit of d*2^k set. The bit shifts for the -dividend are usually accomplished "on the fly" meaning by extracting -the appropriate bits at each step. Done this way the quotient limbs -come out aligned ready to store. When only the remainder is wanted, an -alternative is to take the dividend limbs unshifted and calculate r = a -mod d*2^k followed by an extra final step r*2^k mod d*2^k. This can -help on CPUs with poor bit shifts or few registers. - - The multiply by inverse can be done two limbs at a time. The -calculation is basically the same, but the inverse is two limbs and the -divisor treated as if padded with a low zero limb. This means more -work, since the inverse will need a 2x2 multiply, but the four 1x1s to -do that are independent and can therefore be done partly or wholly in -parallel. Likewise for a 2x1 calculating q*d. The net effect is to -process two limbs with roughly the same two multiplies worth of latency -that one limb at a time gives. This extends to 3 or 4 limbs at a time, -though the extra work to apply the inverse will almost certainly soon -reach the limits of multiplier throughput. - - A similar approach in reverse can be taken to process just half a -limb at a time if the divisor is only a half limb. In this case the -1x1 multiply for the inverse effectively becomes two (1/2)x1 for each -limb, which can be a saving on CPUs with a fast half limb multiply, or -in fact if the only multiply is a half limb, and especially if it's not -pipelined. - - -File: gmp.info, Node: Basecase Division, Next: Divide and Conquer Division, Prev: Single Limb Division, Up: Division Algorithms - -16.2.2 Basecase Division ------------------------- - -Basecase NxM division is like long division done by hand, but in base -2^mp_bits_per_limb. See Knuth section 4.3.1 algorithm D, and -`mpn/generic/sb_divrem_mn.c'. - - Briefly stated, while the dividend remains larger than the divisor, -a high quotient limb is formed and the Nx1 product q*d subtracted at -the top end of the dividend. With a normalized divisor (most -significant bit set), each quotient limb can be formed with a 2x1 -division and a 1x1 multiplication plus some subtractions. The 2x1 -division is by the high limb of the divisor and is done either with a -hardware divide or a multiply by inverse (the same as in *Note Single -Limb Division::) whichever is faster. Such a quotient is sometimes one -too big, requiring an addback of the divisor, but that happens rarely. - - With Q=N-M being the number of quotient limbs, this is an O(Q*M) -algorithm and will run at a speed similar to a basecase QxM -multiplication, differing in fact only in the extra multiply and divide -for each of the Q quotient limbs. - - -File: gmp.info, Node: Divide and Conquer Division, Next: Block-Wise Barrett Division, Prev: Basecase Division, Up: Division Algorithms - -16.2.3 Divide and Conquer Division ----------------------------------- - -For divisors larger than `DC_DIV_QR_THRESHOLD', division is done by -dividing. Or to be precise by a recursive divide and conquer algorithm -based on work by Moenck and Borodin, Jebelean, and Burnikel and Ziegler -(*note References::). - - The algorithm consists essentially of recognising that a 2NxN -division can be done with the basecase division algorithm (*note -Basecase Division::), but using N/2 limbs as a base, not just a single -limb. This way the multiplications that arise are (N/2)x(N/2) and can -take advantage of Karatsuba and higher multiplication algorithms (*note -Multiplication Algorithms::). The two "digits" of the quotient are -formed by recursive Nx(N/2) divisions. - - If the (N/2)x(N/2) multiplies are done with a basecase multiplication -then the work is about the same as a basecase division, but with more -function call overheads and with some subtractions separated from the -multiplies. These overheads mean that it's only when N/2 is above -`MUL_TOOM22_THRESHOLD' that divide and conquer is of use. - - `DC_DIV_QR_THRESHOLD' is based on the divisor size N, so it will be -somewhere above twice `MUL_TOOM22_THRESHOLD', but how much above -depends on the CPU. An optimized `mpn_mul_basecase' can lower -`DC_DIV_QR_THRESHOLD' a little by offering a ready-made advantage over -repeated `mpn_submul_1' calls. - - Divide and conquer is asymptotically O(M(N)*log(N)) where M(N) is -the time for an NxN multiplication done with FFTs. The actual time is -a sum over multiplications of the recursed sizes, as can be seen near -the end of section 2.2 of Burnikel and Ziegler. For example, within -the Toom-3 range, divide and conquer is 2.63*M(N). With higher -algorithms the M(N) term improves and the multiplier tends to log(N). -In practice, at moderate to large sizes, a 2NxN division is about 2 to -4 times slower than an NxN multiplication. - - -File: gmp.info, Node: Block-Wise Barrett Division, Next: Exact Division, Prev: Divide and Conquer Division, Up: Division Algorithms - -16.2.4 Block-Wise Barrett Division ----------------------------------- - -For the largest divisions, a block-wise Barrett division algorithm is -used. Here, the divisor is inverted to a precision determined by the -relative size of the dividend and divisor. Blocks of quotient limbs -are then generated by multiplying blocks from the dividend by the -inverse. - - Our block-wise algorithm computes a smaller inverse than in the -plain Barrett algorithm. For a 2n/n division, the inverse will be just -ceil(n/2) limbs. - - -File: gmp.info, Node: Exact Division, Next: Exact Remainder, Prev: Block-Wise Barrett Division, Up: Division Algorithms - -16.2.5 Exact Division ---------------------- - -A so-called exact division is when the dividend is known to be an exact -multiple of the divisor. Jebelean's exact division algorithm uses this -knowledge to make some significant optimizations (*note References::). - - The idea can be illustrated in decimal for example with 368154 -divided by 543. Because the low digit of the dividend is 4, the low -digit of the quotient must be 8. This is arrived at from 4*7 mod 10, -using the fact 7 is the modular inverse of 3 (the low digit of the -divisor), since 3*7 == 1 mod 10. So 8*543=4344 can be subtracted from -the dividend leaving 363810. Notice the low digit has become zero. - - The procedure is repeated at the second digit, with the next -quotient digit 7 (7 == 1*7 mod 10), subtracting 7*543=3801, leaving -325800. And finally at the third digit with quotient digit 6 (8*7 mod -10), subtracting 6*543=3258 leaving 0. So the quotient is 678. - - Notice however that the multiplies and subtractions don't need to -extend past the low three digits of the dividend, since that's enough -to determine the three quotient digits. For the last quotient digit no -subtraction is needed at all. On a 2NxN division like this one, only -about half the work of a normal basecase division is necessary. - - For an NxM exact division producing Q=N-M quotient limbs, the saving -over a normal basecase division is in two parts. Firstly, each of the -Q quotient limbs needs only one multiply, not a 2x1 divide and -multiply. Secondly, the crossproducts are reduced when Q>M to -Q*M-M*(M+1)/2, or when Q<=M to Q*(Q-1)/2. Notice the savings are -complementary. If Q is big then many divisions are saved, or if Q is -small then the crossproducts reduce to a small number. - - The modular inverse used is calculated efficiently by `binvert_limb' -in `gmp-impl.h'. This does four multiplies for a 32-bit limb, or six -for a 64-bit limb. `tune/modlinv.c' has some alternate implementations -that might suit processors better at bit twiddling than multiplying. - - The sub-quadratic exact division described by Jebelean in "Exact -Division with Karatsuba Complexity" is not currently implemented. It -uses a rearrangement similar to the divide and conquer for normal -division (*note Divide and Conquer Division::), but operating from low -to high. A further possibility not currently implemented is -"Bidirectional Exact Integer Division" by Krandick and Jebelean which -forms quotient limbs from both the high and low ends of the dividend, -and can halve once more the number of crossproducts needed in a 2NxN -division. - - A special case exact division by 3 exists in `mpn_divexact_by3', -supporting Toom-3 multiplication and `mpq' canonicalizations. It forms -quotient digits with a multiply by the modular inverse of 3 (which is -`0xAA..AAB') and uses two comparisons to determine a borrow for the next -limb. The multiplications don't need to be on the dependent chain, as -long as the effect of the borrows is applied, which can help chips with -pipelined multipliers. - - -File: gmp.info, Node: Exact Remainder, Next: Small Quotient Division, Prev: Exact Division, Up: Division Algorithms - -16.2.6 Exact Remainder ----------------------- - -If the exact division algorithm is done with a full subtraction at each -stage and the dividend isn't a multiple of the divisor, then low zero -limbs are produced but with a remainder in the high limbs. For -dividend a, divisor d, quotient q, and b = 2^mp_bits_per_limb, this -remainder r is of the form - - a = q*d + r*b^n - - n represents the number of zero limbs produced by the subtractions, -that being the number of limbs produced for q. r will be in the range -0<=rb*r+u2 condition appropriately relaxed. - - -File: gmp.info, Node: Greatest Common Divisor Algorithms, Next: Powering Algorithms, Prev: Division Algorithms, Up: Algorithms - -16.3 Greatest Common Divisor -============================ - -* Menu: - -* Binary GCD:: -* Lehmer's Algorithm:: -* Subquadratic GCD:: -* Extended GCD:: -* Jacobi Symbol:: - - -File: gmp.info, Node: Binary GCD, Next: Lehmer's Algorithm, Prev: Greatest Common Divisor Algorithms, Up: Greatest Common Divisor Algorithms - -16.3.1 Binary GCD ------------------ - -At small sizes GMP uses an O(N^2) binary style GCD. This is described -in many textbooks, for example Knuth section 4.5.2 algorithm B. It -simply consists of successively reducing odd operands a and b using - - a,b = abs(a-b),min(a,b) - strip factors of 2 from a - - The Euclidean GCD algorithm, as per Knuth algorithms E and A, -repeatedly computes the quotient q = floor(a/b) and replaces a,b by v, -u - q v. The binary algorithm has so far been found to be faster than -the Euclidean algorithm everywhere. One reason the binary method does -well is that the implied quotient at each step is usually small, so -often only one or two subtractions are needed to get the same effect as -a division. Quotients 1, 2 and 3 for example occur 67.7% of the time, -see Knuth section 4.5.3 Theorem E. - - When the implied quotient is large, meaning b is much smaller than -a, then a division is worthwhile. This is the basis for the initial a -mod b reductions in `mpn_gcd' and `mpn_gcd_1' (the latter for both Nx1 -and 1x1 cases). But after that initial reduction, big quotients occur -too rarely to make it worth checking for them. - - - The final 1x1 GCD in `mpn_gcd_1' is done in the generic C code as -described above. For two N-bit operands, the algorithm takes about -0.68 iterations per bit. For optimum performance some attention needs -to be paid to the way the factors of 2 are stripped from a. - - Firstly it may be noted that in twos complement the number of low -zero bits on a-b is the same as b-a, so counting or testing can begin on -a-b without waiting for abs(a-b) to be determined. - - A loop stripping low zero bits tends not to branch predict well, -since the condition is data dependent. But on average there's only a -few low zeros, so an option is to strip one or two bits arithmetically -then loop for more (as done for AMD K6). Or use a lookup table to get -a count for several bits then loop for more (as done for AMD K7). An -alternative approach is to keep just one of a or b odd and iterate - - a,b = abs(a-b), min(a,b) - a = a/2 if even - b = b/2 if even - - This requires about 1.25 iterations per bit, but stripping of a -single bit at each step avoids any branching. Repeating the bit strip -reduces to about 0.9 iterations per bit, which may be a worthwhile -tradeoff. - - Generally with the above approaches a speed of perhaps 6 cycles per -bit can be achieved, which is still not terribly fast with for instance -a 64-bit GCD taking nearly 400 cycles. It's this sort of time which -means it's not usually advantageous to combine a set of divisibility -tests into a GCD. - - Currently, the binary algorithm is used for GCD only when N < 3. - - -File: gmp.info, Node: Lehmer's Algorithm, Next: Subquadratic GCD, Prev: Binary GCD, Up: Greatest Common Divisor Algorithms - -16.3.2 Lehmer's algorithm -------------------------- - -Lehmer's improvement of the Euclidean algorithms is based on the -observation that the initial part of the quotient sequence depends only -on the most significant parts of the inputs. The variant of Lehmer's -algorithm used in GMP splits off the most significant two limbs, as -suggested, e.g., in "A Double-Digit Lehmer-Euclid Algorithm" by -Jebelean (*note References::). The quotients of two double-limb inputs -are collected as a 2 by 2 matrix with single-limb elements. This is -done by the function `mpn_hgcd2'. The resulting matrix is applied to -the inputs using `mpn_mul_1' and `mpn_submul_1'. Each iteration usually -reduces the inputs by almost one limb. In the rare case of a large -quotient, no progress can be made by examining just the most -significant two limbs, and the quotient is computing using plain -division. - - The resulting algorithm is asymptotically O(N^2), just as the -Euclidean algorithm and the binary algorithm. The quadratic part of the -work are the calls to `mpn_mul_1' and `mpn_submul_1'. For small sizes, -the linear work is also significant. There are roughly N calls to the -`mpn_hgcd2' function. This function uses a couple of important -optimizations: - - * It uses the same relaxed notion of correctness as `mpn_hgcd' (see - next section). This means that when called with the most - significant two limbs of two large numbers, the returned matrix - does not always correspond exactly to the initial quotient - sequence for the two large numbers; the final quotient may - sometimes be one off. - - * It takes advantage of the fact the quotients are usually small. - The division operator is not used, since the corresponding - assembler instruction is very slow on most architectures. (This - code could probably be improved further, it uses many branches - that are unfriendly to prediction). - - * It switches from double-limb calculations to single-limb - calculations half-way through, when the input numbers have been - reduced in size from two limbs to one and a half. - - - -File: gmp.info, Node: Subquadratic GCD, Next: Extended GCD, Prev: Lehmer's Algorithm, Up: Greatest Common Divisor Algorithms - -16.3.3 Subquadratic GCD ------------------------ - -For inputs larger than `GCD_DC_THRESHOLD', GCD is computed via the HGCD -(Half GCD) function, as a generalization to Lehmer's algorithm. - - Let the inputs a,b be of size N limbs each. Put S = floor(N/2) + 1. -Then HGCD(a,b) returns a transformation matrix T with non-negative -elements, and reduced numbers (c;d) = T^-1 (a;b). The reduced numbers -c,d must be larger than S limbs, while their difference abs(c-d) must -fit in S limbs. The matrix elements will also be of size roughly N/2. - - The HGCD base case uses Lehmer's algorithm, but with the above stop -condition that returns reduced numbers and the corresponding -transformation matrix half-way through. For inputs larger than -`HGCD_THRESHOLD', HGCD is computed recursively, using the divide and -conquer algorithm in "On Scho"nhage's algorithm and subquadratic -integer GCD computation" by Mo"ller (*note References::). The recursive -algorithm consists of these main steps. - - * Call HGCD recursively, on the most significant N/2 limbs. Apply the - resulting matrix T_1 to the full numbers, reducing them to a size - just above 3N/2. - - * Perform a small number of division or subtraction steps to reduce - the numbers to size below 3N/2. This is essential mainly for the - unlikely case of large quotients. - - * Call HGCD recursively, on the most significant N/2 limbs of the - reduced numbers. Apply the resulting matrix T_2 to the full - numbers, reducing them to a size just above N/2. - - * Compute T = T_1 T_2. - - * Perform a small number of division and subtraction steps to - satisfy the requirements, and return. - - GCD is then implemented as a loop around HGCD, similarly to Lehmer's -algorithm. Where Lehmer repeatedly chops off the top two limbs, calls -`mpn_hgcd2', and applies the resulting matrix to the full numbers, the -subquadratic GCD chops off the most significant third of the limbs (the -proportion is a tuning parameter, and 1/3 seems to be more efficient -than, e.g, 1/2), calls `mpn_hgcd', and applies the resulting matrix. -Once the input numbers are reduced to size below `GCD_DC_THRESHOLD', -Lehmer's algorithm is used for the rest of the work. - - The asymptotic running time of both HGCD and GCD is O(M(N)*log(N)), -where M(N) is the time for multiplying two N-limb numbers. - - -File: gmp.info, Node: Extended GCD, Next: Jacobi Symbol, Prev: Subquadratic GCD, Up: Greatest Common Divisor Algorithms - -16.3.4 Extended GCD -------------------- - -The extended GCD function, or GCDEXT, calculates gcd(a,b) and also -cofactors x and y satisfying a*x+b*y=gcd(a,b). All the algorithms used -for plain GCD are extended to handle this case. The binary algorithm is -used only for single-limb GCDEXT. Lehmer's algorithm is used for sizes -up to `GCDEXT_DC_THRESHOLD'. Above this threshold, GCDEXT is -implemented as a loop around HGCD, but with more book-keeping to keep -track of the cofactors. This gives the same asymptotic running time as -for GCD and HGCD, O(M(N)*log(N)) - - One difference to plain GCD is that while the inputs a and b are -reduced as the algorithm proceeds, the cofactors x and y grow in size. -This makes the tuning of the chopping-point more difficult. The current -code chops off the most significant half of the inputs for the call to -HGCD in the first iteration, and the most significant two thirds for -the remaining calls. This strategy could surely be improved. Also the -stop condition for the loop, where Lehmer's algorithm is invoked once -the inputs are reduced below `GCDEXT_DC_THRESHOLD', could maybe be -improved by taking into account the current size of the cofactors. - - -File: gmp.info, Node: Jacobi Symbol, Prev: Extended GCD, Up: Greatest Common Divisor Algorithms - -16.3.5 Jacobi Symbol --------------------- - -`mpz_jacobi' and `mpz_kronecker' are currently implemented with a -simple binary algorithm similar to that described for the GCDs (*note -Binary GCD::). They're not very fast when both inputs are large. -Lehmer's multi-step improvement or a binary based multi-step algorithm -is likely to be better. - - When one operand fits a single limb, and that includes -`mpz_kronecker_ui' and friends, an initial reduction is done with -either `mpn_mod_1' or `mpn_modexact_1_odd', followed by the binary -algorithm on a single limb. The binary algorithm is well suited to a -single limb, and the whole calculation in this case is quite efficient. - - In all the routines sign changes for the result are accumulated -using some bit twiddling, avoiding table lookups or conditional jumps. - diff --git a/misc/builddeps/linux32/gmp/share/info/gmp.info-2 b/misc/builddeps/linux32/gmp/share/info/gmp.info-2 deleted file mode 100644 index 45846232..00000000 --- a/misc/builddeps/linux32/gmp/share/info/gmp.info-2 +++ /dev/null @@ -1,3489 +0,0 @@ -This is ../../gmp/doc/gmp.info, produced by makeinfo version 4.8 from -../../gmp/doc/gmp.texi. - - This manual describes how to install and use the GNU multiple -precision arithmetic library, version 5.0.1. - - Copyright 1991, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, -2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free -Software Foundation, Inc. - - Permission is granted to copy, distribute and/or modify this -document under the terms of the GNU Free Documentation License, Version -1.3 or any later version published by the Free Software Foundation; -with no Invariant Sections, with the Front-Cover Texts being "A GNU -Manual", and with the Back-Cover Texts being "You have freedom to copy -and modify this GNU Manual, like GNU software". A copy of the license -is included in *Note GNU Free Documentation License::. - -INFO-DIR-SECTION GNU libraries -START-INFO-DIR-ENTRY -* gmp: (gmp). GNU Multiple Precision Arithmetic Library. -END-INFO-DIR-ENTRY - - -File: gmp.info, Node: Powering Algorithms, Next: Root Extraction Algorithms, Prev: Greatest Common Divisor Algorithms, Up: Algorithms - -16.4 Powering Algorithms -======================== - -* Menu: - -* Normal Powering Algorithm:: -* Modular Powering Algorithm:: - - -File: gmp.info, Node: Normal Powering Algorithm, Next: Modular Powering Algorithm, Prev: Powering Algorithms, Up: Powering Algorithms - -16.4.1 Normal Powering ----------------------- - -Normal `mpz' or `mpf' powering uses a simple binary algorithm, -successively squaring and then multiplying by the base when a 1 bit is -seen in the exponent, as per Knuth section 4.6.3. The "left to right" -variant described there is used rather than algorithm A, since it's -just as easy and can be done with somewhat less temporary memory. - - -File: gmp.info, Node: Modular Powering Algorithm, Prev: Normal Powering Algorithm, Up: Powering Algorithms - -16.4.2 Modular Powering ------------------------ - -Modular powering is implemented using a 2^k-ary sliding window -algorithm, as per "Handbook of Applied Cryptography" algorithm 14.85 -(*note References::). k is chosen according to the size of the -exponent. Larger exponents use larger values of k, the choice being -made to minimize the average number of multiplications that must -supplement the squaring. - - The modular multiplies and squares use either a simple division or -the REDC method by Montgomery (*note References::). REDC is a little -faster, essentially saving N single limb divisions in a fashion similar -to an exact remainder (*note Exact Remainder::). - - -File: gmp.info, Node: Root Extraction Algorithms, Next: Radix Conversion Algorithms, Prev: Powering Algorithms, Up: Algorithms - -16.5 Root Extraction Algorithms -=============================== - -* Menu: - -* Square Root Algorithm:: -* Nth Root Algorithm:: -* Perfect Square Algorithm:: -* Perfect Power Algorithm:: - - -File: gmp.info, Node: Square Root Algorithm, Next: Nth Root Algorithm, Prev: Root Extraction Algorithms, Up: Root Extraction Algorithms - -16.5.1 Square Root ------------------- - -Square roots are taken using the "Karatsuba Square Root" algorithm by -Paul Zimmermann (*note References::). - - An input n is split into four parts of k bits each, so with b=2^k we -have n = a3*b^3 + a2*b^2 + a1*b + a0. Part a3 must be "normalized" so -that either the high or second highest bit is set. In GMP, k is kept -on a limb boundary and the input is left shifted (by an even number of -bits) to normalize. - - The square root of the high two parts is taken, by recursive -application of the algorithm (bottoming out in a one-limb Newton's -method), - - s1,r1 = sqrtrem (a3*b + a2) - - This is an approximation to the desired root and is extended by a -division to give s,r, - - q,u = divrem (r1*b + a1, 2*s1) - s = s1*b + q - r = u*b + a0 - q^2 - - The normalization requirement on a3 means at this point s is either -correct or 1 too big. r is negative in the latter case, so - - if r < 0 then - r = r + 2*s - 1 - s = s - 1 - - The algorithm is expressed in a divide and conquer form, but as -noted in the paper it can also be viewed as a discrete variant of -Newton's method, or as a variation on the schoolboy method (no longer -taught) for square roots two digits at a time. - - If the remainder r is not required then usually only a few high limbs -of r and u need to be calculated to determine whether an adjustment to -s is required. This optimization is not currently implemented. - - In the Karatsuba multiplication range this algorithm is -O(1.5*M(N/2)), where M(n) is the time to multiply two numbers of n -limbs. In the FFT multiplication range this grows to a bound of -O(6*M(N/2)). In practice a factor of about 1.5 to 1.8 is found in the -Karatsuba and Toom-3 ranges, growing to 2 or 3 in the FFT range. - - The algorithm does all its calculations in integers and the resulting -`mpn_sqrtrem' is used for both `mpz_sqrt' and `mpf_sqrt'. The extended -precision given by `mpf_sqrt_ui' is obtained by padding with zero limbs. - - -File: gmp.info, Node: Nth Root Algorithm, Next: Perfect Square Algorithm, Prev: Square Root Algorithm, Up: Root Extraction Algorithms - -16.5.2 Nth Root ---------------- - -Integer Nth roots are taken using Newton's method with the following -iteration, where A is the input and n is the root to be taken. - - 1 A - a[i+1] = - * ( --------- + (n-1)*a[i] ) - n a[i]^(n-1) - - The initial approximation a[1] is generated bitwise by successively -powering a trial root with or without new 1 bits, aiming to be just -above the true root. The iteration converges quadratically when -started from a good approximation. When n is large more initial bits -are needed to get good convergence. The current implementation is not -particularly well optimized. - - -File: gmp.info, Node: Perfect Square Algorithm, Next: Perfect Power Algorithm, Prev: Nth Root Algorithm, Up: Root Extraction Algorithms - -16.5.3 Perfect Square ---------------------- - -A significant fraction of non-squares can be quickly identified by -checking whether the input is a quadratic residue modulo small integers. - - `mpz_perfect_square_p' first tests the input mod 256, which means -just examining the low byte. Only 44 different values occur for -squares mod 256, so 82.8% of inputs can be immediately identified as -non-squares. - - On a 32-bit system similar tests are done mod 9, 5, 7, 13 and 17, -for a total 99.25% of inputs identified as non-squares. On a 64-bit -system 97 is tested too, for a total 99.62%. - - These moduli are chosen because they're factors of 2^24-1 (or 2^48-1 -for 64-bits), and such a remainder can be quickly taken just using -additions (see `mpn_mod_34lsub1'). - - When nails are in use moduli are instead selected by the `gen-psqr.c' -program and applied with an `mpn_mod_1'. The same 2^24-1 or 2^48-1 -could be done with nails using some extra bit shifts, but this is not -currently implemented. - - In any case each modulus is applied to the `mpn_mod_34lsub1' or -`mpn_mod_1' remainder and a table lookup identifies non-squares. By -using a "modexact" style calculation, and suitably permuted tables, -just one multiply each is required, see the code for details. Moduli -are also combined to save operations, so long as the lookup tables -don't become too big. `gen-psqr.c' does all the pre-calculations. - - A square root must still be taken for any value that passes these -tests, to verify it's really a square and not one of the small fraction -of non-squares that get through (ie. a pseudo-square to all the tested -bases). - - Clearly more residue tests could be done, `mpz_perfect_square_p' only -uses a compact and efficient set. Big inputs would probably benefit -from more residue testing, small inputs might be better off with less. -The assumed distribution of squares versus non-squares in the input -would affect such considerations. - - -File: gmp.info, Node: Perfect Power Algorithm, Prev: Perfect Square Algorithm, Up: Root Extraction Algorithms - -16.5.4 Perfect Power --------------------- - -Detecting perfect powers is required by some factorization algorithms. -Currently `mpz_perfect_power_p' is implemented using repeated Nth root -extractions, though naturally only prime roots need to be considered. -(*Note Nth Root Algorithm::.) - - If a prime divisor p with multiplicity e can be found, then only -roots which are divisors of e need to be considered, much reducing the -work necessary. To this end divisibility by a set of small primes is -checked. - - -File: gmp.info, Node: Radix Conversion Algorithms, Next: Other Algorithms, Prev: Root Extraction Algorithms, Up: Algorithms - -16.6 Radix Conversion -===================== - -Radix conversions are less important than other algorithms. A program -dominated by conversions should probably use a different data -representation. - -* Menu: - -* Binary to Radix:: -* Radix to Binary:: - - -File: gmp.info, Node: Binary to Radix, Next: Radix to Binary, Prev: Radix Conversion Algorithms, Up: Radix Conversion Algorithms - -16.6.1 Binary to Radix ----------------------- - -Conversions from binary to a power-of-2 radix use a simple and fast -O(N) bit extraction algorithm. - - Conversions from binary to other radices use one of two algorithms. -Sizes below `GET_STR_PRECOMPUTE_THRESHOLD' use a basic O(N^2) method. -Repeated divisions by b^n are made, where b is the radix and n is the -biggest power that fits in a limb. But instead of simply using the -remainder r from such divisions, an extra divide step is done to give a -fractional limb representing r/b^n. The digits of r can then be -extracted using multiplications by b rather than divisions. Special -case code is provided for decimal, allowing multiplications by 10 to -optimize to shifts and adds. - - Above `GET_STR_PRECOMPUTE_THRESHOLD' a sub-quadratic algorithm is -used. For an input t, powers b^(n*2^i) of the radix are calculated, -until a power between t and sqrt(t) is reached. t is then divided by -that largest power, giving a quotient which is the digits above that -power, and a remainder which is those below. These two parts are in -turn divided by the second highest power, and so on recursively. When -a piece has been divided down to less than `GET_STR_DC_THRESHOLD' -limbs, the basecase algorithm described above is used. - - The advantage of this algorithm is that big divisions can make use -of the sub-quadratic divide and conquer division (*note Divide and -Conquer Division::), and big divisions tend to have less overheads than -lots of separate single limb divisions anyway. But in any case the -cost of calculating the powers b^(n*2^i) must first be overcome. - - `GET_STR_PRECOMPUTE_THRESHOLD' and `GET_STR_DC_THRESHOLD' represent -the same basic thing, the point where it becomes worth doing a big -division to cut the input in half. `GET_STR_PRECOMPUTE_THRESHOLD' -includes the cost of calculating the radix power required, whereas -`GET_STR_DC_THRESHOLD' assumes that's already available, which is the -case when recursing. - - Since the base case produces digits from least to most significant -but they want to be stored from most to least, it's necessary to -calculate in advance how many digits there will be, or at least be sure -not to underestimate that. For GMP the number of input bits is -multiplied by `chars_per_bit_exactly' from `mp_bases', rounding up. -The result is either correct or one too big. - - Examining some of the high bits of the input could increase the -chance of getting the exact number of digits, but an exact result every -time would not be practical, since in general the difference between -numbers 100... and 99... is only in the last few bits and the work to -identify 99... might well be almost as much as a full conversion. - - `mpf_get_str' doesn't currently use the algorithm described here, it -multiplies or divides by a power of b to move the radix point to the -just above the highest non-zero digit (or at worst one above that -location), then multiplies by b^n to bring out digits. This is O(N^2) -and is certainly not optimal. - - The r/b^n scheme described above for using multiplications to bring -out digits might be useful for more than a single limb. Some brief -experiments with it on the base case when recursing didn't give a -noticeable improvement, but perhaps that was only due to the -implementation. Something similar would work for the sub-quadratic -divisions too, though there would be the cost of calculating a bigger -radix power. - - Another possible improvement for the sub-quadratic part would be to -arrange for radix powers that balanced the sizes of quotient and -remainder produced, ie. the highest power would be an b^(n*k) -approximately equal to sqrt(t), not restricted to a 2^i factor. That -ought to smooth out a graph of times against sizes, but may or may not -be a net speedup. - - -File: gmp.info, Node: Radix to Binary, Prev: Binary to Radix, Up: Radix Conversion Algorithms - -16.6.2 Radix to Binary ----------------------- - -*This section needs to be rewritten, it currently describes the -algorithms used before GMP 4.3.* - - Conversions from a power-of-2 radix into binary use a simple and fast -O(N) bitwise concatenation algorithm. - - Conversions from other radices use one of two algorithms. Sizes -below `SET_STR_PRECOMPUTE_THRESHOLD' use a basic O(N^2) method. Groups -of n digits are converted to limbs, where n is the biggest power of the -base b which will fit in a limb, then those groups are accumulated into -the result by multiplying by b^n and adding. This saves -multi-precision operations, as per Knuth section 4.4 part E (*note -References::). Some special case code is provided for decimal, giving -the compiler a chance to optimize multiplications by 10. - - Above `SET_STR_PRECOMPUTE_THRESHOLD' a sub-quadratic algorithm is -used. First groups of n digits are converted into limbs. Then adjacent -limbs are combined into limb pairs with x*b^n+y, where x and y are the -limbs. Adjacent limb pairs are combined into quads similarly with -x*b^(2n)+y. This continues until a single block remains, that being -the result. - - The advantage of this method is that the multiplications for each x -are big blocks, allowing Karatsuba and higher algorithms to be used. -But the cost of calculating the powers b^(n*2^i) must be overcome. -`SET_STR_PRECOMPUTE_THRESHOLD' usually ends up quite big, around 5000 -digits, and on some processors much bigger still. - - `SET_STR_PRECOMPUTE_THRESHOLD' is based on the input digits (and -tuned for decimal), though it might be better based on a limb count, so -as to be independent of the base. But that sort of count isn't used by -the base case and so would need some sort of initial calculation or -estimate. - - The main reason `SET_STR_PRECOMPUTE_THRESHOLD' is so much bigger -than the corresponding `GET_STR_PRECOMPUTE_THRESHOLD' is that -`mpn_mul_1' is much faster than `mpn_divrem_1' (often by a factor of 5, -or more). - - -File: gmp.info, Node: Other Algorithms, Next: Assembly Coding, Prev: Radix Conversion Algorithms, Up: Algorithms - -16.7 Other Algorithms -===================== - -* Menu: - -* Prime Testing Algorithm:: -* Factorial Algorithm:: -* Binomial Coefficients Algorithm:: -* Fibonacci Numbers Algorithm:: -* Lucas Numbers Algorithm:: -* Random Number Algorithms:: - - -File: gmp.info, Node: Prime Testing Algorithm, Next: Factorial Algorithm, Prev: Other Algorithms, Up: Other Algorithms - -16.7.1 Prime Testing --------------------- - -The primality testing in `mpz_probab_prime_p' (*note Number Theoretic -Functions::) first does some trial division by small factors and then -uses the Miller-Rabin probabilistic primality testing algorithm, as -described in Knuth section 4.5.4 algorithm P (*note References::). - - For an odd input n, and with n = q*2^k+1 where q is odd, this -algorithm selects a random base x and tests whether x^q mod n is 1 or --1, or an x^(q*2^j) mod n is 1, for 1<=j<=k. If so then n is probably -prime, if not then n is definitely composite. - - Any prime n will pass the test, but some composites do too. Such -composites are known as strong pseudoprimes to base x. No n is a -strong pseudoprime to more than 1/4 of all bases (see Knuth exercise -22), hence with x chosen at random there's no more than a 1/4 chance a -"probable prime" will in fact be composite. - - In fact strong pseudoprimes are quite rare, making the test much more -powerful than this analysis would suggest, but 1/4 is all that's proven -for an arbitrary n. - - -File: gmp.info, Node: Factorial Algorithm, Next: Binomial Coefficients Algorithm, Prev: Prime Testing Algorithm, Up: Other Algorithms - -16.7.2 Factorial ----------------- - -Factorials are calculated by a combination of removal of twos, -powering, and binary splitting. The procedure can be best illustrated -with an example, - - 23! = 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23 - -has factors of two removed, - - 23! = 2^19.1.1.3.1.5.3.7.1.9.5.11.3.13.7.15.1.17.9.19.5.21.11.23 - -and the resulting terms collected up according to their multiplicity, - - 23! = 2^19.(3.5)^3.(7.9.11)^2.(13.15.17.19.21.23) - - Each sequence such as 13.15.17.19.21.23 is evaluated by splitting -into every second term, as for instance (13.17.21).(15.19.23), and the -same recursively on each half. This is implemented iteratively using -some bit twiddling. - - Such splitting is more efficient than repeated Nx1 multiplies since -it forms big multiplies, allowing Karatsuba and higher algorithms to be -used. And even below the Karatsuba threshold a big block of work can -be more efficient for the basecase algorithm. - - Splitting into subsequences of every second term keeps the resulting -products more nearly equal in size than would the simpler approach of -say taking the first half and second half of the sequence. Nearly -equal products are more efficient for the current multiply -implementation. - - -File: gmp.info, Node: Binomial Coefficients Algorithm, Next: Fibonacci Numbers Algorithm, Prev: Factorial Algorithm, Up: Other Algorithms - -16.7.3 Binomial Coefficients ----------------------------- - -Binomial coefficients C(n,k) are calculated by first arranging k <= n/2 -using C(n,k) = C(n,n-k) if necessary, and then evaluating the following -product simply from i=2 to i=k. - - k (n-k+i) - C(n,k) = (n-k+1) * prod ------- - i=2 i - - It's easy to show that each denominator i will divide the product so -far, so the exact division algorithm is used (*note Exact Division::). - - The numerators n-k+i and denominators i are first accumulated into -as many fit a limb, to save multi-precision operations, though for -`mpz_bin_ui' this applies only to the divisors, since n is an `mpz_t' -and n-k+i in general won't fit in a limb at all. - - -File: gmp.info, Node: Fibonacci Numbers Algorithm, Next: Lucas Numbers Algorithm, Prev: Binomial Coefficients Algorithm, Up: Other Algorithms - -16.7.4 Fibonacci Numbers ------------------------- - -The Fibonacci functions `mpz_fib_ui' and `mpz_fib2_ui' are designed for -calculating isolated F[n] or F[n],F[n-1] values efficiently. - - For small n, a table of single limb values in `__gmp_fib_table' is -used. On a 32-bit limb this goes up to F[47], or on a 64-bit limb up -to F[93]. For convenience the table starts at F[-1]. - - Beyond the table, values are generated with a binary powering -algorithm, calculating a pair F[n] and F[n-1] working from high to low -across the bits of n. The formulas used are - - F[2k+1] = 4*F[k]^2 - F[k-1]^2 + 2*(-1)^k - F[2k-1] = F[k]^2 + F[k-1]^2 - - F[2k] = F[2k+1] - F[2k-1] - - At each step, k is the high b bits of n. If the next bit of n is 0 -then F[2k],F[2k-1] is used, or if it's a 1 then F[2k+1],F[2k] is used, -and the process repeated until all bits of n are incorporated. Notice -these formulas require just two squares per bit of n. - - It'd be possible to handle the first few n above the single limb -table with simple additions, using the defining Fibonacci recurrence -F[k+1]=F[k]+F[k-1], but this is not done since it usually turns out to -be faster for only about 10 or 20 values of n, and including a block of -code for just those doesn't seem worthwhile. If they really mattered -it'd be better to extend the data table. - - Using a table avoids lots of calculations on small numbers, and -makes small n go fast. A bigger table would make more small n go fast, -it's just a question of balancing size against desired speed. For GMP -the code is kept compact, with the emphasis primarily on a good -powering algorithm. - - `mpz_fib2_ui' returns both F[n] and F[n-1], but `mpz_fib_ui' is only -interested in F[n]. In this case the last step of the algorithm can -become one multiply instead of two squares. One of the following two -formulas is used, according as n is odd or even. - - F[2k] = F[k]*(F[k]+2F[k-1]) - - F[2k+1] = (2F[k]+F[k-1])*(2F[k]-F[k-1]) + 2*(-1)^k - - F[2k+1] here is the same as above, just rearranged to be a multiply. -For interest, the 2*(-1)^k term both here and above can be applied -just to the low limb of the calculation, without a carry or borrow into -further limbs, which saves some code size. See comments with -`mpz_fib_ui' and the internal `mpn_fib2_ui' for how this is done. - - -File: gmp.info, Node: Lucas Numbers Algorithm, Next: Random Number Algorithms, Prev: Fibonacci Numbers Algorithm, Up: Other Algorithms - -16.7.5 Lucas Numbers --------------------- - -`mpz_lucnum2_ui' derives a pair of Lucas numbers from a pair of -Fibonacci numbers with the following simple formulas. - - L[k] = F[k] + 2*F[k-1] - L[k-1] = 2*F[k] - F[k-1] - - `mpz_lucnum_ui' is only interested in L[n], and some work can be -saved. Trailing zero bits on n can be handled with a single square -each. - - L[2k] = L[k]^2 - 2*(-1)^k - - And the lowest 1 bit can be handled with one multiply of a pair of -Fibonacci numbers, similar to what `mpz_fib_ui' does. - - L[2k+1] = 5*F[k-1]*(2*F[k]+F[k-1]) - 4*(-1)^k - - -File: gmp.info, Node: Random Number Algorithms, Prev: Lucas Numbers Algorithm, Up: Other Algorithms - -16.7.6 Random Numbers ---------------------- - -For the `urandomb' functions, random numbers are generated simply by -concatenating bits produced by the generator. As long as the generator -has good randomness properties this will produce well-distributed N bit -numbers. - - For the `urandomm' functions, random numbers in a range 0<=R48 bit pieces is convenient. With -some care though six 21x32->53 bit products can be used, if one of the -lower two 21-bit pieces also uses the sign bit. - - For the `mpn_mul_1' family of functions on a 64-bit machine, the -invariant single limb is split at the start, into 3 or 4 pieces. -Inside the loop, the bignum operand is split into 32-bit pieces. Fast -conversion of these unsigned 32-bit pieces to floating point is highly -machine-dependent. In some cases, reading the data into the integer -unit, zero-extending to 64-bits, then transferring to the floating -point unit back via memory is the only option. - - Converting partial products back to 64-bit limbs is usually best -done as a signed conversion. Since all values are smaller than 2^53, -signed and unsigned are the same, but most processors lack unsigned -conversions. - - - - Here is a diagram showing 16x32 bit products for an `mpn_mul_1' or -`mpn_addmul_1' with a 64-bit limb. The single limb operand V is split -into four 16-bit parts. The multi-limb operand U is split in the loop -into two 32-bit parts. - - +---+---+---+---+ - |v48|v32|v16|v00| V operand - +---+---+---+---+ - - +-------+---+---+ - x | u32 | u00 | U operand (one limb) - +---------------+ - - --------------------------------- - - +-----------+ - | u00 x v00 | p00 48-bit products - +-----------+ - +-----------+ - | u00 x v16 | p16 - +-----------+ - +-----------+ - | u00 x v32 | p32 - +-----------+ - +-----------+ - | u00 x v48 | p48 - +-----------+ - +-----------+ - | u32 x v00 | r32 - +-----------+ - +-----------+ - | u32 x v16 | r48 - +-----------+ - +-----------+ - | u32 x v32 | r64 - +-----------+ - +-----------+ - | u32 x v48 | r80 - +-----------+ - - p32 and r32 can be summed using floating-point addition, and -likewise p48 and r48. p00 and p16 can be summed with r64 and r80 from -the previous iteration. - - For each loop then, four 49-bit quantities are transferred to the -integer unit, aligned as follows, - - |-----64bits----|-----64bits----| - +------------+ - | p00 + r64' | i00 - +------------+ - +------------+ - | p16 + r80' | i16 - +------------+ - +------------+ - | p32 + r32 | i32 - +------------+ - +------------+ - | p48 + r48 | i48 - +------------+ - - The challenge then is to sum these efficiently and add in a carry -limb, generating a low 64-bit result limb and a high 33-bit carry limb -(i48 extends 33 bits into the high half). - - -File: gmp.info, Node: Assembly SIMD Instructions, Next: Assembly Software Pipelining, Prev: Assembly Floating Point, Up: Assembly Coding - -16.8.7 SIMD Instructions ------------------------- - -The single-instruction multiple-data support in current microprocessors -is aimed at signal processing algorithms where each data point can be -treated more or less independently. There's generally not much support -for propagating the sort of carries that arise in GMP. - - SIMD multiplications of say four 16x16 bit multiplies only do as much -work as one 32x32 from GMP's point of view, and need some shifts and -adds besides. But of course if say the SIMD form is fully pipelined -and uses less instruction decoding then it may still be worthwhile. - - On the x86 chips, MMX has so far found a use in `mpn_rshift' and -`mpn_lshift', and is used in a special case for 16-bit multipliers in -the P55 `mpn_mul_1'. SSE2 is used for Pentium 4 `mpn_mul_1', -`mpn_addmul_1', and `mpn_submul_1'. - - -File: gmp.info, Node: Assembly Software Pipelining, Next: Assembly Loop Unrolling, Prev: Assembly SIMD Instructions, Up: Assembly Coding - -16.8.8 Software Pipelining --------------------------- - -Software pipelining consists of scheduling instructions around the -branch point in a loop. For example a loop might issue a load not for -use in the present iteration but the next, thereby allowing extra -cycles for the data to arrive from memory. - - Naturally this is wanted only when doing things like loads or -multiplies that take several cycles to complete, and only where a CPU -has multiple functional units so that other work can be done in the -meantime. - - A pipeline with several stages will have a data value in progress at -each stage and each loop iteration moves them along one stage. This is -like juggling. - - If the latency of some instruction is greater than the loop time -then it will be necessary to unroll, so one register has a result ready -to use while another (or multiple others) are still in progress. -(*note Assembly Loop Unrolling::). - - -File: gmp.info, Node: Assembly Loop Unrolling, Next: Assembly Writing Guide, Prev: Assembly Software Pipelining, Up: Assembly Coding - -16.8.9 Loop Unrolling ---------------------- - -Loop unrolling consists of replicating code so that several limbs are -processed in each loop. At a minimum this reduces loop overheads by a -corresponding factor, but it can also allow better register usage, for -example alternately using one register combination and then another. -Judicious use of `m4' macros can help avoid lots of duplication in the -source code. - - Any amount of unrolling can be handled with a loop counter that's -decremented by N each time, stopping when the remaining count is less -than the further N the loop will process. Or by subtracting N at the -start, the termination condition becomes when the counter C is less -than 0 (and the count of remaining limbs is C+N). - - Alternately for a power of 2 unroll the loop count and remainder can -be established with a shift and mask. This is convenient if also -making a computed jump into the middle of a large loop. - - The limbs not a multiple of the unrolling can be handled in various -ways, for example - - * A simple loop at the end (or the start) to process the excess. - Care will be wanted that it isn't too much slower than the - unrolled part. - - * A set of binary tests, for example after an 8-limb unrolling, test - for 4 more limbs to process, then a further 2 more or not, and - finally 1 more or not. This will probably take more code space - than a simple loop. - - * A `switch' statement, providing separate code for each possible - excess, for example an 8-limb unrolling would have separate code - for 0 remaining, 1 remaining, etc, up to 7 remaining. This might - take a lot of code, but may be the best way to optimize all cases - in combination with a deep pipelined loop. - - * A computed jump into the middle of the loop, thus making the first - iteration handle the excess. This should make times smoothly - increase with size, which is attractive, but setups for the jump - and adjustments for pointers can be tricky and could become quite - difficult in combination with deep pipelining. - - -File: gmp.info, Node: Assembly Writing Guide, Prev: Assembly Loop Unrolling, Up: Assembly Coding - -16.8.10 Writing Guide ---------------------- - -This is a guide to writing software pipelined loops for processing limb -vectors in assembly. - - First determine the algorithm and which instructions are needed. -Code it without unrolling or scheduling, to make sure it works. On a -3-operand CPU try to write each new value to a new register, this will -greatly simplify later steps. - - Then note for each instruction the functional unit and/or issue port -requirements. If an instruction can use either of two units, like U0 -or U1 then make a category "U0/U1". Count the total using each unit -(or combined unit), and count all instructions. - - Figure out from those counts the best possible loop time. The goal -will be to find a perfect schedule where instruction latencies are -completely hidden. The total instruction count might be the limiting -factor, or perhaps a particular functional unit. It might be possible -to tweak the instructions to help the limiting factor. - - Suppose the loop time is N, then make N issue buckets, with the -final loop branch at the end of the last. Now fill the buckets with -dummy instructions using the functional units desired. Run this to -make sure the intended speed is reached. - - Now replace the dummy instructions with the real instructions from -the slow but correct loop you started with. The first will typically -be a load instruction. Then the instruction using that value is placed -in a bucket an appropriate distance down. Run the loop again, to check -it still runs at target speed. - - Keep placing instructions, frequently measuring the loop. After a -few you will need to wrap around from the last bucket back to the top -of the loop. If you used the new-register for new-value strategy above -then there will be no register conflicts. If not then take care not to -clobber something already in use. Changing registers at this time is -very error prone. - - The loop will overlap two or more of the original loop iterations, -and the computation of one vector element result will be started in one -iteration of the new loop, and completed one or several iterations -later. - - The final step is to create feed-in and wind-down code for the loop. -A good way to do this is to make a copy (or copies) of the loop at the -start and delete those instructions which don't have valid antecedents, -and at the end replicate and delete those whose results are unwanted -(including any further loads). - - The loop will have a minimum number of limbs loaded and processed, -so the feed-in code must test if the request size is smaller and skip -either to a suitable part of the wind-down or to special code for small -sizes. - - -File: gmp.info, Node: Internals, Next: Contributors, Prev: Algorithms, Up: Top - -17 Internals -************ - -*This chapter is provided only for informational purposes and the -various internals described here may change in future GMP releases. -Applications expecting to be compatible with future releases should use -only the documented interfaces described in previous chapters.* - -* Menu: - -* Integer Internals:: -* Rational Internals:: -* Float Internals:: -* Raw Output Internals:: -* C++ Interface Internals:: - - -File: gmp.info, Node: Integer Internals, Next: Rational Internals, Prev: Internals, Up: Internals - -17.1 Integer Internals -====================== - -`mpz_t' variables represent integers using sign and magnitude, in space -dynamically allocated and reallocated. The fields are as follows. - -`_mp_size' - The number of limbs, or the negative of that when representing a - negative integer. Zero is represented by `_mp_size' set to zero, - in which case the `_mp_d' data is unused. - -`_mp_d' - A pointer to an array of limbs which is the magnitude. These are - stored "little endian" as per the `mpn' functions, so `_mp_d[0]' - is the least significant limb and `_mp_d[ABS(_mp_size)-1]' is the - most significant. Whenever `_mp_size' is non-zero, the most - significant limb is non-zero. - - Currently there's always at least one limb allocated, so for - instance `mpz_set_ui' never needs to reallocate, and `mpz_get_ui' - can fetch `_mp_d[0]' unconditionally (though its value is then - only wanted if `_mp_size' is non-zero). - -`_mp_alloc' - `_mp_alloc' is the number of limbs currently allocated at `_mp_d', - and naturally `_mp_alloc >= ABS(_mp_size)'. When an `mpz' routine - is about to (or might be about to) increase `_mp_size', it checks - `_mp_alloc' to see whether there's enough space, and reallocates - if not. `MPZ_REALLOC' is generally used for this. - - The various bitwise logical functions like `mpz_and' behave as if -negative values were twos complement. But sign and magnitude is always -used internally, and necessary adjustments are made during the -calculations. Sometimes this isn't pretty, but sign and magnitude are -best for other routines. - - Some internal temporary variables are setup with `MPZ_TMP_INIT' and -these have `_mp_d' space obtained from `TMP_ALLOC' rather than the -memory allocation functions. Care is taken to ensure that these are -big enough that no reallocation is necessary (since it would have -unpredictable consequences). - - `_mp_size' and `_mp_alloc' are `int', although `mp_size_t' is -usually a `long'. This is done to make the fields just 32 bits on some -64 bits systems, thereby saving a few bytes of data space but still -providing plenty of range. - - -File: gmp.info, Node: Rational Internals, Next: Float Internals, Prev: Integer Internals, Up: Internals - -17.2 Rational Internals -======================= - -`mpq_t' variables represent rationals using an `mpz_t' numerator and -denominator (*note Integer Internals::). - - The canonical form adopted is denominator positive (and non-zero), -no common factors between numerator and denominator, and zero uniquely -represented as 0/1. - - It's believed that casting out common factors at each stage of a -calculation is best in general. A GCD is an O(N^2) operation so it's -better to do a few small ones immediately than to delay and have to do -a big one later. Knowing the numerator and denominator have no common -factors can be used for example in `mpq_mul' to make only two cross -GCDs necessary, not four. - - This general approach to common factors is badly sub-optimal in the -presence of simple factorizations or little prospect for cancellation, -but GMP has no way to know when this will occur. As per *Note -Efficiency::, that's left to applications. The `mpq_t' framework might -still suit, with `mpq_numref' and `mpq_denref' for direct access to the -numerator and denominator, or of course `mpz_t' variables can be used -directly. - - -File: gmp.info, Node: Float Internals, Next: Raw Output Internals, Prev: Rational Internals, Up: Internals - -17.3 Float Internals -==================== - -Efficient calculation is the primary aim of GMP floats and the use of -whole limbs and simple rounding facilitates this. - - `mpf_t' floats have a variable precision mantissa and a single -machine word signed exponent. The mantissa is represented using sign -and magnitude. - - most least - significant significant - limb limb - - _mp_d - |---- _mp_exp ---> | - _____ _____ _____ _____ _____ - |_____|_____|_____|_____|_____| - . <------------ radix point - - <-------- _mp_size ---------> - -The fields are as follows. - -`_mp_size' - The number of limbs currently in use, or the negative of that when - representing a negative value. Zero is represented by `_mp_size' - and `_mp_exp' both set to zero, and in that case the `_mp_d' data - is unused. (In the future `_mp_exp' might be undefined when - representing zero.) - -`_mp_prec' - The precision of the mantissa, in limbs. In any calculation the - aim is to produce `_mp_prec' limbs of result (the most significant - being non-zero). - -`_mp_d' - A pointer to the array of limbs which is the absolute value of the - mantissa. These are stored "little endian" as per the `mpn' - functions, so `_mp_d[0]' is the least significant limb and - `_mp_d[ABS(_mp_size)-1]' the most significant. - - The most significant limb is always non-zero, but there are no - other restrictions on its value, in particular the highest 1 bit - can be anywhere within the limb. - - `_mp_prec+1' limbs are allocated to `_mp_d', the extra limb being - for convenience (see below). There are no reallocations during a - calculation, only in a change of precision with `mpf_set_prec'. - -`_mp_exp' - The exponent, in limbs, determining the location of the implied - radix point. Zero means the radix point is just above the most - significant limb. Positive values mean a radix point offset - towards the lower limbs and hence a value >= 1, as for example in - the diagram above. Negative exponents mean a radix point further - above the highest limb. - - Naturally the exponent can be any value, it doesn't have to fall - within the limbs as the diagram shows, it can be a long way above - or a long way below. Limbs other than those included in the - `{_mp_d,_mp_size}' data are treated as zero. - - The `_mp_size' and `_mp_prec' fields are `int', although the -`mp_size_t' type is usually a `long'. The `_mp_exp' field is usually -`long'. This is done to make some fields just 32 bits on some 64 bits -systems, thereby saving a few bytes of data space but still providing -plenty of precision and a very large range. - - -The following various points should be noted. - -Low Zeros - The least significant limbs `_mp_d[0]' etc can be zero, though - such low zeros can always be ignored. Routines likely to produce - low zeros check and avoid them to save time in subsequent - calculations, but for most routines they're quite unlikely and - aren't checked. - -Mantissa Size Range - The `_mp_size' count of limbs in use can be less than `_mp_prec' if - the value can be represented in less. This means low precision - values or small integers stored in a high precision `mpf_t' can - still be operated on efficiently. - - `_mp_size' can also be greater than `_mp_prec'. Firstly a value is - allowed to use all of the `_mp_prec+1' limbs available at `_mp_d', - and secondly when `mpf_set_prec_raw' lowers `_mp_prec' it leaves - `_mp_size' unchanged and so the size can be arbitrarily bigger than - `_mp_prec'. - -Rounding - All rounding is done on limb boundaries. Calculating `_mp_prec' - limbs with the high non-zero will ensure the application requested - minimum precision is obtained. - - The use of simple "trunc" rounding towards zero is efficient, - since there's no need to examine extra limbs and increment or - decrement. - -Bit Shifts - Since the exponent is in limbs, there are no bit shifts in basic - operations like `mpf_add' and `mpf_mul'. When differing exponents - are encountered all that's needed is to adjust pointers to line up - the relevant limbs. - - Of course `mpf_mul_2exp' and `mpf_div_2exp' will require bit - shifts, but the choice is between an exponent in limbs which - requires shifts there, or one in bits which requires them almost - everywhere else. - -Use of `_mp_prec+1' Limbs - The extra limb on `_mp_d' (`_mp_prec+1' rather than just - `_mp_prec') helps when an `mpf' routine might get a carry from its - operation. `mpf_add' for instance will do an `mpn_add' of - `_mp_prec' limbs. If there's no carry then that's the result, but - if there is a carry then it's stored in the extra limb of space and - `_mp_size' becomes `_mp_prec+1'. - - Whenever `_mp_prec+1' limbs are held in a variable, the low limb - is not needed for the intended precision, only the `_mp_prec' high - limbs. But zeroing it out or moving the rest down is unnecessary. - Subsequent routines reading the value will simply take the high - limbs they need, and this will be `_mp_prec' if their target has - that same precision. This is no more than a pointer adjustment, - and must be checked anyway since the destination precision can be - different from the sources. - - Copy functions like `mpf_set' will retain a full `_mp_prec+1' limbs - if available. This ensures that a variable which has `_mp_size' - equal to `_mp_prec+1' will get its full exact value copied. - Strictly speaking this is unnecessary since only `_mp_prec' limbs - are needed for the application's requested precision, but it's - considered that an `mpf_set' from one variable into another of the - same precision ought to produce an exact copy. - -Application Precisions - `__GMPF_BITS_TO_PREC' converts an application requested precision - to an `_mp_prec'. The value in bits is rounded up to a whole limb - then an extra limb is added since the most significant limb of - `_mp_d' is only non-zero and therefore might contain only one bit. - - `__GMPF_PREC_TO_BITS' does the reverse conversion, and removes the - extra limb from `_mp_prec' before converting to bits. The net - effect of reading back with `mpf_get_prec' is simply the precision - rounded up to a multiple of `mp_bits_per_limb'. - - Note that the extra limb added here for the high only being - non-zero is in addition to the extra limb allocated to `_mp_d'. - For example with a 32-bit limb, an application request for 250 - bits will be rounded up to 8 limbs, then an extra added for the - high being only non-zero, giving an `_mp_prec' of 9. `_mp_d' then - gets 10 limbs allocated. Reading back with `mpf_get_prec' will - take `_mp_prec' subtract 1 limb and multiply by 32, giving 256 - bits. - - Strictly speaking, the fact the high limb has at least one bit - means that a float with, say, 3 limbs of 32-bits each will be - holding at least 65 bits, but for the purposes of `mpf_t' it's - considered simply to be 64 bits, a nice multiple of the limb size. - - -File: gmp.info, Node: Raw Output Internals, Next: C++ Interface Internals, Prev: Float Internals, Up: Internals - -17.4 Raw Output Internals -========================= - -`mpz_out_raw' uses the following format. - - +------+------------------------+ - | size | data bytes | - +------+------------------------+ - - The size is 4 bytes written most significant byte first, being the -number of subsequent data bytes, or the twos complement negative of -that when a negative integer is represented. The data bytes are the -absolute value of the integer, written most significant byte first. - - The most significant data byte is always non-zero, so the output is -the same on all systems, irrespective of limb size. - - In GMP 1, leading zero bytes were written to pad the data bytes to a -multiple of the limb size. `mpz_inp_raw' will still accept this, for -compatibility. - - The use of "big endian" for both the size and data fields is -deliberate, it makes the data easy to read in a hex dump of a file. -Unfortunately it also means that the limb data must be reversed when -reading or writing, so neither a big endian nor little endian system -can just read and write `_mp_d'. - - -File: gmp.info, Node: C++ Interface Internals, Prev: Raw Output Internals, Up: Internals - -17.5 C++ Interface Internals -============================ - -A system of expression templates is used to ensure something like -`a=b+c' turns into a simple call to `mpz_add' etc. For `mpf_class' the -scheme also ensures the precision of the final destination is used for -any temporaries within a statement like `f=w*x+y*z'. These are -important features which a naive implementation cannot provide. - - A simplified description of the scheme follows. The true scheme is -complicated by the fact that expressions have different return types. -For detailed information, refer to the source code. - - To perform an operation, say, addition, we first define a "function -object" evaluating it, - - struct __gmp_binary_plus - { - static void eval(mpf_t f, mpf_t g, mpf_t h) { mpf_add(f, g, h); } - }; - -And an "additive expression" object, - - __gmp_expr<__gmp_binary_expr > - operator+(const mpf_class &f, const mpf_class &g) - { - return __gmp_expr - <__gmp_binary_expr >(f, g); - } - - The seemingly redundant `__gmp_expr<__gmp_binary_expr<...>>' is used -to encapsulate any possible kind of expression into a single template -type. In fact even `mpf_class' etc are `typedef' specializations of -`__gmp_expr'. - - Next we define assignment of `__gmp_expr' to `mpf_class'. - - template - mpf_class & mpf_class::operator=(const __gmp_expr &expr) - { - expr.eval(this->get_mpf_t(), this->precision()); - return *this; - } - - template - void __gmp_expr<__gmp_binary_expr >::eval - (mpf_t f, mp_bitcnt_t precision) - { - Op::eval(f, expr.val1.get_mpf_t(), expr.val2.get_mpf_t()); - } - - where `expr.val1' and `expr.val2' are references to the expression's -operands (here `expr' is the `__gmp_binary_expr' stored within the -`__gmp_expr'). - - This way, the expression is actually evaluated only at the time of -assignment, when the required precision (that of `f') is known. -Furthermore the target `mpf_t' is now available, thus we can call -`mpf_add' directly with `f' as the output argument. - - Compound expressions are handled by defining operators taking -subexpressions as their arguments, like this: - - template - __gmp_expr - <__gmp_binary_expr<__gmp_expr, __gmp_expr, __gmp_binary_plus> > - operator+(const __gmp_expr &expr1, const __gmp_expr &expr2) - { - return __gmp_expr - <__gmp_binary_expr<__gmp_expr, __gmp_expr, __gmp_binary_plus> > - (expr1, expr2); - } - - And the corresponding specializations of `__gmp_expr::eval': - - template - void __gmp_expr - <__gmp_binary_expr<__gmp_expr, __gmp_expr, Op> >::eval - (mpf_t f, mp_bitcnt_t precision) - { - // declare two temporaries - mpf_class temp1(expr.val1, precision), temp2(expr.val2, precision); - Op::eval(f, temp1.get_mpf_t(), temp2.get_mpf_t()); - } - - The expression is thus recursively evaluated to any level of -complexity and all subexpressions are evaluated to the precision of `f'. - - -File: gmp.info, Node: Contributors, Next: References, Prev: Internals, Up: Top - -Appendix A Contributors -*********************** - -Torbjo"rn Granlund wrote the original GMP library and is still the main -developer. Code not explicitly attributed to others, was contributed by -Torbjo"rn. Several other individuals and organizations have contributed -GMP. Here is a list in chronological order on first contribution: - - Gunnar Sjo"din and Hans Riesel helped with mathematical problems in -early versions of the library. - - Richard Stallman helped with the interface design and revised the -first version of this manual. - - Brian Beuning and Doug Lea helped with testing of early versions of -the library and made creative suggestions. - - John Amanatides of York University in Canada contributed the function -`mpz_probab_prime_p'. - - Paul Zimmermann wrote the REDC-based mpz_powm code, the -Scho"nhage-Strassen FFT multiply code, and the Karatsuba square root -code. He also improved the Toom3 code for GMP 4.2. Paul sparked the -development of GMP 2, with his comparisons between bignum packages. -The ECMNET project Paul is organizing was a driving force behind many -of the optimizations in GMP 3. Paul also wrote the new GMP 4.3 nth -root code (with Torbjo"rn). - - Ken Weber (Kent State University, Universidade Federal do Rio Grande -do Sul) contributed now defunct versions of `mpz_gcd', `mpz_divexact', -`mpn_gcd', and `mpn_bdivmod', partially supported by CNPq (Brazil) -grant 301314194-2. - - Per Bothner of Cygnus Support helped to set up GMP to use Cygnus' -configure. He has also made valuable suggestions and tested numerous -intermediary releases. - - Joachim Hollman was involved in the design of the `mpf' interface, -and in the `mpz' design revisions for version 2. - - Bennet Yee contributed the initial versions of `mpz_jacobi' and -`mpz_legendre'. - - Andreas Schwab contributed the files `mpn/m68k/lshift.S' and -`mpn/m68k/rshift.S' (now in `.asm' form). - - Robert Harley of Inria, France and David Seal of ARM, England, -suggested clever improvements for population count. Robert also wrote -highly optimized Karatsuba and 3-way Toom multiplication functions for -GMP 3, and contributed the ARM assembly code. - - Torsten Ekedahl of the Mathematical department of Stockholm -University provided significant inspiration during several phases of -the GMP development. His mathematical expertise helped improve several -algorithms. - - Linus Nordberg wrote the new configure system based on autoconf and -implemented the new random functions. - - Kevin Ryde worked on a large number of things: optimized x86 code, -m4 asm macros, parameter tuning, speed measuring, the configure system, -function inlining, divisibility tests, bit scanning, Jacobi symbols, -Fibonacci and Lucas number functions, printf and scanf functions, perl -interface, demo expression parser, the algorithms chapter in the -manual, `gmpasm-mode.el', and various miscellaneous improvements -elsewhere. - - Kent Boortz made the Mac OS 9 port. - - Steve Root helped write the optimized alpha 21264 assembly code. - - Gerardo Ballabio wrote the `gmpxx.h' C++ class interface and the C++ -`istream' input routines. - - Jason Moxham rewrote `mpz_fac_ui'. - - Pedro Gimeno implemented the Mersenne Twister and made other random -number improvements. - - Niels Mo"ller wrote the sub-quadratic GCD and extended GCD code, the -quadratic Hensel division code, and (with Torbjo"rn) the new divide and -conquer division code for GMP 4.3. Niels also helped implement the new -Toom multiply code for GMP 4.3 and implemented helper functions to -simplify Toom evaluations for GMP 5.0. He wrote the original version -of mpn_mulmod_bnm1. - - Alberto Zanoni and Marco Bodrato suggested the unbalanced multiply -strategy, and found the optimal strategies for evaluation and -interpolation in Toom multiplication. - - Marco Bodrato helped implement the new Toom multiply code for GMP -4.3 and implemented most of the new Toom multiply and squaring code for -5.0. He is the main author of the current mpn_mulmod_bnm1 and -mpn_mullo_n. Marco also wrote the functions mpn_invert and -mpn_invertappr. - - David Harvey suggested the internal function `mpn_bdiv_dbm1', -implementing division relevant to Toom multiplication. He also worked -on fast assembly sequences, in particular on a fast AMD64 -`mpn_mul_basecase'. - - Martin Boij wrote `mpn_perfect_power_p'. - - (This list is chronological, not ordered after significance. If you -have contributed to GMP but are not listed above, please tell - about the omission!) - - The development of floating point functions of GNU MP 2, were -supported in part by the ESPRIT-BRA (Basic Research Activities) 6846 -project POSSO (POlynomial System SOlving). - - The development of GMP 2, 3, and 4 was supported in part by the IDA -Center for Computing Sciences. - - Thanks go to Hans Thorsen for donating an SGI system for the GMP -test system environment. - - -File: gmp.info, Node: References, Next: GNU Free Documentation License, Prev: Contributors, Up: Top - -Appendix B References -********************* - -B.1 Books -========= - - * Jonathan M. Borwein and Peter B. Borwein, "Pi and the AGM: A Study - in Analytic Number Theory and Computational Complexity", Wiley, - 1998. - - * Richard Crandall and Carl Pomerance, "Prime Numbers: A - Computational Perspective", 2nd edition, Springer-Verlag, 2005. - `http://math.dartmouth.edu/~carlp/' - - * Henri Cohen, "A Course in Computational Algebraic Number Theory", - Graduate Texts in Mathematics number 138, Springer-Verlag, 1993. - `http://www.math.u-bordeaux.fr/~cohen/' - - * Donald E. Knuth, "The Art of Computer Programming", volume 2, - "Seminumerical Algorithms", 3rd edition, Addison-Wesley, 1998. - `http://www-cs-faculty.stanford.edu/~knuth/taocp.html' - - * John D. Lipson, "Elements of Algebra and Algebraic Computing", The - Benjamin Cummings Publishing Company Inc, 1981. - - * Alfred J. Menezes, Paul C. van Oorschot and Scott A. Vanstone, - "Handbook of Applied Cryptography", - `http://www.cacr.math.uwaterloo.ca/hac/' - - * Richard M. Stallman and the GCC Developer Community, "Using the - GNU Compiler Collection", Free Software Foundation, 2008, - available online `http://gcc.gnu.org/onlinedocs/', and in the GCC - package `ftp://ftp.gnu.org/gnu/gcc/' - -B.2 Papers -========== - - * Yves Bertot, Nicolas Magaud and Paul Zimmermann, "A Proof of GMP - Square Root", Journal of Automated Reasoning, volume 29, 2002, pp. - 225-252. Also available online as INRIA Research Report 4475, - June 2001, `http://www.inria.fr/rrrt/rr-4475.html' - - * Christoph Burnikel and Joachim Ziegler, "Fast Recursive Division", - Max-Planck-Institut fuer Informatik Research Report MPI-I-98-1-022, - `http://data.mpi-sb.mpg.de/internet/reports.nsf/NumberView/1998-1-022' - - * Torbjo"rn Granlund and Peter L. Montgomery, "Division by Invariant - Integers using Multiplication", in Proceedings of the SIGPLAN - PLDI'94 Conference, June 1994. Also available - `ftp://ftp.cwi.nl/pub/pmontgom/divcnst.psa4.gz' (and .psl.gz). - - * Niels Mo"ller and Torbjo"rn Granlund, "Improved division by - invariant integers", to appear. - - * Torbjo"rn Granlund and Niels Mo"ller, "Division of integers large - and small", to appear. - - * Tudor Jebelean, "An algorithm for exact division", Journal of - Symbolic Computation, volume 15, 1993, pp. 169-180. Research - report version available - `ftp://ftp.risc.uni-linz.ac.at/pub/techreports/1992/92-35.ps.gz' - - * Tudor Jebelean, "Exact Division with Karatsuba Complexity - - Extended Abstract", RISC-Linz technical report 96-31, - `ftp://ftp.risc.uni-linz.ac.at/pub/techreports/1996/96-31.ps.gz' - - * Tudor Jebelean, "Practical Integer Division with Karatsuba - Complexity", ISSAC 97, pp. 339-341. Technical report available - `ftp://ftp.risc.uni-linz.ac.at/pub/techreports/1996/96-29.ps.gz' - - * Tudor Jebelean, "A Generalization of the Binary GCD Algorithm", - ISSAC 93, pp. 111-116. Technical report version available - `ftp://ftp.risc.uni-linz.ac.at/pub/techreports/1993/93-01.ps.gz' - - * Tudor Jebelean, "A Double-Digit Lehmer-Euclid Algorithm for - Finding the GCD of Long Integers", Journal of Symbolic - Computation, volume 19, 1995, pp. 145-157. Technical report - version also available - `ftp://ftp.risc.uni-linz.ac.at/pub/techreports/1992/92-69.ps.gz' - - * Werner Krandick and Tudor Jebelean, "Bidirectional Exact Integer - Division", Journal of Symbolic Computation, volume 21, 1996, pp. - 441-455. Early technical report version also available - `ftp://ftp.risc.uni-linz.ac.at/pub/techreports/1994/94-50.ps.gz' - - * Makoto Matsumoto and Takuji Nishimura, "Mersenne Twister: A - 623-dimensionally equidistributed uniform pseudorandom number - generator", ACM Transactions on Modelling and Computer Simulation, - volume 8, January 1998, pp. 3-30. Available online - `http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/ARTICLES/mt.ps.gz' - (or .pdf) - - * R. Moenck and A. Borodin, "Fast Modular Transforms via Division", - Proceedings of the 13th Annual IEEE Symposium on Switching and - Automata Theory, October 1972, pp. 90-96. Reprinted as "Fast - Modular Transforms", Journal of Computer and System Sciences, - volume 8, number 3, June 1974, pp. 366-386. - - * Niels Mo"ller, "On Scho"nhage's algorithm and subquadratic integer - GCD computation", in Mathematics of Computation, volume 77, - January 2008, pp. 589-607. - - * Peter L. Montgomery, "Modular Multiplication Without Trial - Division", in Mathematics of Computation, volume 44, number 170, - April 1985. - - * Arnold Scho"nhage and Volker Strassen, "Schnelle Multiplikation - grosser Zahlen", Computing 7, 1971, pp. 281-292. - - * Kenneth Weber, "The accelerated integer GCD algorithm", ACM - Transactions on Mathematical Software, volume 21, number 1, March - 1995, pp. 111-122. - - * Paul Zimmermann, "Karatsuba Square Root", INRIA Research Report - 3805, November 1999, `http://www.inria.fr/rrrt/rr-3805.html' - - * Paul Zimmermann, "A Proof of GMP Fast Division and Square Root - Implementations", - `http://www.loria.fr/~zimmerma/papers/proof-div-sqrt.ps.gz' - - * Dan Zuras, "On Squaring and Multiplying Large Integers", ARITH-11: - IEEE Symposium on Computer Arithmetic, 1993, pp. 260 to 271. - Reprinted as "More on Multiplying and Squaring Large Integers", - IEEE Transactions on Computers, volume 43, number 8, August 1994, - pp. 899-908. - - -File: gmp.info, Node: GNU Free Documentation License, Next: Concept Index, Prev: References, Up: Top - -Appendix C GNU Free Documentation License -***************************************** - - Version 1.3, 3 November 2008 - - Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. - `http://fsf.org/' - - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - 0. PREAMBLE - - The purpose of this License is to make a manual, textbook, or other - functional and useful document "free" in the sense of freedom: to - assure everyone the effective freedom to copy and redistribute it, - with or without modifying it, either commercially or - noncommercially. Secondarily, this License preserves for the - author and publisher a way to get credit for their work, while not - being considered responsible for modifications made by others. - - This License is a kind of "copyleft", which means that derivative - works of the document must themselves be free in the same sense. - It complements the GNU General Public License, which is a copyleft - license designed for free software. - - We have designed this License in order to use it for manuals for - free software, because free software needs free documentation: a - free program should come with manuals providing the same freedoms - that the software does. But this License is not limited to - software manuals; it can be used for any textual work, regardless - of subject matter or whether it is published as a printed book. - We recommend this License principally for works whose purpose is - instruction or reference. - - 1. APPLICABILITY AND DEFINITIONS - - This License applies to any manual or other work, in any medium, - that contains a notice placed by the copyright holder saying it - can be distributed under the terms of this License. Such a notice - grants a world-wide, royalty-free license, unlimited in duration, - to use that work under the conditions stated herein. The - "Document", below, refers to any such manual or work. Any member - of the public is a licensee, and is addressed as "you". You - accept the license if you copy, modify or distribute the work in a - way requiring permission under copyright law. - - A "Modified Version" of the Document means any work containing the - Document or a portion of it, either copied verbatim, or with - modifications and/or translated into another language. - - A "Secondary Section" is a named appendix or a front-matter section - of the Document that deals exclusively with the relationship of the - publishers or authors of the Document to the Document's overall - subject (or to related matters) and contains nothing that could - fall directly within that overall subject. (Thus, if the Document - is in part a textbook of mathematics, a Secondary Section may not - explain any mathematics.) The relationship could be a matter of - historical connection with the subject or with related matters, or - of legal, commercial, philosophical, ethical or political position - regarding them. - - The "Invariant Sections" are certain Secondary Sections whose - titles are designated, as being those of Invariant Sections, in - the notice that says that the Document is released under this - License. If a section does not fit the above definition of - Secondary then it is not allowed to be designated as Invariant. - The Document may contain zero Invariant Sections. If the Document - does not identify any Invariant Sections then there are none. - - The "Cover Texts" are certain short passages of text that are - listed, as Front-Cover Texts or Back-Cover Texts, in the notice - that says that the Document is released under this License. A - Front-Cover Text may be at most 5 words, and a Back-Cover Text may - be at most 25 words. - - A "Transparent" copy of the Document means a machine-readable copy, - represented in a format whose specification is available to the - general public, that is suitable for revising the document - straightforwardly with generic text editors or (for images - composed of pixels) generic paint programs or (for drawings) some - widely available drawing editor, and that is suitable for input to - text formatters or for automatic translation to a variety of - formats suitable for input to text formatters. A copy made in an - otherwise Transparent file format whose markup, or absence of - markup, has been arranged to thwart or discourage subsequent - modification by readers is not Transparent. An image format is - not Transparent if used for any substantial amount of text. A - copy that is not "Transparent" is called "Opaque". - - Examples of suitable formats for Transparent copies include plain - ASCII without markup, Texinfo input format, LaTeX input format, - SGML or XML using a publicly available DTD, and - standard-conforming simple HTML, PostScript or PDF designed for - human modification. Examples of transparent image formats include - PNG, XCF and JPG. Opaque formats include proprietary formats that - can be read and edited only by proprietary word processors, SGML or - XML for which the DTD and/or processing tools are not generally - available, and the machine-generated HTML, PostScript or PDF - produced by some word processors for output purposes only. - - The "Title Page" means, for a printed book, the title page itself, - plus such following pages as are needed to hold, legibly, the - material this License requires to appear in the title page. For - works in formats which do not have any title page as such, "Title - Page" means the text near the most prominent appearance of the - work's title, preceding the beginning of the body of the text. - - The "publisher" means any person or entity that distributes copies - of the Document to the public. - - A section "Entitled XYZ" means a named subunit of the Document - whose title either is precisely XYZ or contains XYZ in parentheses - following text that translates XYZ in another language. (Here XYZ - stands for a specific section name mentioned below, such as - "Acknowledgements", "Dedications", "Endorsements", or "History".) - To "Preserve the Title" of such a section when you modify the - Document means that it remains a section "Entitled XYZ" according - to this definition. - - The Document may include Warranty Disclaimers next to the notice - which states that this License applies to the Document. These - Warranty Disclaimers are considered to be included by reference in - this License, but only as regards disclaiming warranties: any other - implication that these Warranty Disclaimers may have is void and - has no effect on the meaning of this License. - - 2. VERBATIM COPYING - - You may copy and distribute the Document in any medium, either - commercially or noncommercially, provided that this License, the - copyright notices, and the license notice saying this License - applies to the Document are reproduced in all copies, and that you - add no other conditions whatsoever to those of this License. You - may not use technical measures to obstruct or control the reading - or further copying of the copies you make or distribute. However, - you may accept compensation in exchange for copies. If you - distribute a large enough number of copies you must also follow - the conditions in section 3. - - You may also lend copies, under the same conditions stated above, - and you may publicly display copies. - - 3. COPYING IN QUANTITY - - If you publish printed copies (or copies in media that commonly - have printed covers) of the Document, numbering more than 100, and - the Document's license notice requires Cover Texts, you must - enclose the copies in covers that carry, clearly and legibly, all - these Cover Texts: Front-Cover Texts on the front cover, and - Back-Cover Texts on the back cover. Both covers must also clearly - and legibly identify you as the publisher of these copies. The - front cover must present the full title with all words of the - title equally prominent and visible. You may add other material - on the covers in addition. Copying with changes limited to the - covers, as long as they preserve the title of the Document and - satisfy these conditions, can be treated as verbatim copying in - other respects. - - If the required texts for either cover are too voluminous to fit - legibly, you should put the first ones listed (as many as fit - reasonably) on the actual cover, and continue the rest onto - adjacent pages. - - If you publish or distribute Opaque copies of the Document - numbering more than 100, you must either include a - machine-readable Transparent copy along with each Opaque copy, or - state in or with each Opaque copy a computer-network location from - which the general network-using public has access to download - using public-standard network protocols a complete Transparent - copy of the Document, free of added material. If you use the - latter option, you must take reasonably prudent steps, when you - begin distribution of Opaque copies in quantity, to ensure that - this Transparent copy will remain thus accessible at the stated - location until at least one year after the last time you - distribute an Opaque copy (directly or through your agents or - retailers) of that edition to the public. - - It is requested, but not required, that you contact the authors of - the Document well before redistributing any large number of - copies, to give them a chance to provide you with an updated - version of the Document. - - 4. MODIFICATIONS - - You may copy and distribute a Modified Version of the Document - under the conditions of sections 2 and 3 above, provided that you - release the Modified Version under precisely this License, with - the Modified Version filling the role of the Document, thus - licensing distribution and modification of the Modified Version to - whoever possesses a copy of it. In addition, you must do these - things in the Modified Version: - - A. Use in the Title Page (and on the covers, if any) a title - distinct from that of the Document, and from those of - previous versions (which should, if there were any, be listed - in the History section of the Document). You may use the - same title as a previous version if the original publisher of - that version gives permission. - - B. List on the Title Page, as authors, one or more persons or - entities responsible for authorship of the modifications in - the Modified Version, together with at least five of the - principal authors of the Document (all of its principal - authors, if it has fewer than five), unless they release you - from this requirement. - - C. State on the Title page the name of the publisher of the - Modified Version, as the publisher. - - D. Preserve all the copyright notices of the Document. - - E. Add an appropriate copyright notice for your modifications - adjacent to the other copyright notices. - - F. Include, immediately after the copyright notices, a license - notice giving the public permission to use the Modified - Version under the terms of this License, in the form shown in - the Addendum below. - - G. Preserve in that license notice the full lists of Invariant - Sections and required Cover Texts given in the Document's - license notice. - - H. Include an unaltered copy of this License. - - I. Preserve the section Entitled "History", Preserve its Title, - and add to it an item stating at least the title, year, new - authors, and publisher of the Modified Version as given on - the Title Page. If there is no section Entitled "History" in - the Document, create one stating the title, year, authors, - and publisher of the Document as given on its Title Page, - then add an item describing the Modified Version as stated in - the previous sentence. - - J. Preserve the network location, if any, given in the Document - for public access to a Transparent copy of the Document, and - likewise the network locations given in the Document for - previous versions it was based on. These may be placed in - the "History" section. You may omit a network location for a - work that was published at least four years before the - Document itself, or if the original publisher of the version - it refers to gives permission. - - K. For any section Entitled "Acknowledgements" or "Dedications", - Preserve the Title of the section, and preserve in the - section all the substance and tone of each of the contributor - acknowledgements and/or dedications given therein. - - L. Preserve all the Invariant Sections of the Document, - unaltered in their text and in their titles. Section numbers - or the equivalent are not considered part of the section - titles. - - M. Delete any section Entitled "Endorsements". Such a section - may not be included in the Modified Version. - - N. Do not retitle any existing section to be Entitled - "Endorsements" or to conflict in title with any Invariant - Section. - - O. Preserve any Warranty Disclaimers. - - If the Modified Version includes new front-matter sections or - appendices that qualify as Secondary Sections and contain no - material copied from the Document, you may at your option - designate some or all of these sections as invariant. To do this, - add their titles to the list of Invariant Sections in the Modified - Version's license notice. These titles must be distinct from any - other section titles. - - You may add a section Entitled "Endorsements", provided it contains - nothing but endorsements of your Modified Version by various - parties--for example, statements of peer review or that the text - has been approved by an organization as the authoritative - definition of a standard. - - You may add a passage of up to five words as a Front-Cover Text, - and a passage of up to 25 words as a Back-Cover Text, to the end - of the list of Cover Texts in the Modified Version. Only one - passage of Front-Cover Text and one of Back-Cover Text may be - added by (or through arrangements made by) any one entity. If the - Document already includes a cover text for the same cover, - previously added by you or by arrangement made by the same entity - you are acting on behalf of, you may not add another; but you may - replace the old one, on explicit permission from the previous - publisher that added the old one. - - The author(s) and publisher(s) of the Document do not by this - License give permission to use their names for publicity for or to - assert or imply endorsement of any Modified Version. - - 5. COMBINING DOCUMENTS - - You may combine the Document with other documents released under - this License, under the terms defined in section 4 above for - modified versions, provided that you include in the combination - all of the Invariant Sections of all of the original documents, - unmodified, and list them all as Invariant Sections of your - combined work in its license notice, and that you preserve all - their Warranty Disclaimers. - - The combined work need only contain one copy of this License, and - multiple identical Invariant Sections may be replaced with a single - copy. If there are multiple Invariant Sections with the same name - but different contents, make the title of each such section unique - by adding at the end of it, in parentheses, the name of the - original author or publisher of that section if known, or else a - unique number. Make the same adjustment to the section titles in - the list of Invariant Sections in the license notice of the - combined work. - - In the combination, you must combine any sections Entitled - "History" in the various original documents, forming one section - Entitled "History"; likewise combine any sections Entitled - "Acknowledgements", and any sections Entitled "Dedications". You - must delete all sections Entitled "Endorsements." - - 6. COLLECTIONS OF DOCUMENTS - - You may make a collection consisting of the Document and other - documents released under this License, and replace the individual - copies of this License in the various documents with a single copy - that is included in the collection, provided that you follow the - rules of this License for verbatim copying of each of the - documents in all other respects. - - You may extract a single document from such a collection, and - distribute it individually under this License, provided you insert - a copy of this License into the extracted document, and follow - this License in all other respects regarding verbatim copying of - that document. - - 7. AGGREGATION WITH INDEPENDENT WORKS - - A compilation of the Document or its derivatives with other - separate and independent documents or works, in or on a volume of - a storage or distribution medium, is called an "aggregate" if the - copyright resulting from the compilation is not used to limit the - legal rights of the compilation's users beyond what the individual - works permit. When the Document is included in an aggregate, this - License does not apply to the other works in the aggregate which - are not themselves derivative works of the Document. - - If the Cover Text requirement of section 3 is applicable to these - copies of the Document, then if the Document is less than one half - of the entire aggregate, the Document's Cover Texts may be placed - on covers that bracket the Document within the aggregate, or the - electronic equivalent of covers if the Document is in electronic - form. Otherwise they must appear on printed covers that bracket - the whole aggregate. - - 8. TRANSLATION - - Translation is considered a kind of modification, so you may - distribute translations of the Document under the terms of section - 4. Replacing Invariant Sections with translations requires special - permission from their copyright holders, but you may include - translations of some or all Invariant Sections in addition to the - original versions of these Invariant Sections. You may include a - translation of this License, and all the license notices in the - Document, and any Warranty Disclaimers, provided that you also - include the original English version of this License and the - original versions of those notices and disclaimers. In case of a - disagreement between the translation and the original version of - this License or a notice or disclaimer, the original version will - prevail. - - If a section in the Document is Entitled "Acknowledgements", - "Dedications", or "History", the requirement (section 4) to - Preserve its Title (section 1) will typically require changing the - actual title. - - 9. TERMINATION - - You may not copy, modify, sublicense, or distribute the Document - except as expressly provided under this License. Any attempt - otherwise to copy, modify, sublicense, or distribute it is void, - and will automatically terminate your rights under this License. - - However, if you cease all violation of this License, then your - license from a particular copyright holder is reinstated (a) - provisionally, unless and until the copyright holder explicitly - and finally terminates your license, and (b) permanently, if the - copyright holder fails to notify you of the violation by some - reasonable means prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is - reinstated permanently if the copyright holder notifies you of the - violation by some reasonable means, this is the first time you have - received notice of violation of this License (for any work) from - that copyright holder, and you cure the violation prior to 30 days - after your receipt of the notice. - - Termination of your rights under this section does not terminate - the licenses of parties who have received copies or rights from - you under this License. If your rights have been terminated and - not permanently reinstated, receipt of a copy of some or all of - the same material does not give you any rights to use it. - - 10. FUTURE REVISIONS OF THIS LICENSE - - The Free Software Foundation may publish new, revised versions of - the GNU Free Documentation License from time to time. Such new - versions will be similar in spirit to the present version, but may - differ in detail to address new problems or concerns. See - `http://www.gnu.org/copyleft/'. - - Each version of the License is given a distinguishing version - number. If the Document specifies that a particular numbered - version of this License "or any later version" applies to it, you - have the option of following the terms and conditions either of - that specified version or of any later version that has been - published (not as a draft) by the Free Software Foundation. If - the Document does not specify a version number of this License, - you may choose any version ever published (not as a draft) by the - Free Software Foundation. If the Document specifies that a proxy - can decide which future versions of this License can be used, that - proxy's public statement of acceptance of a version permanently - authorizes you to choose that version for the Document. - - 11. RELICENSING - - "Massive Multiauthor Collaboration Site" (or "MMC Site") means any - World Wide Web server that publishes copyrightable works and also - provides prominent facilities for anybody to edit those works. A - public wiki that anybody can edit is an example of such a server. - A "Massive Multiauthor Collaboration" (or "MMC") contained in the - site means any set of copyrightable works thus published on the MMC - site. - - "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 - license published by Creative Commons Corporation, a not-for-profit - corporation with a principal place of business in San Francisco, - California, as well as future copyleft versions of that license - published by that same organization. - - "Incorporate" means to publish or republish a Document, in whole or - in part, as part of another Document. - - An MMC is "eligible for relicensing" if it is licensed under this - License, and if all works that were first published under this - License somewhere other than this MMC, and subsequently - incorporated in whole or in part into the MMC, (1) had no cover - texts or invariant sections, and (2) were thus incorporated prior - to November 1, 2008. - - The operator of an MMC Site may republish an MMC contained in the - site under CC-BY-SA on the same site at any time before August 1, - 2009, provided the MMC is eligible for relicensing. - - -ADDENDUM: How to use this License for your documents -==================================================== - -To use this License in a document you have written, include a copy of -the License in the document and put the following copyright and license -notices just after the title page: - - Copyright (C) YEAR YOUR NAME. - Permission is granted to copy, distribute and/or modify this document - under the terms of the GNU Free Documentation License, Version 1.3 - or any later version published by the Free Software Foundation; - with no Invariant Sections, no Front-Cover Texts, and no Back-Cover - Texts. A copy of the license is included in the section entitled ``GNU - Free Documentation License''. - - If you have Invariant Sections, Front-Cover Texts and Back-Cover -Texts, replace the "with...Texts." line with this: - - with the Invariant Sections being LIST THEIR TITLES, with - the Front-Cover Texts being LIST, and with the Back-Cover Texts - being LIST. - - If you have Invariant Sections without Cover Texts, or some other -combination of the three, merge those two alternatives to suit the -situation. - - If your document contains nontrivial examples of program code, we -recommend releasing these examples in parallel under your choice of -free software license, such as the GNU General Public License, to -permit their use in free software. - - -File: gmp.info, Node: Concept Index, Next: Function Index, Prev: GNU Free Documentation License, Up: Top - -Concept Index -************* - -[index] -* Menu: - -* #include: Headers and Libraries. - (line 6) -* --build: Build Options. (line 52) -* --disable-fft: Build Options. (line 317) -* --disable-shared: Build Options. (line 45) -* --disable-static: Build Options. (line 45) -* --enable-alloca: Build Options. (line 278) -* --enable-assert: Build Options. (line 327) -* --enable-cxx: Build Options. (line 230) -* --enable-fat: Build Options. (line 164) -* --enable-mpbsd: Build Options. (line 322) -* --enable-profiling <1>: Profiling. (line 6) -* --enable-profiling: Build Options. (line 331) -* --exec-prefix: Build Options. (line 32) -* --host: Build Options. (line 66) -* --prefix: Build Options. (line 32) -* -finstrument-functions: Profiling. (line 66) -* 2exp functions: Efficiency. (line 43) -* 68000: Notes for Particular Systems. - (line 80) -* 80x86: Notes for Particular Systems. - (line 126) -* ABI <1>: Build Options. (line 171) -* ABI: ABI and ISA. (line 6) -* About this manual: Introduction to GMP. (line 58) -* AC_CHECK_LIB: Autoconf. (line 11) -* AIX <1>: ABI and ISA. (line 184) -* AIX <2>: Notes for Particular Systems. - (line 7) -* AIX: ABI and ISA. (line 169) -* Algorithms: Algorithms. (line 6) -* alloca: Build Options. (line 278) -* Allocation of memory: Custom Allocation. (line 6) -* AMD64: ABI and ISA. (line 44) -* Anonymous FTP of latest version: Introduction to GMP. (line 38) -* Application Binary Interface: ABI and ISA. (line 6) -* Arithmetic functions <1>: Float Arithmetic. (line 6) -* Arithmetic functions <2>: Integer Arithmetic. (line 6) -* Arithmetic functions: Rational Arithmetic. (line 6) -* ARM: Notes for Particular Systems. - (line 20) -* Assembly cache handling: Assembly Cache Handling. - (line 6) -* Assembly carry propagation: Assembly Carry Propagation. - (line 6) -* Assembly code organisation: Assembly Code Organisation. - (line 6) -* Assembly coding: Assembly Coding. (line 6) -* Assembly floating Point: Assembly Floating Point. - (line 6) -* Assembly loop unrolling: Assembly Loop Unrolling. - (line 6) -* Assembly SIMD: Assembly SIMD Instructions. - (line 6) -* Assembly software pipelining: Assembly Software Pipelining. - (line 6) -* Assembly writing guide: Assembly Writing Guide. - (line 6) -* Assertion checking <1>: Debugging. (line 79) -* Assertion checking: Build Options. (line 327) -* Assignment functions <1>: Assigning Floats. (line 6) -* Assignment functions <2>: Initializing Rationals. - (line 6) -* Assignment functions <3>: Simultaneous Integer Init & Assign. - (line 6) -* Assignment functions <4>: Simultaneous Float Init & Assign. - (line 6) -* Assignment functions: Assigning Integers. (line 6) -* Autoconf: Autoconf. (line 6) -* Basics: GMP Basics. (line 6) -* Berkeley MP compatible functions <1>: Build Options. (line 322) -* Berkeley MP compatible functions: BSD Compatible Functions. - (line 6) -* Binomial coefficient algorithm: Binomial Coefficients Algorithm. - (line 6) -* Binomial coefficient functions: Number Theoretic Functions. - (line 100) -* Binutils strip: Known Build Problems. - (line 28) -* Bit manipulation functions: Integer Logic and Bit Fiddling. - (line 6) -* Bit scanning functions: Integer Logic and Bit Fiddling. - (line 38) -* Bit shift left: Integer Arithmetic. (line 35) -* Bit shift right: Integer Division. (line 53) -* Bits per limb: Useful Macros and Constants. - (line 7) -* BSD MP compatible functions <1>: Build Options. (line 322) -* BSD MP compatible functions: BSD Compatible Functions. - (line 6) -* Bug reporting: Reporting Bugs. (line 6) -* Build directory: Build Options. (line 19) -* Build notes for binary packaging: Notes for Package Builds. - (line 6) -* Build notes for particular systems: Notes for Particular Systems. - (line 6) -* Build options: Build Options. (line 6) -* Build problems known: Known Build Problems. - (line 6) -* Build system: Build Options. (line 52) -* Building GMP: Installing GMP. (line 6) -* Bus error: Debugging. (line 7) -* C compiler: Build Options. (line 182) -* C++ compiler: Build Options. (line 254) -* C++ interface: C++ Class Interface. (line 6) -* C++ interface internals: C++ Interface Internals. - (line 6) -* C++ istream input: C++ Formatted Input. (line 6) -* C++ ostream output: C++ Formatted Output. - (line 6) -* C++ support: Build Options. (line 230) -* CC: Build Options. (line 182) -* CC_FOR_BUILD: Build Options. (line 217) -* CFLAGS: Build Options. (line 182) -* Checker: Debugging. (line 115) -* checkergcc: Debugging. (line 122) -* Code organisation: Assembly Code Organisation. - (line 6) -* Compaq C++: Notes for Particular Systems. - (line 25) -* Comparison functions <1>: Integer Comparisons. (line 6) -* Comparison functions <2>: Comparing Rationals. (line 6) -* Comparison functions: Float Comparison. (line 6) -* Compatibility with older versions: Compatibility with older versions. - (line 6) -* Conditions for copying GNU MP: Copying. (line 6) -* Configuring GMP: Installing GMP. (line 6) -* Congruence algorithm: Exact Remainder. (line 29) -* Congruence functions: Integer Division. (line 124) -* Constants: Useful Macros and Constants. - (line 6) -* Contributors: Contributors. (line 6) -* Conventions for parameters: Parameter Conventions. - (line 6) -* Conventions for variables: Variable Conventions. - (line 6) -* Conversion functions <1>: Converting Integers. (line 6) -* Conversion functions <2>: Converting Floats. (line 6) -* Conversion functions: Rational Conversions. - (line 6) -* Copying conditions: Copying. (line 6) -* CPPFLAGS: Build Options. (line 208) -* CPU types <1>: Introduction to GMP. (line 24) -* CPU types: Build Options. (line 108) -* Cross compiling: Build Options. (line 66) -* Custom allocation: Custom Allocation. (line 6) -* CXX: Build Options. (line 254) -* CXXFLAGS: Build Options. (line 254) -* Cygwin: Notes for Particular Systems. - (line 43) -* Darwin: Known Build Problems. - (line 51) -* Debugging: Debugging. (line 6) -* Demonstration programs: Demonstration Programs. - (line 6) -* Digits in an integer: Miscellaneous Integer Functions. - (line 23) -* Divisibility algorithm: Exact Remainder. (line 29) -* Divisibility functions: Integer Division. (line 124) -* Divisibility testing: Efficiency. (line 91) -* Division algorithms: Division Algorithms. (line 6) -* Division functions <1>: Rational Arithmetic. (line 22) -* Division functions <2>: Integer Division. (line 6) -* Division functions: Float Arithmetic. (line 33) -* DJGPP <1>: Notes for Particular Systems. - (line 43) -* DJGPP: Known Build Problems. - (line 18) -* DLLs: Notes for Particular Systems. - (line 56) -* DocBook: Build Options. (line 354) -* Documentation formats: Build Options. (line 347) -* Documentation license: GNU Free Documentation License. - (line 6) -* DVI: Build Options. (line 350) -* Efficiency: Efficiency. (line 6) -* Emacs: Emacs. (line 6) -* Exact division functions: Integer Division. (line 102) -* Exact remainder: Exact Remainder. (line 6) -* Example programs: Demonstration Programs. - (line 6) -* Exec prefix: Build Options. (line 32) -* Execution profiling <1>: Profiling. (line 6) -* Execution profiling: Build Options. (line 331) -* Exponentiation functions <1>: Integer Exponentiation. - (line 6) -* Exponentiation functions: Float Arithmetic. (line 41) -* Export: Integer Import and Export. - (line 45) -* Expression parsing demo: Demonstration Programs. - (line 18) -* Extended GCD: Number Theoretic Functions. - (line 45) -* Factor removal functions: Number Theoretic Functions. - (line 90) -* Factorial algorithm: Factorial Algorithm. (line 6) -* Factorial functions: Number Theoretic Functions. - (line 95) -* Factorization demo: Demonstration Programs. - (line 25) -* Fast Fourier Transform: FFT Multiplication. (line 6) -* Fat binary: Build Options. (line 164) -* FFT multiplication <1>: FFT Multiplication. (line 6) -* FFT multiplication: Build Options. (line 317) -* Fibonacci number algorithm: Fibonacci Numbers Algorithm. - (line 6) -* Fibonacci sequence functions: Number Theoretic Functions. - (line 108) -* Float arithmetic functions: Float Arithmetic. (line 6) -* Float assignment functions <1>: Simultaneous Float Init & Assign. - (line 6) -* Float assignment functions: Assigning Floats. (line 6) -* Float comparison functions: Float Comparison. (line 6) -* Float conversion functions: Converting Floats. (line 6) -* Float functions: Floating-point Functions. - (line 6) -* Float initialization functions <1>: Simultaneous Float Init & Assign. - (line 6) -* Float initialization functions: Initializing Floats. (line 6) -* Float input and output functions: I/O of Floats. (line 6) -* Float internals: Float Internals. (line 6) -* Float miscellaneous functions: Miscellaneous Float Functions. - (line 6) -* Float random number functions: Miscellaneous Float Functions. - (line 27) -* Float rounding functions: Miscellaneous Float Functions. - (line 9) -* Float sign tests: Float Comparison. (line 33) -* Floating point mode: Notes for Particular Systems. - (line 34) -* Floating-point functions: Floating-point Functions. - (line 6) -* Floating-point number: Nomenclature and Types. - (line 21) -* fnccheck: Profiling. (line 77) -* Formatted input: Formatted Input. (line 6) -* Formatted output: Formatted Output. (line 6) -* Free Documentation License: GNU Free Documentation License. - (line 6) -* frexp <1>: Converting Floats. (line 23) -* frexp: Converting Integers. (line 42) -* FTP of latest version: Introduction to GMP. (line 38) -* Function classes: Function Classes. (line 6) -* FunctionCheck: Profiling. (line 77) -* GCC Checker: Debugging. (line 115) -* GCD algorithms: Greatest Common Divisor Algorithms. - (line 6) -* GCD extended: Number Theoretic Functions. - (line 45) -* GCD functions: Number Theoretic Functions. - (line 30) -* GDB: Debugging. (line 58) -* Generic C: Build Options. (line 153) -* GMP Perl module: Demonstration Programs. - (line 35) -* GMP version number: Useful Macros and Constants. - (line 12) -* gmp.h: Headers and Libraries. - (line 6) -* gmpxx.h: C++ Interface General. - (line 8) -* GNU Debugger: Debugging. (line 58) -* GNU Free Documentation License: GNU Free Documentation License. - (line 6) -* GNU strip: Known Build Problems. - (line 28) -* gprof: Profiling. (line 41) -* Greatest common divisor algorithms: Greatest Common Divisor Algorithms. - (line 6) -* Greatest common divisor functions: Number Theoretic Functions. - (line 30) -* Hardware floating point mode: Notes for Particular Systems. - (line 34) -* Headers: Headers and Libraries. - (line 6) -* Heap problems: Debugging. (line 24) -* Home page: Introduction to GMP. (line 34) -* Host system: Build Options. (line 66) -* HP-UX: ABI and ISA. (line 107) -* HPPA: ABI and ISA. (line 68) -* I/O functions <1>: I/O of Integers. (line 6) -* I/O functions <2>: I/O of Rationals. (line 6) -* I/O functions: I/O of Floats. (line 6) -* i386: Notes for Particular Systems. - (line 126) -* IA-64: ABI and ISA. (line 107) -* Import: Integer Import and Export. - (line 11) -* In-place operations: Efficiency. (line 57) -* Include files: Headers and Libraries. - (line 6) -* info-lookup-symbol: Emacs. (line 6) -* Initialization functions <1>: Initializing Integers. - (line 6) -* Initialization functions <2>: Initializing Rationals. - (line 6) -* Initialization functions <3>: Random State Initialization. - (line 6) -* Initialization functions <4>: Simultaneous Float Init & Assign. - (line 6) -* Initialization functions <5>: Simultaneous Integer Init & Assign. - (line 6) -* Initialization functions: Initializing Floats. (line 6) -* Initializing and clearing: Efficiency. (line 21) -* Input functions <1>: I/O of Integers. (line 6) -* Input functions <2>: I/O of Rationals. (line 6) -* Input functions <3>: I/O of Floats. (line 6) -* Input functions: Formatted Input Functions. - (line 6) -* Install prefix: Build Options. (line 32) -* Installing GMP: Installing GMP. (line 6) -* Instruction Set Architecture: ABI and ISA. (line 6) -* instrument-functions: Profiling. (line 66) -* Integer: Nomenclature and Types. - (line 6) -* Integer arithmetic functions: Integer Arithmetic. (line 6) -* Integer assignment functions <1>: Simultaneous Integer Init & Assign. - (line 6) -* Integer assignment functions: Assigning Integers. (line 6) -* Integer bit manipulation functions: Integer Logic and Bit Fiddling. - (line 6) -* Integer comparison functions: Integer Comparisons. (line 6) -* Integer conversion functions: Converting Integers. (line 6) -* Integer division functions: Integer Division. (line 6) -* Integer exponentiation functions: Integer Exponentiation. - (line 6) -* Integer export: Integer Import and Export. - (line 45) -* Integer functions: Integer Functions. (line 6) -* Integer import: Integer Import and Export. - (line 11) -* Integer initialization functions <1>: Simultaneous Integer Init & Assign. - (line 6) -* Integer initialization functions: Initializing Integers. - (line 6) -* Integer input and output functions: I/O of Integers. (line 6) -* Integer internals: Integer Internals. (line 6) -* Integer logical functions: Integer Logic and Bit Fiddling. - (line 6) -* Integer miscellaneous functions: Miscellaneous Integer Functions. - (line 6) -* Integer random number functions: Integer Random Numbers. - (line 6) -* Integer root functions: Integer Roots. (line 6) -* Integer sign tests: Integer Comparisons. (line 28) -* Integer special functions: Integer Special Functions. - (line 6) -* Interix: Notes for Particular Systems. - (line 51) -* Internals: Internals. (line 6) -* Introduction: Introduction to GMP. (line 6) -* Inverse modulo functions: Number Theoretic Functions. - (line 60) -* IRIX <1>: Known Build Problems. - (line 38) -* IRIX: ABI and ISA. (line 132) -* ISA: ABI and ISA. (line 6) -* istream input: C++ Formatted Input. (line 6) -* Jacobi symbol algorithm: Jacobi Symbol. (line 6) -* Jacobi symbol functions: Number Theoretic Functions. - (line 66) -* Karatsuba multiplication: Karatsuba Multiplication. - (line 6) -* Karatsuba square root algorithm: Square Root Algorithm. - (line 6) -* Kronecker symbol functions: Number Theoretic Functions. - (line 78) -* Language bindings: Language Bindings. (line 6) -* Latest version of GMP: Introduction to GMP. (line 38) -* LCM functions: Number Theoretic Functions. - (line 55) -* Least common multiple functions: Number Theoretic Functions. - (line 55) -* Legendre symbol functions: Number Theoretic Functions. - (line 69) -* libgmp: Headers and Libraries. - (line 22) -* libgmpxx: Headers and Libraries. - (line 27) -* Libraries: Headers and Libraries. - (line 22) -* Libtool: Headers and Libraries. - (line 33) -* Libtool versioning: Notes for Package Builds. - (line 9) -* License conditions: Copying. (line 6) -* Limb: Nomenclature and Types. - (line 31) -* Limb size: Useful Macros and Constants. - (line 7) -* Linear congruential algorithm: Random Number Algorithms. - (line 25) -* Linear congruential random numbers: Random State Initialization. - (line 32) -* Linking: Headers and Libraries. - (line 22) -* Logical functions: Integer Logic and Bit Fiddling. - (line 6) -* Low-level functions: Low-level Functions. (line 6) -* Lucas number algorithm: Lucas Numbers Algorithm. - (line 6) -* Lucas number functions: Number Theoretic Functions. - (line 119) -* MacOS X: Known Build Problems. - (line 51) -* Mailing lists: Introduction to GMP. (line 45) -* Malloc debugger: Debugging. (line 30) -* Malloc problems: Debugging. (line 24) -* Memory allocation: Custom Allocation. (line 6) -* Memory management: Memory Management. (line 6) -* Mersenne twister algorithm: Random Number Algorithms. - (line 17) -* Mersenne twister random numbers: Random State Initialization. - (line 13) -* MINGW: Notes for Particular Systems. - (line 43) -* MIPS: ABI and ISA. (line 132) -* Miscellaneous float functions: Miscellaneous Float Functions. - (line 6) -* Miscellaneous integer functions: Miscellaneous Integer Functions. - (line 6) -* MMX: Notes for Particular Systems. - (line 132) -* Modular inverse functions: Number Theoretic Functions. - (line 60) -* Most significant bit: Miscellaneous Integer Functions. - (line 34) -* mp.h: BSD Compatible Functions. - (line 21) -* MPN_PATH: Build Options. (line 335) -* MS Windows: Notes for Particular Systems. - (line 56) -* MS-DOS: Notes for Particular Systems. - (line 43) -* Multi-threading: Reentrancy. (line 6) -* Multiplication algorithms: Multiplication Algorithms. - (line 6) -* Nails: Low-level Functions. (line 478) -* Native compilation: Build Options. (line 52) -* NeXT: Known Build Problems. - (line 57) -* Next prime function: Number Theoretic Functions. - (line 23) -* Nomenclature: Nomenclature and Types. - (line 6) -* Non-Unix systems: Build Options. (line 11) -* Nth root algorithm: Nth Root Algorithm. (line 6) -* Number sequences: Efficiency. (line 147) -* Number theoretic functions: Number Theoretic Functions. - (line 6) -* Numerator and denominator: Applying Integer Functions. - (line 6) -* obstack output: Formatted Output Functions. - (line 81) -* OpenBSD: Notes for Particular Systems. - (line 86) -* Optimizing performance: Performance optimization. - (line 6) -* ostream output: C++ Formatted Output. - (line 6) -* Other languages: Language Bindings. (line 6) -* Output functions <1>: I/O of Floats. (line 6) -* Output functions <2>: I/O of Rationals. (line 6) -* Output functions <3>: Formatted Output Functions. - (line 6) -* Output functions: I/O of Integers. (line 6) -* Packaged builds: Notes for Package Builds. - (line 6) -* Parameter conventions: Parameter Conventions. - (line 6) -* Parsing expressions demo: Demonstration Programs. - (line 21) -* Particular systems: Notes for Particular Systems. - (line 6) -* Past GMP versions: Compatibility with older versions. - (line 6) -* PDF: Build Options. (line 350) -* Perfect power algorithm: Perfect Power Algorithm. - (line 6) -* Perfect power functions: Integer Roots. (line 27) -* Perfect square algorithm: Perfect Square Algorithm. - (line 6) -* Perfect square functions: Integer Roots. (line 36) -* perl: Demonstration Programs. - (line 35) -* Perl module: Demonstration Programs. - (line 35) -* Postscript: Build Options. (line 350) -* Power/PowerPC <1>: Known Build Problems. - (line 63) -* Power/PowerPC: Notes for Particular Systems. - (line 92) -* Powering algorithms: Powering Algorithms. (line 6) -* Powering functions <1>: Float Arithmetic. (line 41) -* Powering functions: Integer Exponentiation. - (line 6) -* PowerPC: ABI and ISA. (line 167) -* Precision of floats: Floating-point Functions. - (line 6) -* Precision of hardware floating point: Notes for Particular Systems. - (line 34) -* Prefix: Build Options. (line 32) -* Prime testing algorithms: Prime Testing Algorithm. - (line 6) -* Prime testing functions: Number Theoretic Functions. - (line 7) -* printf formatted output: Formatted Output. (line 6) -* Probable prime testing functions: Number Theoretic Functions. - (line 7) -* prof: Profiling. (line 24) -* Profiling: Profiling. (line 6) -* Radix conversion algorithms: Radix Conversion Algorithms. - (line 6) -* Random number algorithms: Random Number Algorithms. - (line 6) -* Random number functions <1>: Integer Random Numbers. - (line 6) -* Random number functions <2>: Miscellaneous Float Functions. - (line 27) -* Random number functions: Random Number Functions. - (line 6) -* Random number seeding: Random State Seeding. - (line 6) -* Random number state: Random State Initialization. - (line 6) -* Random state: Nomenclature and Types. - (line 46) -* Rational arithmetic: Efficiency. (line 113) -* Rational arithmetic functions: Rational Arithmetic. (line 6) -* Rational assignment functions: Initializing Rationals. - (line 6) -* Rational comparison functions: Comparing Rationals. (line 6) -* Rational conversion functions: Rational Conversions. - (line 6) -* Rational initialization functions: Initializing Rationals. - (line 6) -* Rational input and output functions: I/O of Rationals. (line 6) -* Rational internals: Rational Internals. (line 6) -* Rational number: Nomenclature and Types. - (line 16) -* Rational number functions: Rational Number Functions. - (line 6) -* Rational numerator and denominator: Applying Integer Functions. - (line 6) -* Rational sign tests: Comparing Rationals. (line 27) -* Raw output internals: Raw Output Internals. - (line 6) -* Reallocations: Efficiency. (line 30) -* Reentrancy: Reentrancy. (line 6) -* References: References. (line 6) -* Remove factor functions: Number Theoretic Functions. - (line 90) -* Reporting bugs: Reporting Bugs. (line 6) -* Root extraction algorithm: Nth Root Algorithm. (line 6) -* Root extraction algorithms: Root Extraction Algorithms. - (line 6) -* Root extraction functions <1>: Float Arithmetic. (line 37) -* Root extraction functions: Integer Roots. (line 6) -* Root testing functions: Integer Roots. (line 36) -* Rounding functions: Miscellaneous Float Functions. - (line 9) -* Sample programs: Demonstration Programs. - (line 6) -* Scan bit functions: Integer Logic and Bit Fiddling. - (line 38) -* scanf formatted input: Formatted Input. (line 6) -* SCO: Known Build Problems. - (line 38) -* Seeding random numbers: Random State Seeding. - (line 6) -* Segmentation violation: Debugging. (line 7) -* Sequent Symmetry: Known Build Problems. - (line 68) -* Services for Unix: Notes for Particular Systems. - (line 51) -* Shared library versioning: Notes for Package Builds. - (line 9) -* Sign tests <1>: Float Comparison. (line 33) -* Sign tests <2>: Integer Comparisons. (line 28) -* Sign tests: Comparing Rationals. (line 27) -* Size in digits: Miscellaneous Integer Functions. - (line 23) -* Small operands: Efficiency. (line 7) -* Solaris <1>: ABI and ISA. (line 201) -* Solaris: Known Build Problems. - (line 78) -* Sparc: Notes for Particular Systems. - (line 108) -* Sparc V9: ABI and ISA. (line 201) -* Special integer functions: Integer Special Functions. - (line 6) -* Square root algorithm: Square Root Algorithm. - (line 6) -* SSE2: Notes for Particular Systems. - (line 132) -* Stack backtrace: Debugging. (line 50) -* Stack overflow <1>: Debugging. (line 7) -* Stack overflow: Build Options. (line 278) -* Static linking: Efficiency. (line 14) -* stdarg.h: Headers and Libraries. - (line 17) -* stdio.h: Headers and Libraries. - (line 11) -* Stripped libraries: Known Build Problems. - (line 28) -* Sun: ABI and ISA. (line 201) -* SunOS: Notes for Particular Systems. - (line 120) -* Systems: Notes for Particular Systems. - (line 6) -* Temporary memory: Build Options. (line 278) -* Texinfo: Build Options. (line 347) -* Text input/output: Efficiency. (line 153) -* Thread safety: Reentrancy. (line 6) -* Toom multiplication <1>: Other Multiplication. - (line 6) -* Toom multiplication <2>: Toom 4-Way Multiplication. - (line 6) -* Toom multiplication: Toom 3-Way Multiplication. - (line 6) -* Types: Nomenclature and Types. - (line 6) -* ui and si functions: Efficiency. (line 50) -* Unbalanced multiplication: Unbalanced Multiplication. - (line 6) -* Upward compatibility: Compatibility with older versions. - (line 6) -* Useful macros and constants: Useful Macros and Constants. - (line 6) -* User-defined precision: Floating-point Functions. - (line 6) -* Valgrind: Debugging. (line 130) -* Variable conventions: Variable Conventions. - (line 6) -* Version number: Useful Macros and Constants. - (line 12) -* Web page: Introduction to GMP. (line 34) -* Windows: Notes for Particular Systems. - (line 56) -* x86: Notes for Particular Systems. - (line 126) -* x87: Notes for Particular Systems. - (line 34) -* XML: Build Options. (line 354) - - -File: gmp.info, Node: Function Index, Prev: Concept Index, Up: Top - -Function and Type Index -*********************** - -[index] -* Menu: - -* __GMP_CC: Useful Macros and Constants. - (line 23) -* __GMP_CFLAGS: Useful Macros and Constants. - (line 24) -* __GNU_MP_VERSION: Useful Macros and Constants. - (line 10) -* __GNU_MP_VERSION_MINOR: Useful Macros and Constants. - (line 11) -* __GNU_MP_VERSION_PATCHLEVEL: Useful Macros and Constants. - (line 12) -* _mpz_realloc: Integer Special Functions. - (line 51) -* abs <1>: C++ Interface Rationals. - (line 43) -* abs <2>: C++ Interface Integers. - (line 42) -* abs: C++ Interface Floats. - (line 70) -* ceil: C++ Interface Floats. - (line 71) -* cmp <1>: C++ Interface Floats. - (line 72) -* cmp <2>: C++ Interface Rationals. - (line 44) -* cmp <3>: C++ Interface Integers. - (line 44) -* cmp: C++ Interface Rationals. - (line 45) -* floor: C++ Interface Floats. - (line 80) -* gcd: BSD Compatible Functions. - (line 82) -* gmp_asprintf: Formatted Output Functions. - (line 65) -* gmp_errno: Random State Initialization. - (line 55) -* GMP_ERROR_INVALID_ARGUMENT: Random State Initialization. - (line 55) -* GMP_ERROR_UNSUPPORTED_ARGUMENT: Random State Initialization. - (line 55) -* gmp_fprintf: Formatted Output Functions. - (line 29) -* gmp_fscanf: Formatted Input Functions. - (line 25) -* GMP_LIMB_BITS: Low-level Functions. (line 508) -* GMP_NAIL_BITS: Low-level Functions. (line 506) -* GMP_NAIL_MASK: Low-level Functions. (line 516) -* GMP_NUMB_BITS: Low-level Functions. (line 507) -* GMP_NUMB_MASK: Low-level Functions. (line 517) -* GMP_NUMB_MAX: Low-level Functions. (line 525) -* gmp_obstack_printf: Formatted Output Functions. - (line 79) -* gmp_obstack_vprintf: Formatted Output Functions. - (line 81) -* gmp_printf: Formatted Output Functions. - (line 24) -* GMP_RAND_ALG_DEFAULT: Random State Initialization. - (line 49) -* GMP_RAND_ALG_LC: Random State Initialization. - (line 49) -* gmp_randclass: C++ Interface Random Numbers. - (line 7) -* gmp_randclass::get_f: C++ Interface Random Numbers. - (line 45) -* gmp_randclass::get_z_bits: C++ Interface Random Numbers. - (line 39) -* gmp_randclass::get_z_range: C++ Interface Random Numbers. - (line 42) -* gmp_randclass::gmp_randclass: C++ Interface Random Numbers. - (line 13) -* gmp_randclass::seed: C++ Interface Random Numbers. - (line 33) -* gmp_randclear: Random State Initialization. - (line 62) -* gmp_randinit: Random State Initialization. - (line 47) -* gmp_randinit_default: Random State Initialization. - (line 7) -* gmp_randinit_lc_2exp: Random State Initialization. - (line 18) -* gmp_randinit_lc_2exp_size: Random State Initialization. - (line 32) -* gmp_randinit_mt: Random State Initialization. - (line 13) -* gmp_randinit_set: Random State Initialization. - (line 43) -* gmp_randseed: Random State Seeding. - (line 7) -* gmp_randseed_ui: Random State Seeding. - (line 9) -* gmp_randstate_t: Nomenclature and Types. - (line 46) -* gmp_scanf: Formatted Input Functions. - (line 21) -* gmp_snprintf: Formatted Output Functions. - (line 46) -* gmp_sprintf: Formatted Output Functions. - (line 34) -* gmp_sscanf: Formatted Input Functions. - (line 29) -* gmp_urandomb_ui: Random State Miscellaneous. - (line 8) -* gmp_urandomm_ui: Random State Miscellaneous. - (line 14) -* gmp_vasprintf: Formatted Output Functions. - (line 66) -* gmp_version: Useful Macros and Constants. - (line 18) -* gmp_vfprintf: Formatted Output Functions. - (line 30) -* gmp_vfscanf: Formatted Input Functions. - (line 26) -* gmp_vprintf: Formatted Output Functions. - (line 25) -* gmp_vscanf: Formatted Input Functions. - (line 22) -* gmp_vsnprintf: Formatted Output Functions. - (line 48) -* gmp_vsprintf: Formatted Output Functions. - (line 35) -* gmp_vsscanf: Formatted Input Functions. - (line 31) -* hypot: C++ Interface Floats. - (line 81) -* itom: BSD Compatible Functions. - (line 29) -* madd: BSD Compatible Functions. - (line 43) -* mcmp: BSD Compatible Functions. - (line 85) -* mdiv: BSD Compatible Functions. - (line 53) -* mfree: BSD Compatible Functions. - (line 105) -* min: BSD Compatible Functions. - (line 89) -* MINT: BSD Compatible Functions. - (line 21) -* mout: BSD Compatible Functions. - (line 94) -* move: BSD Compatible Functions. - (line 39) -* mp_bitcnt_t: Nomenclature and Types. - (line 42) -* mp_bits_per_limb: Useful Macros and Constants. - (line 7) -* mp_exp_t: Nomenclature and Types. - (line 27) -* mp_get_memory_functions: Custom Allocation. (line 93) -* mp_limb_t: Nomenclature and Types. - (line 31) -* mp_set_memory_functions: Custom Allocation. (line 21) -* mp_size_t: Nomenclature and Types. - (line 37) -* mpf_abs: Float Arithmetic. (line 47) -* mpf_add: Float Arithmetic. (line 7) -* mpf_add_ui: Float Arithmetic. (line 9) -* mpf_ceil: Miscellaneous Float Functions. - (line 7) -* mpf_class: C++ Interface General. - (line 20) -* mpf_class::fits_sint_p: C++ Interface Floats. - (line 74) -* mpf_class::fits_slong_p: C++ Interface Floats. - (line 75) -* mpf_class::fits_sshort_p: C++ Interface Floats. - (line 76) -* mpf_class::fits_uint_p: C++ Interface Floats. - (line 77) -* mpf_class::fits_ulong_p: C++ Interface Floats. - (line 78) -* mpf_class::fits_ushort_p: C++ Interface Floats. - (line 79) -* mpf_class::get_d: C++ Interface Floats. - (line 82) -* mpf_class::get_mpf_t: C++ Interface General. - (line 66) -* mpf_class::get_prec: C++ Interface Floats. - (line 100) -* mpf_class::get_si: C++ Interface Floats. - (line 83) -* mpf_class::get_str: C++ Interface Floats. - (line 85) -* mpf_class::get_ui: C++ Interface Floats. - (line 86) -* mpf_class::mpf_class: C++ Interface Floats. - (line 38) -* mpf_class::operator=: C++ Interface Floats. - (line 47) -* mpf_class::set_prec: C++ Interface Floats. - (line 101) -* mpf_class::set_prec_raw: C++ Interface Floats. - (line 102) -* mpf_class::set_str: C++ Interface Floats. - (line 88) -* mpf_clear: Initializing Floats. (line 37) -* mpf_clears: Initializing Floats. (line 41) -* mpf_cmp: Float Comparison. (line 7) -* mpf_cmp_d: Float Comparison. (line 8) -* mpf_cmp_si: Float Comparison. (line 10) -* mpf_cmp_ui: Float Comparison. (line 9) -* mpf_div: Float Arithmetic. (line 29) -* mpf_div_2exp: Float Arithmetic. (line 53) -* mpf_div_ui: Float Arithmetic. (line 33) -* mpf_eq: Float Comparison. (line 17) -* mpf_fits_sint_p: Miscellaneous Float Functions. - (line 20) -* mpf_fits_slong_p: Miscellaneous Float Functions. - (line 18) -* mpf_fits_sshort_p: Miscellaneous Float Functions. - (line 22) -* mpf_fits_uint_p: Miscellaneous Float Functions. - (line 19) -* mpf_fits_ulong_p: Miscellaneous Float Functions. - (line 17) -* mpf_fits_ushort_p: Miscellaneous Float Functions. - (line 21) -* mpf_floor: Miscellaneous Float Functions. - (line 8) -* mpf_get_d: Converting Floats. (line 7) -* mpf_get_d_2exp: Converting Floats. (line 16) -* mpf_get_default_prec: Initializing Floats. (line 12) -* mpf_get_prec: Initializing Floats. (line 62) -* mpf_get_si: Converting Floats. (line 27) -* mpf_get_str: Converting Floats. (line 37) -* mpf_get_ui: Converting Floats. (line 28) -* mpf_init: Initializing Floats. (line 19) -* mpf_init2: Initializing Floats. (line 26) -* mpf_init_set: Simultaneous Float Init & Assign. - (line 16) -* mpf_init_set_d: Simultaneous Float Init & Assign. - (line 19) -* mpf_init_set_si: Simultaneous Float Init & Assign. - (line 18) -* mpf_init_set_str: Simultaneous Float Init & Assign. - (line 25) -* mpf_init_set_ui: Simultaneous Float Init & Assign. - (line 17) -* mpf_inits: Initializing Floats. (line 31) -* mpf_inp_str: I/O of Floats. (line 37) -* mpf_integer_p: Miscellaneous Float Functions. - (line 14) -* mpf_mul: Float Arithmetic. (line 19) -* mpf_mul_2exp: Float Arithmetic. (line 50) -* mpf_mul_ui: Float Arithmetic. (line 21) -* mpf_neg: Float Arithmetic. (line 44) -* mpf_out_str: I/O of Floats. (line 17) -* mpf_pow_ui: Float Arithmetic. (line 41) -* mpf_random2: Miscellaneous Float Functions. - (line 36) -* mpf_reldiff: Float Comparison. (line 29) -* mpf_set: Assigning Floats. (line 10) -* mpf_set_d: Assigning Floats. (line 13) -* mpf_set_default_prec: Initializing Floats. (line 7) -* mpf_set_prec: Initializing Floats. (line 65) -* mpf_set_prec_raw: Initializing Floats. (line 72) -* mpf_set_q: Assigning Floats. (line 15) -* mpf_set_si: Assigning Floats. (line 12) -* mpf_set_str: Assigning Floats. (line 18) -* mpf_set_ui: Assigning Floats. (line 11) -* mpf_set_z: Assigning Floats. (line 14) -* mpf_sgn: Float Comparison. (line 33) -* mpf_sqrt: Float Arithmetic. (line 36) -* mpf_sqrt_ui: Float Arithmetic. (line 37) -* mpf_sub: Float Arithmetic. (line 12) -* mpf_sub_ui: Float Arithmetic. (line 16) -* mpf_swap: Assigning Floats. (line 52) -* mpf_t: Nomenclature and Types. - (line 21) -* mpf_trunc: Miscellaneous Float Functions. - (line 9) -* mpf_ui_div: Float Arithmetic. (line 31) -* mpf_ui_sub: Float Arithmetic. (line 14) -* mpf_urandomb: Miscellaneous Float Functions. - (line 27) -* mpn_add: Low-level Functions. (line 69) -* mpn_add_1: Low-level Functions. (line 64) -* mpn_add_n: Low-level Functions. (line 54) -* mpn_addmul_1: Low-level Functions. (line 148) -* mpn_and_n: Low-level Functions. (line 420) -* mpn_andn_n: Low-level Functions. (line 435) -* mpn_cmp: Low-level Functions. (line 284) -* mpn_com: Low-level Functions. (line 460) -* mpn_copyd: Low-level Functions. (line 469) -* mpn_copyi: Low-level Functions. (line 465) -* mpn_divexact_by3: Low-level Functions. (line 229) -* mpn_divexact_by3c: Low-level Functions. (line 231) -* mpn_divmod: Low-level Functions. (line 224) -* mpn_divmod_1: Low-level Functions. (line 208) -* mpn_divrem: Low-level Functions. (line 182) -* mpn_divrem_1: Low-level Functions. (line 206) -* mpn_gcd: Low-level Functions. (line 289) -* mpn_gcd_1: Low-level Functions. (line 299) -* mpn_gcdext: Low-level Functions. (line 305) -* mpn_get_str: Low-level Functions. (line 346) -* mpn_hamdist: Low-level Functions. (line 410) -* mpn_ior_n: Low-level Functions. (line 425) -* mpn_iorn_n: Low-level Functions. (line 440) -* mpn_lshift: Low-level Functions. (line 260) -* mpn_mod_1: Low-level Functions. (line 255) -* mpn_mul: Low-level Functions. (line 114) -* mpn_mul_1: Low-level Functions. (line 133) -* mpn_mul_n: Low-level Functions. (line 103) -* mpn_nand_n: Low-level Functions. (line 445) -* mpn_neg: Low-level Functions. (line 98) -* mpn_nior_n: Low-level Functions. (line 450) -* mpn_perfect_square_p: Low-level Functions. (line 416) -* mpn_popcount: Low-level Functions. (line 406) -* mpn_random: Low-level Functions. (line 395) -* mpn_random2: Low-level Functions. (line 396) -* mpn_rshift: Low-level Functions. (line 272) -* mpn_scan0: Low-level Functions. (line 380) -* mpn_scan1: Low-level Functions. (line 388) -* mpn_set_str: Low-level Functions. (line 361) -* mpn_sqr: Low-level Functions. (line 125) -* mpn_sqrtrem: Low-level Functions. (line 328) -* mpn_sub: Low-level Functions. (line 90) -* mpn_sub_1: Low-level Functions. (line 85) -* mpn_sub_n: Low-level Functions. (line 76) -* mpn_submul_1: Low-level Functions. (line 159) -* mpn_tdiv_qr: Low-level Functions. (line 171) -* mpn_xnor_n: Low-level Functions. (line 455) -* mpn_xor_n: Low-level Functions. (line 430) -* mpn_zero: Low-level Functions. (line 472) -* mpq_abs: Rational Arithmetic. (line 31) -* mpq_add: Rational Arithmetic. (line 7) -* mpq_canonicalize: Rational Number Functions. - (line 22) -* mpq_class: C++ Interface General. - (line 19) -* mpq_class::canonicalize: C++ Interface Rationals. - (line 37) -* mpq_class::get_d: C++ Interface Rationals. - (line 46) -* mpq_class::get_den: C++ Interface Rationals. - (line 58) -* mpq_class::get_den_mpz_t: C++ Interface Rationals. - (line 68) -* mpq_class::get_mpq_t: C++ Interface General. - (line 65) -* mpq_class::get_num: C++ Interface Rationals. - (line 57) -* mpq_class::get_num_mpz_t: C++ Interface Rationals. - (line 67) -* mpq_class::get_str: C++ Interface Rationals. - (line 47) -* mpq_class::mpq_class: C++ Interface Rationals. - (line 22) -* mpq_class::set_str: C++ Interface Rationals. - (line 49) -* mpq_clear: Initializing Rationals. - (line 16) -* mpq_clears: Initializing Rationals. - (line 20) -* mpq_cmp: Comparing Rationals. (line 7) -* mpq_cmp_si: Comparing Rationals. (line 17) -* mpq_cmp_ui: Comparing Rationals. (line 15) -* mpq_denref: Applying Integer Functions. - (line 18) -* mpq_div: Rational Arithmetic. (line 22) -* mpq_div_2exp: Rational Arithmetic. (line 25) -* mpq_equal: Comparing Rationals. (line 33) -* mpq_get_d: Rational Conversions. - (line 7) -* mpq_get_den: Applying Integer Functions. - (line 24) -* mpq_get_num: Applying Integer Functions. - (line 23) -* mpq_get_str: Rational Conversions. - (line 22) -* mpq_init: Initializing Rationals. - (line 7) -* mpq_inits: Initializing Rationals. - (line 12) -* mpq_inp_str: I/O of Rationals. (line 23) -* mpq_inv: Rational Arithmetic. (line 34) -* mpq_mul: Rational Arithmetic. (line 15) -* mpq_mul_2exp: Rational Arithmetic. (line 18) -* mpq_neg: Rational Arithmetic. (line 28) -* mpq_numref: Applying Integer Functions. - (line 17) -* mpq_out_str: I/O of Rationals. (line 15) -* mpq_set: Initializing Rationals. - (line 24) -* mpq_set_d: Rational Conversions. - (line 17) -* mpq_set_den: Applying Integer Functions. - (line 26) -* mpq_set_f: Rational Conversions. - (line 18) -* mpq_set_num: Applying Integer Functions. - (line 25) -* mpq_set_si: Initializing Rationals. - (line 31) -* mpq_set_str: Initializing Rationals. - (line 36) -* mpq_set_ui: Initializing Rationals. - (line 29) -* mpq_set_z: Initializing Rationals. - (line 25) -* mpq_sgn: Comparing Rationals. (line 27) -* mpq_sub: Rational Arithmetic. (line 11) -* mpq_swap: Initializing Rationals. - (line 56) -* mpq_t: Nomenclature and Types. - (line 16) -* mpz_abs: Integer Arithmetic. (line 42) -* mpz_add: Integer Arithmetic. (line 7) -* mpz_add_ui: Integer Arithmetic. (line 9) -* mpz_addmul: Integer Arithmetic. (line 25) -* mpz_addmul_ui: Integer Arithmetic. (line 27) -* mpz_and: Integer Logic and Bit Fiddling. - (line 11) -* mpz_array_init: Integer Special Functions. - (line 11) -* mpz_bin_ui: Number Theoretic Functions. - (line 98) -* mpz_bin_uiui: Number Theoretic Functions. - (line 100) -* mpz_cdiv_q: Integer Division. (line 13) -* mpz_cdiv_q_2exp: Integer Division. (line 24) -* mpz_cdiv_q_ui: Integer Division. (line 17) -* mpz_cdiv_qr: Integer Division. (line 15) -* mpz_cdiv_qr_ui: Integer Division. (line 21) -* mpz_cdiv_r: Integer Division. (line 14) -* mpz_cdiv_r_2exp: Integer Division. (line 25) -* mpz_cdiv_r_ui: Integer Division. (line 19) -* mpz_cdiv_ui: Integer Division. (line 23) -* mpz_class: C++ Interface General. - (line 18) -* mpz_class::fits_sint_p: C++ Interface Integers. - (line 45) -* mpz_class::fits_slong_p: C++ Interface Integers. - (line 46) -* mpz_class::fits_sshort_p: C++ Interface Integers. - (line 47) -* mpz_class::fits_uint_p: C++ Interface Integers. - (line 48) -* mpz_class::fits_ulong_p: C++ Interface Integers. - (line 49) -* mpz_class::fits_ushort_p: C++ Interface Integers. - (line 50) -* mpz_class::get_d: C++ Interface Integers. - (line 51) -* mpz_class::get_mpz_t: C++ Interface General. - (line 64) -* mpz_class::get_si: C++ Interface Integers. - (line 52) -* mpz_class::get_str: C++ Interface Integers. - (line 53) -* mpz_class::get_ui: C++ Interface Integers. - (line 54) -* mpz_class::mpz_class: C++ Interface Integers. - (line 7) -* mpz_class::set_str: C++ Interface Integers. - (line 56) -* mpz_clear: Initializing Integers. - (line 44) -* mpz_clears: Initializing Integers. - (line 48) -* mpz_clrbit: Integer Logic and Bit Fiddling. - (line 54) -* mpz_cmp: Integer Comparisons. (line 7) -* mpz_cmp_d: Integer Comparisons. (line 8) -* mpz_cmp_si: Integer Comparisons. (line 9) -* mpz_cmp_ui: Integer Comparisons. (line 10) -* mpz_cmpabs: Integer Comparisons. (line 18) -* mpz_cmpabs_d: Integer Comparisons. (line 19) -* mpz_cmpabs_ui: Integer Comparisons. (line 20) -* mpz_com: Integer Logic and Bit Fiddling. - (line 20) -* mpz_combit: Integer Logic and Bit Fiddling. - (line 57) -* mpz_congruent_2exp_p: Integer Division. (line 124) -* mpz_congruent_p: Integer Division. (line 121) -* mpz_congruent_ui_p: Integer Division. (line 123) -* mpz_divexact: Integer Division. (line 101) -* mpz_divexact_ui: Integer Division. (line 102) -* mpz_divisible_2exp_p: Integer Division. (line 112) -* mpz_divisible_p: Integer Division. (line 110) -* mpz_divisible_ui_p: Integer Division. (line 111) -* mpz_even_p: Miscellaneous Integer Functions. - (line 18) -* mpz_export: Integer Import and Export. - (line 45) -* mpz_fac_ui: Number Theoretic Functions. - (line 95) -* mpz_fdiv_q: Integer Division. (line 27) -* mpz_fdiv_q_2exp: Integer Division. (line 38) -* mpz_fdiv_q_ui: Integer Division. (line 31) -* mpz_fdiv_qr: Integer Division. (line 29) -* mpz_fdiv_qr_ui: Integer Division. (line 35) -* mpz_fdiv_r: Integer Division. (line 28) -* mpz_fdiv_r_2exp: Integer Division. (line 39) -* mpz_fdiv_r_ui: Integer Division. (line 33) -* mpz_fdiv_ui: Integer Division. (line 37) -* mpz_fib2_ui: Number Theoretic Functions. - (line 108) -* mpz_fib_ui: Number Theoretic Functions. - (line 106) -* mpz_fits_sint_p: Miscellaneous Integer Functions. - (line 10) -* mpz_fits_slong_p: Miscellaneous Integer Functions. - (line 8) -* mpz_fits_sshort_p: Miscellaneous Integer Functions. - (line 12) -* mpz_fits_uint_p: Miscellaneous Integer Functions. - (line 9) -* mpz_fits_ulong_p: Miscellaneous Integer Functions. - (line 7) -* mpz_fits_ushort_p: Miscellaneous Integer Functions. - (line 11) -* mpz_gcd: Number Theoretic Functions. - (line 30) -* mpz_gcd_ui: Number Theoretic Functions. - (line 35) -* mpz_gcdext: Number Theoretic Functions. - (line 45) -* mpz_get_d: Converting Integers. (line 27) -* mpz_get_d_2exp: Converting Integers. (line 35) -* mpz_get_si: Converting Integers. (line 18) -* mpz_get_str: Converting Integers. (line 46) -* mpz_get_ui: Converting Integers. (line 11) -* mpz_getlimbn: Integer Special Functions. - (line 60) -* mpz_hamdist: Integer Logic and Bit Fiddling. - (line 29) -* mpz_import: Integer Import and Export. - (line 11) -* mpz_init: Initializing Integers. - (line 26) -* mpz_init2: Initializing Integers. - (line 33) -* mpz_init_set: Simultaneous Integer Init & Assign. - (line 27) -* mpz_init_set_d: Simultaneous Integer Init & Assign. - (line 30) -* mpz_init_set_si: Simultaneous Integer Init & Assign. - (line 29) -* mpz_init_set_str: Simultaneous Integer Init & Assign. - (line 34) -* mpz_init_set_ui: Simultaneous Integer Init & Assign. - (line 28) -* mpz_inits: Initializing Integers. - (line 29) -* mpz_inp_raw: I/O of Integers. (line 59) -* mpz_inp_str: I/O of Integers. (line 28) -* mpz_invert: Number Theoretic Functions. - (line 60) -* mpz_ior: Integer Logic and Bit Fiddling. - (line 14) -* mpz_jacobi: Number Theoretic Functions. - (line 66) -* mpz_kronecker: Number Theoretic Functions. - (line 74) -* mpz_kronecker_si: Number Theoretic Functions. - (line 75) -* mpz_kronecker_ui: Number Theoretic Functions. - (line 76) -* mpz_lcm: Number Theoretic Functions. - (line 54) -* mpz_lcm_ui: Number Theoretic Functions. - (line 55) -* mpz_legendre: Number Theoretic Functions. - (line 69) -* mpz_lucnum2_ui: Number Theoretic Functions. - (line 119) -* mpz_lucnum_ui: Number Theoretic Functions. - (line 117) -* mpz_mod: Integer Division. (line 91) -* mpz_mod_ui: Integer Division. (line 93) -* mpz_mul: Integer Arithmetic. (line 19) -* mpz_mul_2exp: Integer Arithmetic. (line 35) -* mpz_mul_si: Integer Arithmetic. (line 20) -* mpz_mul_ui: Integer Arithmetic. (line 22) -* mpz_neg: Integer Arithmetic. (line 39) -* mpz_nextprime: Number Theoretic Functions. - (line 23) -* mpz_odd_p: Miscellaneous Integer Functions. - (line 17) -* mpz_out_raw: I/O of Integers. (line 43) -* mpz_out_str: I/O of Integers. (line 16) -* mpz_perfect_power_p: Integer Roots. (line 27) -* mpz_perfect_square_p: Integer Roots. (line 36) -* mpz_popcount: Integer Logic and Bit Fiddling. - (line 23) -* mpz_pow_ui: Integer Exponentiation. - (line 31) -* mpz_powm: Integer Exponentiation. - (line 8) -* mpz_powm_sec: Integer Exponentiation. - (line 18) -* mpz_powm_ui: Integer Exponentiation. - (line 10) -* mpz_probab_prime_p: Number Theoretic Functions. - (line 7) -* mpz_random: Integer Random Numbers. - (line 42) -* mpz_random2: Integer Random Numbers. - (line 51) -* mpz_realloc2: Initializing Integers. - (line 52) -* mpz_remove: Number Theoretic Functions. - (line 90) -* mpz_root: Integer Roots. (line 7) -* mpz_rootrem: Integer Roots. (line 13) -* mpz_rrandomb: Integer Random Numbers. - (line 31) -* mpz_scan0: Integer Logic and Bit Fiddling. - (line 37) -* mpz_scan1: Integer Logic and Bit Fiddling. - (line 38) -* mpz_set: Assigning Integers. (line 10) -* mpz_set_d: Assigning Integers. (line 13) -* mpz_set_f: Assigning Integers. (line 15) -* mpz_set_q: Assigning Integers. (line 14) -* mpz_set_si: Assigning Integers. (line 12) -* mpz_set_str: Assigning Integers. (line 21) -* mpz_set_ui: Assigning Integers. (line 11) -* mpz_setbit: Integer Logic and Bit Fiddling. - (line 51) -* mpz_sgn: Integer Comparisons. (line 28) -* mpz_si_kronecker: Number Theoretic Functions. - (line 77) -* mpz_size: Integer Special Functions. - (line 68) -* mpz_sizeinbase: Miscellaneous Integer Functions. - (line 23) -* mpz_sqrt: Integer Roots. (line 17) -* mpz_sqrtrem: Integer Roots. (line 20) -* mpz_sub: Integer Arithmetic. (line 12) -* mpz_sub_ui: Integer Arithmetic. (line 14) -* mpz_submul: Integer Arithmetic. (line 30) -* mpz_submul_ui: Integer Arithmetic. (line 32) -* mpz_swap: Assigning Integers. (line 37) -* mpz_t: Nomenclature and Types. - (line 6) -* mpz_tdiv_q: Integer Division. (line 41) -* mpz_tdiv_q_2exp: Integer Division. (line 52) -* mpz_tdiv_q_ui: Integer Division. (line 45) -* mpz_tdiv_qr: Integer Division. (line 43) -* mpz_tdiv_qr_ui: Integer Division. (line 49) -* mpz_tdiv_r: Integer Division. (line 42) -* mpz_tdiv_r_2exp: Integer Division. (line 53) -* mpz_tdiv_r_ui: Integer Division. (line 47) -* mpz_tdiv_ui: Integer Division. (line 51) -* mpz_tstbit: Integer Logic and Bit Fiddling. - (line 60) -* mpz_ui_kronecker: Number Theoretic Functions. - (line 78) -* mpz_ui_pow_ui: Integer Exponentiation. - (line 33) -* mpz_ui_sub: Integer Arithmetic. (line 16) -* mpz_urandomb: Integer Random Numbers. - (line 14) -* mpz_urandomm: Integer Random Numbers. - (line 23) -* mpz_xor: Integer Logic and Bit Fiddling. - (line 17) -* msqrt: BSD Compatible Functions. - (line 63) -* msub: BSD Compatible Functions. - (line 46) -* mtox: BSD Compatible Functions. - (line 98) -* mult: BSD Compatible Functions. - (line 49) -* operator%: C++ Interface Integers. - (line 30) -* operator/: C++ Interface Integers. - (line 29) -* operator<<: C++ Formatted Output. - (line 20) -* operator>> <1>: C++ Formatted Input. (line 11) -* operator>>: C++ Interface Rationals. - (line 77) -* pow: BSD Compatible Functions. - (line 71) -* rpow: BSD Compatible Functions. - (line 79) -* sdiv: BSD Compatible Functions. - (line 55) -* sgn <1>: C++ Interface Rationals. - (line 50) -* sgn <2>: C++ Interface Integers. - (line 57) -* sgn: C++ Interface Floats. - (line 89) -* sqrt <1>: C++ Interface Integers. - (line 58) -* sqrt: C++ Interface Floats. - (line 90) -* trunc: C++ Interface Floats. - (line 91) -* xtom: BSD Compatible Functions. - (line 34) - - diff --git a/misc/builddeps/linux32/jpeg/bin/cjpeg b/misc/builddeps/linux32/jpeg/bin/cjpeg deleted file mode 100755 index 4ff73ae3c100a5b8a00777a419c73a8fafe154f4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 432646 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

|K0H!RHs|Qv*WC31aQ@r2al84>d!c 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 WXM`)SpIJufK2uPb++O8A=l=zRc=5#m diff --git a/misc/builddeps/linux32/jpeg/bin/rdjpgcom b/misc/builddeps/linux32/jpeg/bin/rdjpgcom deleted file mode 100755 index 123dd9f65ce911b1ba40a23fc77ecc394906a18a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17911 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 diff --git a/misc/builddeps/linux32/jpeg/bin/wrjpgcom b/misc/builddeps/linux32/jpeg/bin/wrjpgcom deleted file mode 100755 index 2408dee8534c1a28ac80c07c34c4ef280a77db7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19259 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 diff --git a/misc/builddeps/linux32/jpeg/include/jconfig.h b/misc/builddeps/linux32/jpeg/include/jconfig.h deleted file mode 100644 index 966b1d51..00000000 --- a/misc/builddeps/linux32/jpeg/include/jconfig.h +++ /dev/null @@ -1,54 +0,0 @@ -/* jconfig.h. Generated from jconfig.cfg by configure. */ -/* jconfig.cfg --- source file edited by configure script */ -/* see jconfig.txt for explanations */ - -#define HAVE_PROTOTYPES 1 -#define HAVE_UNSIGNED_CHAR 1 -#define HAVE_UNSIGNED_SHORT 1 -/* #undef void */ -/* #undef const */ -/* #undef CHAR_IS_UNSIGNED */ -#define HAVE_STDDEF_H 1 -#define HAVE_STDLIB_H 1 -#define HAVE_LOCALE_H 1 -/* #undef NEED_BSD_STRINGS */ -/* #undef NEED_SYS_TYPES_H */ -/* #undef NEED_FAR_POINTERS */ -/* #undef NEED_SHORT_EXTERNAL_NAMES */ -/* Define this if you get warnings about undefined structures. */ -/* #undef INCOMPLETE_TYPES_BROKEN */ - -/* Define "boolean" as unsigned char, not int, on Windows systems. */ -#ifdef _WIN32 -#ifndef __RPCNDR_H__ /* don't conflict if rpcndr.h already read */ -typedef unsigned char boolean; -#endif -#define HAVE_BOOLEAN /* prevent jmorecfg.h from redefining it */ -#endif - -#ifdef JPEG_INTERNALS - -/* #undef RIGHT_SHIFT_IS_UNSIGNED */ -#define INLINE __inline__ -/* These are for configuring the JPEG memory manager. */ -/* #undef DEFAULT_MAX_MEM */ -/* #undef NO_MKTEMP */ - -#endif /* JPEG_INTERNALS */ - -#ifdef JPEG_CJPEG_DJPEG - -#define BMP_SUPPORTED /* BMP image file format */ -#define GIF_SUPPORTED /* GIF image file format */ -#define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ -/* #undef RLE_SUPPORTED */ -#define TARGA_SUPPORTED /* Targa image file format */ - -/* #undef TWO_FILE_COMMANDLINE */ -/* #undef NEED_SIGNAL_CATCHER */ -/* #undef DONT_USE_B_MODE */ - -/* Define this if you want percent-done progress reports from cjpeg/djpeg. */ -/* #undef PROGRESS_REPORT */ - -#endif /* JPEG_CJPEG_DJPEG */ diff --git a/misc/builddeps/linux32/jpeg/include/jerror.h b/misc/builddeps/linux32/jpeg/include/jerror.h deleted file mode 100644 index 1cfb2b19..00000000 --- a/misc/builddeps/linux32/jpeg/include/jerror.h +++ /dev/null @@ -1,304 +0,0 @@ -/* - * jerror.h - * - * Copyright (C) 1994-1997, Thomas G. Lane. - * Modified 1997-2009 by Guido Vollbeding. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file defines the error and message codes for the JPEG library. - * Edit this file to add new codes, or to translate the message strings to - * some other language. - * A set of error-reporting macros are defined too. Some applications using - * the JPEG library may wish to include this file to get the error codes - * and/or the macros. - */ - -/* - * To define the enum list of message codes, include this file without - * defining macro JMESSAGE. To create a message string table, include it - * again with a suitable JMESSAGE definition (see jerror.c for an example). - */ -#ifndef JMESSAGE -#ifndef JERROR_H -/* First time through, define the enum list */ -#define JMAKE_ENUM_LIST -#else -/* Repeated inclusions of this file are no-ops unless JMESSAGE is defined */ -#define JMESSAGE(code,string) -#endif /* JERROR_H */ -#endif /* JMESSAGE */ - -#ifdef JMAKE_ENUM_LIST - -typedef enum { - -#define JMESSAGE(code,string) code , - -#endif /* JMAKE_ENUM_LIST */ - -JMESSAGE(JMSG_NOMESSAGE, "Bogus message code %d") /* Must be first entry! */ - -/* For maintenance convenience, list is alphabetical by message code name */ -JMESSAGE(JERR_BAD_ALIGN_TYPE, "ALIGN_TYPE is wrong, please fix") -JMESSAGE(JERR_BAD_ALLOC_CHUNK, "MAX_ALLOC_CHUNK is wrong, please fix") -JMESSAGE(JERR_BAD_BUFFER_MODE, "Bogus buffer control mode") -JMESSAGE(JERR_BAD_COMPONENT_ID, "Invalid component ID %d in SOS") -JMESSAGE(JERR_BAD_CROP_SPEC, "Invalid crop request") -JMESSAGE(JERR_BAD_DCT_COEF, "DCT coefficient out of range") -JMESSAGE(JERR_BAD_DCTSIZE, "DCT scaled block size %dx%d not supported") -JMESSAGE(JERR_BAD_DROP_SAMPLING, - "Component index %d: mismatching sampling ratio %d:%d, %d:%d, %c") -JMESSAGE(JERR_BAD_HUFF_TABLE, "Bogus Huffman table definition") -JMESSAGE(JERR_BAD_IN_COLORSPACE, "Bogus input colorspace") -JMESSAGE(JERR_BAD_J_COLORSPACE, "Bogus JPEG colorspace") -JMESSAGE(JERR_BAD_LENGTH, "Bogus marker length") -JMESSAGE(JERR_BAD_LIB_VERSION, - "Wrong JPEG library version: library is %d, caller expects %d") -JMESSAGE(JERR_BAD_MCU_SIZE, "Sampling factors too large for interleaved scan") -JMESSAGE(JERR_BAD_POOL_ID, "Invalid memory pool code %d") -JMESSAGE(JERR_BAD_PRECISION, "Unsupported JPEG data precision %d") -JMESSAGE(JERR_BAD_PROGRESSION, - "Invalid progressive parameters Ss=%d Se=%d Ah=%d Al=%d") -JMESSAGE(JERR_BAD_PROG_SCRIPT, - "Invalid progressive parameters at scan script entry %d") -JMESSAGE(JERR_BAD_SAMPLING, "Bogus sampling factors") -JMESSAGE(JERR_BAD_SCAN_SCRIPT, "Invalid scan script at entry %d") -JMESSAGE(JERR_BAD_STATE, "Improper call to JPEG library in state %d") -JMESSAGE(JERR_BAD_STRUCT_SIZE, - "JPEG parameter struct mismatch: library thinks size is %u, caller expects %u") -JMESSAGE(JERR_BAD_VIRTUAL_ACCESS, "Bogus virtual array access") -JMESSAGE(JERR_BUFFER_SIZE, "Buffer passed to JPEG library is too small") -JMESSAGE(JERR_CANT_SUSPEND, "Suspension not allowed here") -JMESSAGE(JERR_CCIR601_NOTIMPL, "CCIR601 sampling not implemented yet") -JMESSAGE(JERR_COMPONENT_COUNT, "Too many color components: %d, max %d") -JMESSAGE(JERR_CONVERSION_NOTIMPL, "Unsupported color conversion request") -JMESSAGE(JERR_DAC_INDEX, "Bogus DAC index %d") -JMESSAGE(JERR_DAC_VALUE, "Bogus DAC value 0x%x") -JMESSAGE(JERR_DHT_INDEX, "Bogus DHT index %d") -JMESSAGE(JERR_DQT_INDEX, "Bogus DQT index %d") -JMESSAGE(JERR_EMPTY_IMAGE, "Empty JPEG image (DNL not supported)") -JMESSAGE(JERR_EMS_READ, "Read from EMS failed") -JMESSAGE(JERR_EMS_WRITE, "Write to EMS failed") -JMESSAGE(JERR_EOI_EXPECTED, "Didn't expect more than one scan") -JMESSAGE(JERR_FILE_READ, "Input file read error") -JMESSAGE(JERR_FILE_WRITE, "Output file write error --- out of disk space?") -JMESSAGE(JERR_FRACT_SAMPLE_NOTIMPL, "Fractional sampling not implemented yet") -JMESSAGE(JERR_HUFF_CLEN_OVERFLOW, "Huffman code size table overflow") -JMESSAGE(JERR_HUFF_MISSING_CODE, "Missing Huffman code table entry") -JMESSAGE(JERR_IMAGE_TOO_BIG, "Maximum supported image dimension is %u pixels") -JMESSAGE(JERR_INPUT_EMPTY, "Empty input file") -JMESSAGE(JERR_INPUT_EOF, "Premature end of input file") -JMESSAGE(JERR_MISMATCHED_QUANT_TABLE, - "Cannot transcode due to multiple use of quantization table %d") -JMESSAGE(JERR_MISSING_DATA, "Scan script does not transmit all data") -JMESSAGE(JERR_MODE_CHANGE, "Invalid color quantization mode change") -JMESSAGE(JERR_NOTIMPL, "Not implemented yet") -JMESSAGE(JERR_NOT_COMPILED, "Requested feature was omitted at compile time") -JMESSAGE(JERR_NO_ARITH_TABLE, "Arithmetic table 0x%02x was not defined") -JMESSAGE(JERR_NO_BACKING_STORE, "Backing store not supported") -JMESSAGE(JERR_NO_HUFF_TABLE, "Huffman table 0x%02x was not defined") -JMESSAGE(JERR_NO_IMAGE, "JPEG datastream contains no image") -JMESSAGE(JERR_NO_QUANT_TABLE, "Quantization table 0x%02x was not defined") -JMESSAGE(JERR_NO_SOI, "Not a JPEG file: starts with 0x%02x 0x%02x") -JMESSAGE(JERR_OUT_OF_MEMORY, "Insufficient memory (case %d)") -JMESSAGE(JERR_QUANT_COMPONENTS, - "Cannot quantize more than %d color components") -JMESSAGE(JERR_QUANT_FEW_COLORS, "Cannot quantize to fewer than %d colors") -JMESSAGE(JERR_QUANT_MANY_COLORS, "Cannot quantize to more than %d colors") -JMESSAGE(JERR_SOF_DUPLICATE, "Invalid JPEG file structure: two SOF markers") -JMESSAGE(JERR_SOF_NO_SOS, "Invalid JPEG file structure: missing SOS marker") -JMESSAGE(JERR_SOF_UNSUPPORTED, "Unsupported JPEG process: SOF type 0x%02x") -JMESSAGE(JERR_SOI_DUPLICATE, "Invalid JPEG file structure: two SOI markers") -JMESSAGE(JERR_SOS_NO_SOF, "Invalid JPEG file structure: SOS before SOF") -JMESSAGE(JERR_TFILE_CREATE, "Failed to create temporary file %s") -JMESSAGE(JERR_TFILE_READ, "Read failed on temporary file") -JMESSAGE(JERR_TFILE_SEEK, "Seek failed on temporary file") -JMESSAGE(JERR_TFILE_WRITE, - "Write failed on temporary file --- out of disk space?") -JMESSAGE(JERR_TOO_LITTLE_DATA, "Application transferred too few scanlines") -JMESSAGE(JERR_UNKNOWN_MARKER, "Unsupported marker type 0x%02x") -JMESSAGE(JERR_VIRTUAL_BUG, "Virtual array controller messed up") -JMESSAGE(JERR_WIDTH_OVERFLOW, "Image too wide for this implementation") -JMESSAGE(JERR_XMS_READ, "Read from XMS failed") -JMESSAGE(JERR_XMS_WRITE, "Write to XMS failed") -JMESSAGE(JMSG_COPYRIGHT, JCOPYRIGHT) -JMESSAGE(JMSG_VERSION, JVERSION) -JMESSAGE(JTRC_16BIT_TABLES, - "Caution: quantization tables are too coarse for baseline JPEG") -JMESSAGE(JTRC_ADOBE, - "Adobe APP14 marker: version %d, flags 0x%04x 0x%04x, transform %d") -JMESSAGE(JTRC_APP0, "Unknown APP0 marker (not JFIF), length %u") -JMESSAGE(JTRC_APP14, "Unknown APP14 marker (not Adobe), length %u") -JMESSAGE(JTRC_DAC, "Define Arithmetic Table 0x%02x: 0x%02x") -JMESSAGE(JTRC_DHT, "Define Huffman Table 0x%02x") -JMESSAGE(JTRC_DQT, "Define Quantization Table %d precision %d") -JMESSAGE(JTRC_DRI, "Define Restart Interval %u") -JMESSAGE(JTRC_EMS_CLOSE, "Freed EMS handle %u") -JMESSAGE(JTRC_EMS_OPEN, "Obtained EMS handle %u") -JMESSAGE(JTRC_EOI, "End Of Image") -JMESSAGE(JTRC_HUFFBITS, " %3d %3d %3d %3d %3d %3d %3d %3d") -JMESSAGE(JTRC_JFIF, "JFIF APP0 marker: version %d.%02d, density %dx%d %d") -JMESSAGE(JTRC_JFIF_BADTHUMBNAILSIZE, - "Warning: thumbnail image size does not match data length %u") -JMESSAGE(JTRC_JFIF_EXTENSION, - "JFIF extension marker: type 0x%02x, length %u") -JMESSAGE(JTRC_JFIF_THUMBNAIL, " with %d x %d thumbnail image") -JMESSAGE(JTRC_MISC_MARKER, "Miscellaneous marker 0x%02x, length %u") -JMESSAGE(JTRC_PARMLESS_MARKER, "Unexpected marker 0x%02x") -JMESSAGE(JTRC_QUANTVALS, " %4u %4u %4u %4u %4u %4u %4u %4u") -JMESSAGE(JTRC_QUANT_3_NCOLORS, "Quantizing to %d = %d*%d*%d colors") -JMESSAGE(JTRC_QUANT_NCOLORS, "Quantizing to %d colors") -JMESSAGE(JTRC_QUANT_SELECTED, "Selected %d colors for quantization") -JMESSAGE(JTRC_RECOVERY_ACTION, "At marker 0x%02x, recovery action %d") -JMESSAGE(JTRC_RST, "RST%d") -JMESSAGE(JTRC_SMOOTH_NOTIMPL, - "Smoothing not supported with nonstandard sampling ratios") -JMESSAGE(JTRC_SOF, "Start Of Frame 0x%02x: width=%u, height=%u, components=%d") -JMESSAGE(JTRC_SOF_COMPONENT, " Component %d: %dhx%dv q=%d") -JMESSAGE(JTRC_SOI, "Start of Image") -JMESSAGE(JTRC_SOS, "Start Of Scan: %d components") -JMESSAGE(JTRC_SOS_COMPONENT, " Component %d: dc=%d ac=%d") -JMESSAGE(JTRC_SOS_PARAMS, " Ss=%d, Se=%d, Ah=%d, Al=%d") -JMESSAGE(JTRC_TFILE_CLOSE, "Closed temporary file %s") -JMESSAGE(JTRC_TFILE_OPEN, "Opened temporary file %s") -JMESSAGE(JTRC_THUMB_JPEG, - "JFIF extension marker: JPEG-compressed thumbnail image, length %u") -JMESSAGE(JTRC_THUMB_PALETTE, - "JFIF extension marker: palette thumbnail image, length %u") -JMESSAGE(JTRC_THUMB_RGB, - "JFIF extension marker: RGB thumbnail image, length %u") -JMESSAGE(JTRC_UNKNOWN_IDS, - "Unrecognized component IDs %d %d %d, assuming YCbCr") -JMESSAGE(JTRC_XMS_CLOSE, "Freed XMS handle %u") -JMESSAGE(JTRC_XMS_OPEN, "Obtained XMS handle %u") -JMESSAGE(JWRN_ADOBE_XFORM, "Unknown Adobe color transform code %d") -JMESSAGE(JWRN_ARITH_BAD_CODE, "Corrupt JPEG data: bad arithmetic code") -JMESSAGE(JWRN_BOGUS_PROGRESSION, - "Inconsistent progression sequence for component %d coefficient %d") -JMESSAGE(JWRN_EXTRANEOUS_DATA, - "Corrupt JPEG data: %u extraneous bytes before marker 0x%02x") -JMESSAGE(JWRN_HIT_MARKER, "Corrupt JPEG data: premature end of data segment") -JMESSAGE(JWRN_HUFF_BAD_CODE, "Corrupt JPEG data: bad Huffman code") -JMESSAGE(JWRN_JFIF_MAJOR, "Warning: unknown JFIF revision number %d.%02d") -JMESSAGE(JWRN_JPEG_EOF, "Premature end of JPEG file") -JMESSAGE(JWRN_MUST_RESYNC, - "Corrupt JPEG data: found marker 0x%02x instead of RST%d") -JMESSAGE(JWRN_NOT_SEQUENTIAL, "Invalid SOS parameters for sequential JPEG") -JMESSAGE(JWRN_TOO_MUCH_DATA, "Application transferred too many scanlines") - -#ifdef JMAKE_ENUM_LIST - - JMSG_LASTMSGCODE -} J_MESSAGE_CODE; - -#undef JMAKE_ENUM_LIST -#endif /* JMAKE_ENUM_LIST */ - -/* Zap JMESSAGE macro so that future re-inclusions do nothing by default */ -#undef JMESSAGE - - -#ifndef JERROR_H -#define JERROR_H - -/* Macros to simplify using the error and trace message stuff */ -/* The first parameter is either type of cinfo pointer */ - -/* Fatal errors (print message and exit) */ -#define ERREXIT(cinfo,code) \ - ((cinfo)->err->msg_code = (code), \ - (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) -#define ERREXIT1(cinfo,code,p1) \ - ((cinfo)->err->msg_code = (code), \ - (cinfo)->err->msg_parm.i[0] = (p1), \ - (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) -#define ERREXIT2(cinfo,code,p1,p2) \ - ((cinfo)->err->msg_code = (code), \ - (cinfo)->err->msg_parm.i[0] = (p1), \ - (cinfo)->err->msg_parm.i[1] = (p2), \ - (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) -#define ERREXIT3(cinfo,code,p1,p2,p3) \ - ((cinfo)->err->msg_code = (code), \ - (cinfo)->err->msg_parm.i[0] = (p1), \ - (cinfo)->err->msg_parm.i[1] = (p2), \ - (cinfo)->err->msg_parm.i[2] = (p3), \ - (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) -#define ERREXIT4(cinfo,code,p1,p2,p3,p4) \ - ((cinfo)->err->msg_code = (code), \ - (cinfo)->err->msg_parm.i[0] = (p1), \ - (cinfo)->err->msg_parm.i[1] = (p2), \ - (cinfo)->err->msg_parm.i[2] = (p3), \ - (cinfo)->err->msg_parm.i[3] = (p4), \ - (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) -#define ERREXIT6(cinfo,code,p1,p2,p3,p4,p5,p6) \ - ((cinfo)->err->msg_code = (code), \ - (cinfo)->err->msg_parm.i[0] = (p1), \ - (cinfo)->err->msg_parm.i[1] = (p2), \ - (cinfo)->err->msg_parm.i[2] = (p3), \ - (cinfo)->err->msg_parm.i[3] = (p4), \ - (cinfo)->err->msg_parm.i[4] = (p5), \ - (cinfo)->err->msg_parm.i[5] = (p6), \ - (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) -#define ERREXITS(cinfo,code,str) \ - ((cinfo)->err->msg_code = (code), \ - strncpy((cinfo)->err->msg_parm.s, (str), JMSG_STR_PARM_MAX), \ - (*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo))) - -#define MAKESTMT(stuff) do { stuff } while (0) - -/* Nonfatal errors (we can keep going, but the data is probably corrupt) */ -#define WARNMS(cinfo,code) \ - ((cinfo)->err->msg_code = (code), \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1)) -#define WARNMS1(cinfo,code,p1) \ - ((cinfo)->err->msg_code = (code), \ - (cinfo)->err->msg_parm.i[0] = (p1), \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1)) -#define WARNMS2(cinfo,code,p1,p2) \ - ((cinfo)->err->msg_code = (code), \ - (cinfo)->err->msg_parm.i[0] = (p1), \ - (cinfo)->err->msg_parm.i[1] = (p2), \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), -1)) - -/* Informational/debugging messages */ -#define TRACEMS(cinfo,lvl,code) \ - ((cinfo)->err->msg_code = (code), \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl))) -#define TRACEMS1(cinfo,lvl,code,p1) \ - ((cinfo)->err->msg_code = (code), \ - (cinfo)->err->msg_parm.i[0] = (p1), \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl))) -#define TRACEMS2(cinfo,lvl,code,p1,p2) \ - ((cinfo)->err->msg_code = (code), \ - (cinfo)->err->msg_parm.i[0] = (p1), \ - (cinfo)->err->msg_parm.i[1] = (p2), \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl))) -#define TRACEMS3(cinfo,lvl,code,p1,p2,p3) \ - MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \ - _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); \ - (cinfo)->err->msg_code = (code); \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); ) -#define TRACEMS4(cinfo,lvl,code,p1,p2,p3,p4) \ - MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \ - _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \ - (cinfo)->err->msg_code = (code); \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); ) -#define TRACEMS5(cinfo,lvl,code,p1,p2,p3,p4,p5) \ - MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \ - _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \ - _mp[4] = (p5); \ - (cinfo)->err->msg_code = (code); \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); ) -#define TRACEMS8(cinfo,lvl,code,p1,p2,p3,p4,p5,p6,p7,p8) \ - MAKESTMT(int * _mp = (cinfo)->err->msg_parm.i; \ - _mp[0] = (p1); _mp[1] = (p2); _mp[2] = (p3); _mp[3] = (p4); \ - _mp[4] = (p5); _mp[5] = (p6); _mp[6] = (p7); _mp[7] = (p8); \ - (cinfo)->err->msg_code = (code); \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl)); ) -#define TRACEMSS(cinfo,lvl,code,str) \ - ((cinfo)->err->msg_code = (code), \ - strncpy((cinfo)->err->msg_parm.s, (str), JMSG_STR_PARM_MAX), \ - (*(cinfo)->err->emit_message) ((j_common_ptr) (cinfo), (lvl))) - -#endif /* JERROR_H */ diff --git a/misc/builddeps/linux32/jpeg/include/jmorecfg.h b/misc/builddeps/linux32/jpeg/include/jmorecfg.h deleted file mode 100644 index 928d052c..00000000 --- a/misc/builddeps/linux32/jpeg/include/jmorecfg.h +++ /dev/null @@ -1,371 +0,0 @@ -/* - * jmorecfg.h - * - * Copyright (C) 1991-1997, Thomas G. Lane. - * Modified 1997-2009 by Guido Vollbeding. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file contains additional configuration options that customize the - * JPEG software for special applications or support machine-dependent - * optimizations. Most users will not need to touch this file. - */ - - -/* - * Define BITS_IN_JSAMPLE as either - * 8 for 8-bit sample values (the usual setting) - * 12 for 12-bit sample values - * Only 8 and 12 are legal data precisions for lossy JPEG according to the - * JPEG standard, and the IJG code does not support anything else! - * We do not support run-time selection of data precision, sorry. - */ - -#define BITS_IN_JSAMPLE 8 /* use 8 or 12 */ - - -/* - * Maximum number of components (color channels) allowed in JPEG image. - * To meet the letter of the JPEG spec, set this to 255. However, darn - * few applications need more than 4 channels (maybe 5 for CMYK + alpha - * mask). We recommend 10 as a reasonable compromise; use 4 if you are - * really short on memory. (Each allowed component costs a hundred or so - * bytes of storage, whether actually used in an image or not.) - */ - -#define MAX_COMPONENTS 10 /* maximum number of image components */ - - -/* - * Basic data types. - * You may need to change these if you have a machine with unusual data - * type sizes; for example, "char" not 8 bits, "short" not 16 bits, - * or "long" not 32 bits. We don't care whether "int" is 16 or 32 bits, - * but it had better be at least 16. - */ - -/* Representation of a single sample (pixel element value). - * We frequently allocate large arrays of these, so it's important to keep - * them small. But if you have memory to burn and access to char or short - * arrays is very slow on your hardware, you might want to change these. - */ - -#if BITS_IN_JSAMPLE == 8 -/* JSAMPLE should be the smallest type that will hold the values 0..255. - * You can use a signed char by having GETJSAMPLE mask it with 0xFF. - */ - -#ifdef HAVE_UNSIGNED_CHAR - -typedef unsigned char JSAMPLE; -#define GETJSAMPLE(value) ((int) (value)) - -#else /* not HAVE_UNSIGNED_CHAR */ - -typedef char JSAMPLE; -#ifdef CHAR_IS_UNSIGNED -#define GETJSAMPLE(value) ((int) (value)) -#else -#define GETJSAMPLE(value) ((int) (value) & 0xFF) -#endif /* CHAR_IS_UNSIGNED */ - -#endif /* HAVE_UNSIGNED_CHAR */ - -#define MAXJSAMPLE 255 -#define CENTERJSAMPLE 128 - -#endif /* BITS_IN_JSAMPLE == 8 */ - - -#if BITS_IN_JSAMPLE == 12 -/* JSAMPLE should be the smallest type that will hold the values 0..4095. - * On nearly all machines "short" will do nicely. - */ - -typedef short JSAMPLE; -#define GETJSAMPLE(value) ((int) (value)) - -#define MAXJSAMPLE 4095 -#define CENTERJSAMPLE 2048 - -#endif /* BITS_IN_JSAMPLE == 12 */ - - -/* Representation of a DCT frequency coefficient. - * This should be a signed value of at least 16 bits; "short" is usually OK. - * Again, we allocate large arrays of these, but you can change to int - * if you have memory to burn and "short" is really slow. - */ - -typedef short JCOEF; - - -/* Compressed datastreams are represented as arrays of JOCTET. - * These must be EXACTLY 8 bits wide, at least once they are written to - * external storage. Note that when using the stdio data source/destination - * managers, this is also the data type passed to fread/fwrite. - */ - -#ifdef HAVE_UNSIGNED_CHAR - -typedef unsigned char JOCTET; -#define GETJOCTET(value) (value) - -#else /* not HAVE_UNSIGNED_CHAR */ - -typedef char JOCTET; -#ifdef CHAR_IS_UNSIGNED -#define GETJOCTET(value) (value) -#else -#define GETJOCTET(value) ((value) & 0xFF) -#endif /* CHAR_IS_UNSIGNED */ - -#endif /* HAVE_UNSIGNED_CHAR */ - - -/* These typedefs are used for various table entries and so forth. - * They must be at least as wide as specified; but making them too big - * won't cost a huge amount of memory, so we don't provide special - * extraction code like we did for JSAMPLE. (In other words, these - * typedefs live at a different point on the speed/space tradeoff curve.) - */ - -/* UINT8 must hold at least the values 0..255. */ - -#ifdef HAVE_UNSIGNED_CHAR -typedef unsigned char UINT8; -#else /* not HAVE_UNSIGNED_CHAR */ -#ifdef CHAR_IS_UNSIGNED -typedef char UINT8; -#else /* not CHAR_IS_UNSIGNED */ -typedef short UINT8; -#endif /* CHAR_IS_UNSIGNED */ -#endif /* HAVE_UNSIGNED_CHAR */ - -/* UINT16 must hold at least the values 0..65535. */ - -#ifdef HAVE_UNSIGNED_SHORT -typedef unsigned short UINT16; -#else /* not HAVE_UNSIGNED_SHORT */ -typedef unsigned int UINT16; -#endif /* HAVE_UNSIGNED_SHORT */ - -/* INT16 must hold at least the values -32768..32767. */ - -#ifndef XMD_H /* X11/xmd.h correctly defines INT16 */ -typedef short INT16; -#endif - -/* INT32 must hold at least signed 32-bit values. */ - -#ifndef XMD_H /* X11/xmd.h correctly defines INT32 */ -#ifndef _BASETSD_H_ /* Microsoft defines it in basetsd.h */ -#ifndef _BASETSD_H /* MinGW is slightly different */ -#ifndef QGLOBAL_H /* Qt defines it in qglobal.h */ -typedef long INT32; -#endif -#endif -#endif -#endif - -/* Datatype used for image dimensions. The JPEG standard only supports - * images up to 64K*64K due to 16-bit fields in SOF markers. Therefore - * "unsigned int" is sufficient on all machines. However, if you need to - * handle larger images and you don't mind deviating from the spec, you - * can change this datatype. - */ - -typedef unsigned int JDIMENSION; - -#define JPEG_MAX_DIMENSION 65500L /* a tad under 64K to prevent overflows */ - - -/* These macros are used in all function definitions and extern declarations. - * You could modify them if you need to change function linkage conventions; - * in particular, you'll need to do that to make the library a Windows DLL. - * Another application is to make all functions global for use with debuggers - * or code profilers that require it. - */ - -/* a function called through method pointers: */ -#define METHODDEF(type) static type -/* a function used only in its module: */ -#define LOCAL(type) static type -/* a function referenced thru EXTERNs: */ -#define GLOBAL(type) type -/* a reference to a GLOBAL function: */ -#define EXTERN(type) extern type - - -/* This macro is used to declare a "method", that is, a function pointer. - * We want to supply prototype parameters if the compiler can cope. - * Note that the arglist parameter must be parenthesized! - * Again, you can customize this if you need special linkage keywords. - */ - -#ifdef HAVE_PROTOTYPES -#define JMETHOD(type,methodname,arglist) type (*methodname) arglist -#else -#define JMETHOD(type,methodname,arglist) type (*methodname) () -#endif - - -/* Here is the pseudo-keyword for declaring pointers that must be "far" - * on 80x86 machines. Most of the specialized coding for 80x86 is handled - * by just saying "FAR *" where such a pointer is needed. In a few places - * explicit coding is needed; see uses of the NEED_FAR_POINTERS symbol. - */ - -#ifndef FAR -#ifdef NEED_FAR_POINTERS -#define FAR far -#else -#define FAR -#endif -#endif - - -/* - * On a few systems, type boolean and/or its values FALSE, TRUE may appear - * in standard header files. Or you may have conflicts with application- - * specific header files that you want to include together with these files. - * Defining HAVE_BOOLEAN before including jpeglib.h should make it work. - */ - -#ifndef HAVE_BOOLEAN -typedef int boolean; -#endif -#ifndef FALSE /* in case these macros already exist */ -#define FALSE 0 /* values of boolean */ -#endif -#ifndef TRUE -#define TRUE 1 -#endif - - -/* - * The remaining options affect code selection within the JPEG library, - * but they don't need to be visible to most applications using the library. - * To minimize application namespace pollution, the symbols won't be - * defined unless JPEG_INTERNALS or JPEG_INTERNAL_OPTIONS has been defined. - */ - -#ifdef JPEG_INTERNALS -#define JPEG_INTERNAL_OPTIONS -#endif - -#ifdef JPEG_INTERNAL_OPTIONS - - -/* - * These defines indicate whether to include various optional functions. - * Undefining some of these symbols will produce a smaller but less capable - * library. Note that you can leave certain source files out of the - * compilation/linking process if you've #undef'd the corresponding symbols. - * (You may HAVE to do that if your compiler doesn't like null source files.) - */ - -/* Capability options common to encoder and decoder: */ - -#define DCT_ISLOW_SUPPORTED /* slow but accurate integer algorithm */ -#define DCT_IFAST_SUPPORTED /* faster, less accurate integer method */ -#define DCT_FLOAT_SUPPORTED /* floating-point: accurate, fast on fast HW */ - -/* Encoder capability options: */ - -#define C_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */ -#define C_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */ -#define C_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/ -#define DCT_SCALING_SUPPORTED /* Input rescaling via DCT? (Requires DCT_ISLOW)*/ -#define ENTROPY_OPT_SUPPORTED /* Optimization of entropy coding parms? */ -/* Note: if you selected 12-bit data precision, it is dangerous to turn off - * ENTROPY_OPT_SUPPORTED. The standard Huffman tables are only good for 8-bit - * precision, so jchuff.c normally uses entropy optimization to compute - * usable tables for higher precision. If you don't want to do optimization, - * you'll have to supply different default Huffman tables. - * The exact same statements apply for progressive JPEG: the default tables - * don't work for progressive mode. (This may get fixed, however.) - */ -#define INPUT_SMOOTHING_SUPPORTED /* Input image smoothing option? */ - -/* Decoder capability options: */ - -#define D_ARITH_CODING_SUPPORTED /* Arithmetic coding back end? */ -#define D_MULTISCAN_FILES_SUPPORTED /* Multiple-scan JPEG files? */ -#define D_PROGRESSIVE_SUPPORTED /* Progressive JPEG? (Requires MULTISCAN)*/ -#define IDCT_SCALING_SUPPORTED /* Output rescaling via IDCT? */ -#define SAVE_MARKERS_SUPPORTED /* jpeg_save_markers() needed? */ -#define BLOCK_SMOOTHING_SUPPORTED /* Block smoothing? (Progressive only) */ -#undef UPSAMPLE_SCALING_SUPPORTED /* Output rescaling at upsample stage? */ -#define UPSAMPLE_MERGING_SUPPORTED /* Fast path for sloppy upsampling? */ -#define QUANT_1PASS_SUPPORTED /* 1-pass color quantization? */ -#define QUANT_2PASS_SUPPORTED /* 2-pass color quantization? */ - -/* more capability options later, no doubt */ - - -/* - * Ordering of RGB data in scanlines passed to or from the application. - * If your application wants to deal with data in the order B,G,R, just - * change these macros. You can also deal with formats such as R,G,B,X - * (one extra byte per pixel) by changing RGB_PIXELSIZE. Note that changing - * the offsets will also change the order in which colormap data is organized. - * RESTRICTIONS: - * 1. The sample applications cjpeg,djpeg do NOT support modified RGB formats. - * 2. These macros only affect RGB<=>YCbCr color conversion, so they are not - * useful if you are using JPEG color spaces other than YCbCr or grayscale. - * 3. The color quantizer modules will not behave desirably if RGB_PIXELSIZE - * is not 3 (they don't understand about dummy color components!). So you - * can't use color quantization if you change that value. - */ - -#define RGB_RED 0 /* Offset of Red in an RGB scanline element */ -#define RGB_GREEN 1 /* Offset of Green */ -#define RGB_BLUE 2 /* Offset of Blue */ -#define RGB_PIXELSIZE 3 /* JSAMPLEs per RGB scanline element */ - - -/* Definitions for speed-related optimizations. */ - - -/* If your compiler supports inline functions, define INLINE - * as the inline keyword; otherwise define it as empty. - */ - -#ifndef INLINE -#ifdef __GNUC__ /* for instance, GNU C knows about inline */ -#define INLINE __inline__ -#endif -#ifndef INLINE -#define INLINE /* default is to define it as empty */ -#endif -#endif - - -/* On some machines (notably 68000 series) "int" is 32 bits, but multiplying - * two 16-bit shorts is faster than multiplying two ints. Define MULTIPLIER - * as short on such a machine. MULTIPLIER must be at least 16 bits wide. - */ - -#ifndef MULTIPLIER -#define MULTIPLIER int /* type for fastest integer multiply */ -#endif - - -/* FAST_FLOAT should be either float or double, whichever is done faster - * by your compiler. (Note that this type is only used in the floating point - * DCT routines, so it only matters if you've defined DCT_FLOAT_SUPPORTED.) - * Typically, float is faster in ANSI C compilers, while double is faster in - * pre-ANSI compilers (because they insist on converting to double anyway). - * The code below therefore chooses float if we have ANSI-style prototypes. - */ - -#ifndef FAST_FLOAT -#ifdef HAVE_PROTOTYPES -#define FAST_FLOAT float -#else -#define FAST_FLOAT double -#endif -#endif - -#endif /* JPEG_INTERNAL_OPTIONS */ diff --git a/misc/builddeps/linux32/jpeg/include/jpeglib.h b/misc/builddeps/linux32/jpeg/include/jpeglib.h deleted file mode 100644 index 5039d4bf..00000000 --- a/misc/builddeps/linux32/jpeg/include/jpeglib.h +++ /dev/null @@ -1,1158 +0,0 @@ -/* - * jpeglib.h - * - * Copyright (C) 1991-1998, Thomas G. Lane. - * Modified 2002-2009 by Guido Vollbeding. - * This file is part of the Independent JPEG Group's software. - * For conditions of distribution and use, see the accompanying README file. - * - * This file defines the application interface for the JPEG library. - * Most applications using the library need only include this file, - * and perhaps jerror.h if they want to know the exact error codes. - */ - -#ifndef JPEGLIB_H -#define JPEGLIB_H - -/* - * First we include the configuration files that record how this - * installation of the JPEG library is set up. jconfig.h can be - * generated automatically for many systems. jmorecfg.h contains - * manual configuration options that most people need not worry about. - */ - -#ifndef JCONFIG_INCLUDED /* in case jinclude.h already did */ -#include "jconfig.h" /* widely used configuration options */ -#endif -#include "jmorecfg.h" /* seldom changed options */ - - -#ifdef __cplusplus -#ifndef DONT_USE_EXTERN_C -extern "C" { -#endif -#endif - -/* Version ID for the JPEG library. - * Might be useful for tests like "#if JPEG_LIB_VERSION >= 80". - */ - -#define JPEG_LIB_VERSION 80 /* Version 8.0 */ - - -/* Various constants determining the sizes of things. - * All of these are specified by the JPEG standard, so don't change them - * if you want to be compatible. - */ - -#define DCTSIZE 8 /* The basic DCT block is 8x8 samples */ -#define DCTSIZE2 64 /* DCTSIZE squared; # of elements in a block */ -#define NUM_QUANT_TBLS 4 /* Quantization tables are numbered 0..3 */ -#define NUM_HUFF_TBLS 4 /* Huffman tables are numbered 0..3 */ -#define NUM_ARITH_TBLS 16 /* Arith-coding tables are numbered 0..15 */ -#define MAX_COMPS_IN_SCAN 4 /* JPEG limit on # of components in one scan */ -#define MAX_SAMP_FACTOR 4 /* JPEG limit on sampling factors */ -/* Unfortunately, some bozo at Adobe saw no reason to be bound by the standard; - * the PostScript DCT filter can emit files with many more than 10 blocks/MCU. - * If you happen to run across such a file, you can up D_MAX_BLOCKS_IN_MCU - * to handle it. We even let you do this from the jconfig.h file. However, - * we strongly discourage changing C_MAX_BLOCKS_IN_MCU; just because Adobe - * sometimes emits noncompliant files doesn't mean you should too. - */ -#define C_MAX_BLOCKS_IN_MCU 10 /* compressor's limit on blocks per MCU */ -#ifndef D_MAX_BLOCKS_IN_MCU -#define D_MAX_BLOCKS_IN_MCU 10 /* decompressor's limit on blocks per MCU */ -#endif - - -/* Data structures for images (arrays of samples and of DCT coefficients). - * On 80x86 machines, the image arrays are too big for near pointers, - * but the pointer arrays can fit in near memory. - */ - -typedef JSAMPLE FAR *JSAMPROW; /* ptr to one image row of pixel samples. */ -typedef JSAMPROW *JSAMPARRAY; /* ptr to some rows (a 2-D sample array) */ -typedef JSAMPARRAY *JSAMPIMAGE; /* a 3-D sample array: top index is color */ - -typedef JCOEF JBLOCK[DCTSIZE2]; /* one block of coefficients */ -typedef JBLOCK FAR *JBLOCKROW; /* pointer to one row of coefficient blocks */ -typedef JBLOCKROW *JBLOCKARRAY; /* a 2-D array of coefficient blocks */ -typedef JBLOCKARRAY *JBLOCKIMAGE; /* a 3-D array of coefficient blocks */ - -typedef JCOEF FAR *JCOEFPTR; /* useful in a couple of places */ - - -/* Types for JPEG compression parameters and working tables. */ - - -/* DCT coefficient quantization tables. */ - -typedef struct { - /* This array gives the coefficient quantizers in natural array order - * (not the zigzag order in which they are stored in a JPEG DQT marker). - * CAUTION: IJG versions prior to v6a kept this array in zigzag order. - */ - UINT16 quantval[DCTSIZE2]; /* quantization step for each coefficient */ - /* This field is used only during compression. It's initialized FALSE when - * the table is created, and set TRUE when it's been output to the file. - * You could suppress output of a table by setting this to TRUE. - * (See jpeg_suppress_tables for an example.) - */ - boolean sent_table; /* TRUE when table has been output */ -} JQUANT_TBL; - - -/* Huffman coding tables. */ - -typedef struct { - /* These two fields directly represent the contents of a JPEG DHT marker */ - UINT8 bits[17]; /* bits[k] = # of symbols with codes of */ - /* length k bits; bits[0] is unused */ - UINT8 huffval[256]; /* The symbols, in order of incr code length */ - /* This field is used only during compression. It's initialized FALSE when - * the table is created, and set TRUE when it's been output to the file. - * You could suppress output of a table by setting this to TRUE. - * (See jpeg_suppress_tables for an example.) - */ - boolean sent_table; /* TRUE when table has been output */ -} JHUFF_TBL; - - -/* Basic info about one component (color channel). */ - -typedef struct { - /* These values are fixed over the whole image. */ - /* For compression, they must be supplied by parameter setup; */ - /* for decompression, they are read from the SOF marker. */ - int component_id; /* identifier for this component (0..255) */ - int component_index; /* its index in SOF or cinfo->comp_info[] */ - int h_samp_factor; /* horizontal sampling factor (1..4) */ - int v_samp_factor; /* vertical sampling factor (1..4) */ - int quant_tbl_no; /* quantization table selector (0..3) */ - /* These values may vary between scans. */ - /* For compression, they must be supplied by parameter setup; */ - /* for decompression, they are read from the SOS marker. */ - /* The decompressor output side may not use these variables. */ - int dc_tbl_no; /* DC entropy table selector (0..3) */ - int ac_tbl_no; /* AC entropy table selector (0..3) */ - - /* Remaining fields should be treated as private by applications. */ - - /* These values are computed during compression or decompression startup: */ - /* Component's size in DCT blocks. - * Any dummy blocks added to complete an MCU are not counted; therefore - * these values do not depend on whether a scan is interleaved or not. - */ - JDIMENSION width_in_blocks; - JDIMENSION height_in_blocks; - /* Size of a DCT block in samples, - * reflecting any scaling we choose to apply during the DCT step. - * Values from 1 to 16 are supported. - * Note that different components may receive different DCT scalings. - */ - int DCT_h_scaled_size; - int DCT_v_scaled_size; - /* The downsampled dimensions are the component's actual, unpadded number - * of samples at the main buffer (preprocessing/compression interface); - * DCT scaling is included, so - * downsampled_width = ceil(image_width * Hi/Hmax * DCT_h_scaled_size/DCTSIZE) - * and similarly for height. - */ - JDIMENSION downsampled_width; /* actual width in samples */ - JDIMENSION downsampled_height; /* actual height in samples */ - /* This flag is used only for decompression. In cases where some of the - * components will be ignored (eg grayscale output from YCbCr image), - * we can skip most computations for the unused components. - */ - boolean component_needed; /* do we need the value of this component? */ - - /* These values are computed before starting a scan of the component. */ - /* The decompressor output side may not use these variables. */ - int MCU_width; /* number of blocks per MCU, horizontally */ - int MCU_height; /* number of blocks per MCU, vertically */ - int MCU_blocks; /* MCU_width * MCU_height */ - int MCU_sample_width; /* MCU width in samples: MCU_width * DCT_h_scaled_size */ - int last_col_width; /* # of non-dummy blocks across in last MCU */ - int last_row_height; /* # of non-dummy blocks down in last MCU */ - - /* Saved quantization table for component; NULL if none yet saved. - * See jdinput.c comments about the need for this information. - * This field is currently used only for decompression. - */ - JQUANT_TBL * quant_table; - - /* Private per-component storage for DCT or IDCT subsystem. */ - void * dct_table; -} jpeg_component_info; - - -/* The script for encoding a multiple-scan file is an array of these: */ - -typedef struct { - int comps_in_scan; /* number of components encoded in this scan */ - int component_index[MAX_COMPS_IN_SCAN]; /* their SOF/comp_info[] indexes */ - int Ss, Se; /* progressive JPEG spectral selection parms */ - int Ah, Al; /* progressive JPEG successive approx. parms */ -} jpeg_scan_info; - -/* The decompressor can save APPn and COM markers in a list of these: */ - -typedef struct jpeg_marker_struct FAR * jpeg_saved_marker_ptr; - -struct jpeg_marker_struct { - jpeg_saved_marker_ptr next; /* next in list, or NULL */ - UINT8 marker; /* marker code: JPEG_COM, or JPEG_APP0+n */ - unsigned int original_length; /* # bytes of data in the file */ - unsigned int data_length; /* # bytes of data saved at data[] */ - JOCTET FAR * data; /* the data contained in the marker */ - /* the marker length word is not counted in data_length or original_length */ -}; - -/* Known color spaces. */ - -typedef enum { - JCS_UNKNOWN, /* error/unspecified */ - JCS_GRAYSCALE, /* monochrome */ - JCS_RGB, /* red/green/blue */ - JCS_YCbCr, /* Y/Cb/Cr (also known as YUV) */ - JCS_CMYK, /* C/M/Y/K */ - JCS_YCCK /* Y/Cb/Cr/K */ -} J_COLOR_SPACE; - -/* DCT/IDCT algorithm options. */ - -typedef enum { - JDCT_ISLOW, /* slow but accurate integer algorithm */ - JDCT_IFAST, /* faster, less accurate integer method */ - JDCT_FLOAT /* floating-point: accurate, fast on fast HW */ -} J_DCT_METHOD; - -#ifndef JDCT_DEFAULT /* may be overridden in jconfig.h */ -#define JDCT_DEFAULT JDCT_ISLOW -#endif -#ifndef JDCT_FASTEST /* may be overridden in jconfig.h */ -#define JDCT_FASTEST JDCT_IFAST -#endif - -/* Dithering options for decompression. */ - -typedef enum { - JDITHER_NONE, /* no dithering */ - JDITHER_ORDERED, /* simple ordered dither */ - JDITHER_FS /* Floyd-Steinberg error diffusion dither */ -} J_DITHER_MODE; - - -/* Common fields between JPEG compression and decompression master structs. */ - -#define jpeg_common_fields \ - struct jpeg_error_mgr * err; /* Error handler module */\ - struct jpeg_memory_mgr * mem; /* Memory manager module */\ - struct jpeg_progress_mgr * progress; /* Progress monitor, or NULL if none */\ - void * client_data; /* Available for use by application */\ - boolean is_decompressor; /* So common code can tell which is which */\ - int global_state /* For checking call sequence validity */ - -/* Routines that are to be used by both halves of the library are declared - * to receive a pointer to this structure. There are no actual instances of - * jpeg_common_struct, only of jpeg_compress_struct and jpeg_decompress_struct. - */ -struct jpeg_common_struct { - jpeg_common_fields; /* Fields common to both master struct types */ - /* Additional fields follow in an actual jpeg_compress_struct or - * jpeg_decompress_struct. All three structs must agree on these - * initial fields! (This would be a lot cleaner in C++.) - */ -}; - -typedef struct jpeg_common_struct * j_common_ptr; -typedef struct jpeg_compress_struct * j_compress_ptr; -typedef struct jpeg_decompress_struct * j_decompress_ptr; - - -/* Master record for a compression instance */ - -struct jpeg_compress_struct { - jpeg_common_fields; /* Fields shared with jpeg_decompress_struct */ - - /* Destination for compressed data */ - struct jpeg_destination_mgr * dest; - - /* Description of source image --- these fields must be filled in by - * outer application before starting compression. in_color_space must - * be correct before you can even call jpeg_set_defaults(). - */ - - JDIMENSION image_width; /* input image width */ - JDIMENSION image_height; /* input image height */ - int input_components; /* # of color components in input image */ - J_COLOR_SPACE in_color_space; /* colorspace of input image */ - - double input_gamma; /* image gamma of input image */ - - /* Compression parameters --- these fields must be set before calling - * jpeg_start_compress(). We recommend calling jpeg_set_defaults() to - * initialize everything to reasonable defaults, then changing anything - * the application specifically wants to change. That way you won't get - * burnt when new parameters are added. Also note that there are several - * helper routines to simplify changing parameters. - */ - - unsigned int scale_num, scale_denom; /* fraction by which to scale image */ - - JDIMENSION jpeg_width; /* scaled JPEG image width */ - JDIMENSION jpeg_height; /* scaled JPEG image height */ - /* Dimensions of actual JPEG image that will be written to file, - * derived from input dimensions by scaling factors above. - * These fields are computed by jpeg_start_compress(). - * You can also use jpeg_calc_jpeg_dimensions() to determine these values - * in advance of calling jpeg_start_compress(). - */ - - int data_precision; /* bits of precision in image data */ - - int num_components; /* # of color components in JPEG image */ - J_COLOR_SPACE jpeg_color_space; /* colorspace of JPEG image */ - - jpeg_component_info * comp_info; - /* comp_info[i] describes component that appears i'th in SOF */ - - JQUANT_TBL * quant_tbl_ptrs[NUM_QUANT_TBLS]; - int q_scale_factor[NUM_QUANT_TBLS]; - /* ptrs to coefficient quantization tables, or NULL if not defined, - * and corresponding scale factors (percentage, initialized 100). - */ - - JHUFF_TBL * dc_huff_tbl_ptrs[NUM_HUFF_TBLS]; - JHUFF_TBL * ac_huff_tbl_ptrs[NUM_HUFF_TBLS]; - /* ptrs to Huffman coding tables, or NULL if not defined */ - - UINT8 arith_dc_L[NUM_ARITH_TBLS]; /* L values for DC arith-coding tables */ - UINT8 arith_dc_U[NUM_ARITH_TBLS]; /* U values for DC arith-coding tables */ - UINT8 arith_ac_K[NUM_ARITH_TBLS]; /* Kx values for AC arith-coding tables */ - - int num_scans; /* # of entries in scan_info array */ - const jpeg_scan_info * scan_info; /* script for multi-scan file, or NULL */ - /* The default value of scan_info is NULL, which causes a single-scan - * sequential JPEG file to be emitted. To create a multi-scan file, - * set num_scans and scan_info to point to an array of scan definitions. - */ - - boolean raw_data_in; /* TRUE=caller supplies downsampled data */ - boolean arith_code; /* TRUE=arithmetic coding, FALSE=Huffman */ - boolean optimize_coding; /* TRUE=optimize entropy encoding parms */ - boolean CCIR601_sampling; /* TRUE=first samples are cosited */ - boolean do_fancy_downsampling; /* TRUE=apply fancy downsampling */ - int smoothing_factor; /* 1..100, or 0 for no input smoothing */ - J_DCT_METHOD dct_method; /* DCT algorithm selector */ - - /* The restart interval can be specified in absolute MCUs by setting - * restart_interval, or in MCU rows by setting restart_in_rows - * (in which case the correct restart_interval will be figured - * for each scan). - */ - unsigned int restart_interval; /* MCUs per restart, or 0 for no restart */ - int restart_in_rows; /* if > 0, MCU rows per restart interval */ - - /* Parameters controlling emission of special markers. */ - - boolean write_JFIF_header; /* should a JFIF marker be written? */ - UINT8 JFIF_major_version; /* What to write for the JFIF version number */ - UINT8 JFIF_minor_version; - /* These three values are not used by the JPEG code, merely copied */ - /* into the JFIF APP0 marker. density_unit can be 0 for unknown, */ - /* 1 for dots/inch, or 2 for dots/cm. Note that the pixel aspect */ - /* ratio is defined by X_density/Y_density even when density_unit=0. */ - UINT8 density_unit; /* JFIF code for pixel size units */ - UINT16 X_density; /* Horizontal pixel density */ - UINT16 Y_density; /* Vertical pixel density */ - boolean write_Adobe_marker; /* should an Adobe marker be written? */ - - /* State variable: index of next scanline to be written to - * jpeg_write_scanlines(). Application may use this to control its - * processing loop, e.g., "while (next_scanline < image_height)". - */ - - JDIMENSION next_scanline; /* 0 .. image_height-1 */ - - /* Remaining fields are known throughout compressor, but generally - * should not be touched by a surrounding application. - */ - - /* - * These fields are computed during compression startup - */ - boolean progressive_mode; /* TRUE if scan script uses progressive mode */ - int max_h_samp_factor; /* largest h_samp_factor */ - int max_v_samp_factor; /* largest v_samp_factor */ - - int min_DCT_h_scaled_size; /* smallest DCT_h_scaled_size of any component */ - int min_DCT_v_scaled_size; /* smallest DCT_v_scaled_size of any component */ - - JDIMENSION total_iMCU_rows; /* # of iMCU rows to be input to coef ctlr */ - /* The coefficient controller receives data in units of MCU rows as defined - * for fully interleaved scans (whether the JPEG file is interleaved or not). - * There are v_samp_factor * DCTSIZE sample rows of each component in an - * "iMCU" (interleaved MCU) row. - */ - - /* - * These fields are valid during any one scan. - * They describe the components and MCUs actually appearing in the scan. - */ - int comps_in_scan; /* # of JPEG components in this scan */ - jpeg_component_info * cur_comp_info[MAX_COMPS_IN_SCAN]; - /* *cur_comp_info[i] describes component that appears i'th in SOS */ - - JDIMENSION MCUs_per_row; /* # of MCUs across the image */ - JDIMENSION MCU_rows_in_scan; /* # of MCU rows in the image */ - - int blocks_in_MCU; /* # of DCT blocks per MCU */ - int MCU_membership[C_MAX_BLOCKS_IN_MCU]; - /* MCU_membership[i] is index in cur_comp_info of component owning */ - /* i'th block in an MCU */ - - int Ss, Se, Ah, Al; /* progressive JPEG parameters for scan */ - - int block_size; /* the basic DCT block size: 1..16 */ - const int * natural_order; /* natural-order position array */ - int lim_Se; /* min( Se, DCTSIZE2-1 ) */ - - /* - * Links to compression subobjects (methods and private variables of modules) - */ - struct jpeg_comp_master * master; - struct jpeg_c_main_controller * main; - struct jpeg_c_prep_controller * prep; - struct jpeg_c_coef_controller * coef; - struct jpeg_marker_writer * marker; - struct jpeg_color_converter * cconvert; - struct jpeg_downsampler * downsample; - struct jpeg_forward_dct * fdct; - struct jpeg_entropy_encoder * entropy; - jpeg_scan_info * script_space; /* workspace for jpeg_simple_progression */ - int script_space_size; -}; - - -/* Master record for a decompression instance */ - -struct jpeg_decompress_struct { - jpeg_common_fields; /* Fields shared with jpeg_compress_struct */ - - /* Source of compressed data */ - struct jpeg_source_mgr * src; - - /* Basic description of image --- filled in by jpeg_read_header(). */ - /* Application may inspect these values to decide how to process image. */ - - JDIMENSION image_width; /* nominal image width (from SOF marker) */ - JDIMENSION image_height; /* nominal image height */ - int num_components; /* # of color components in JPEG image */ - J_COLOR_SPACE jpeg_color_space; /* colorspace of JPEG image */ - - /* Decompression processing parameters --- these fields must be set before - * calling jpeg_start_decompress(). Note that jpeg_read_header() initializes - * them to default values. - */ - - J_COLOR_SPACE out_color_space; /* colorspace for output */ - - unsigned int scale_num, scale_denom; /* fraction by which to scale image */ - - double output_gamma; /* image gamma wanted in output */ - - boolean buffered_image; /* TRUE=multiple output passes */ - boolean raw_data_out; /* TRUE=downsampled data wanted */ - - J_DCT_METHOD dct_method; /* IDCT algorithm selector */ - boolean do_fancy_upsampling; /* TRUE=apply fancy upsampling */ - boolean do_block_smoothing; /* TRUE=apply interblock smoothing */ - - boolean quantize_colors; /* TRUE=colormapped output wanted */ - /* the following are ignored if not quantize_colors: */ - J_DITHER_MODE dither_mode; /* type of color dithering to use */ - boolean two_pass_quantize; /* TRUE=use two-pass color quantization */ - int desired_number_of_colors; /* max # colors to use in created colormap */ - /* these are significant only in buffered-image mode: */ - boolean enable_1pass_quant; /* enable future use of 1-pass quantizer */ - boolean enable_external_quant;/* enable future use of external colormap */ - boolean enable_2pass_quant; /* enable future use of 2-pass quantizer */ - - /* Description of actual output image that will be returned to application. - * These fields are computed by jpeg_start_decompress(). - * You can also use jpeg_calc_output_dimensions() to determine these values - * in advance of calling jpeg_start_decompress(). - */ - - JDIMENSION output_width; /* scaled image width */ - JDIMENSION output_height; /* scaled image height */ - int out_color_components; /* # of color components in out_color_space */ - int output_components; /* # of color components returned */ - /* output_components is 1 (a colormap index) when quantizing colors; - * otherwise it equals out_color_components. - */ - int rec_outbuf_height; /* min recommended height of scanline buffer */ - /* If the buffer passed to jpeg_read_scanlines() is less than this many rows - * high, space and time will be wasted due to unnecessary data copying. - * Usually rec_outbuf_height will be 1 or 2, at most 4. - */ - - /* When quantizing colors, the output colormap is described by these fields. - * The application can supply a colormap by setting colormap non-NULL before - * calling jpeg_start_decompress; otherwise a colormap is created during - * jpeg_start_decompress or jpeg_start_output. - * The map has out_color_components rows and actual_number_of_colors columns. - */ - int actual_number_of_colors; /* number of entries in use */ - JSAMPARRAY colormap; /* The color map as a 2-D pixel array */ - - /* State variables: these variables indicate the progress of decompression. - * The application may examine these but must not modify them. - */ - - /* Row index of next scanline to be read from jpeg_read_scanlines(). - * Application may use this to control its processing loop, e.g., - * "while (output_scanline < output_height)". - */ - JDIMENSION output_scanline; /* 0 .. output_height-1 */ - - /* Current input scan number and number of iMCU rows completed in scan. - * These indicate the progress of the decompressor input side. - */ - int input_scan_number; /* Number of SOS markers seen so far */ - JDIMENSION input_iMCU_row; /* Number of iMCU rows completed */ - - /* The "output scan number" is the notional scan being displayed by the - * output side. The decompressor will not allow output scan/row number - * to get ahead of input scan/row, but it can fall arbitrarily far behind. - */ - int output_scan_number; /* Nominal scan number being displayed */ - JDIMENSION output_iMCU_row; /* Number of iMCU rows read */ - - /* Current progression status. coef_bits[c][i] indicates the precision - * with which component c's DCT coefficient i (in zigzag order) is known. - * It is -1 when no data has yet been received, otherwise it is the point - * transform (shift) value for the most recent scan of the coefficient - * (thus, 0 at completion of the progression). - * This pointer is NULL when reading a non-progressive file. - */ - int (*coef_bits)[DCTSIZE2]; /* -1 or current Al value for each coef */ - - /* Internal JPEG parameters --- the application usually need not look at - * these fields. Note that the decompressor output side may not use - * any parameters that can change between scans. - */ - - /* Quantization and Huffman tables are carried forward across input - * datastreams when processing abbreviated JPEG datastreams. - */ - - JQUANT_TBL * quant_tbl_ptrs[NUM_QUANT_TBLS]; - /* ptrs to coefficient quantization tables, or NULL if not defined */ - - JHUFF_TBL * dc_huff_tbl_ptrs[NUM_HUFF_TBLS]; - JHUFF_TBL * ac_huff_tbl_ptrs[NUM_HUFF_TBLS]; - /* ptrs to Huffman coding tables, or NULL if not defined */ - - /* These parameters are never carried across datastreams, since they - * are given in SOF/SOS markers or defined to be reset by SOI. - */ - - int data_precision; /* bits of precision in image data */ - - jpeg_component_info * comp_info; - /* comp_info[i] describes component that appears i'th in SOF */ - - boolean is_baseline; /* TRUE if Baseline SOF0 encountered */ - boolean progressive_mode; /* TRUE if SOFn specifies progressive mode */ - boolean arith_code; /* TRUE=arithmetic coding, FALSE=Huffman */ - - UINT8 arith_dc_L[NUM_ARITH_TBLS]; /* L values for DC arith-coding tables */ - UINT8 arith_dc_U[NUM_ARITH_TBLS]; /* U values for DC arith-coding tables */ - UINT8 arith_ac_K[NUM_ARITH_TBLS]; /* Kx values for AC arith-coding tables */ - - unsigned int restart_interval; /* MCUs per restart interval, or 0 for no restart */ - - /* These fields record data obtained from optional markers recognized by - * the JPEG library. - */ - boolean saw_JFIF_marker; /* TRUE iff a JFIF APP0 marker was found */ - /* Data copied from JFIF marker; only valid if saw_JFIF_marker is TRUE: */ - UINT8 JFIF_major_version; /* JFIF version number */ - UINT8 JFIF_minor_version; - UINT8 density_unit; /* JFIF code for pixel size units */ - UINT16 X_density; /* Horizontal pixel density */ - UINT16 Y_density; /* Vertical pixel density */ - boolean saw_Adobe_marker; /* TRUE iff an Adobe APP14 marker was found */ - UINT8 Adobe_transform; /* Color transform code from Adobe marker */ - - boolean CCIR601_sampling; /* TRUE=first samples are cosited */ - - /* Aside from the specific data retained from APPn markers known to the - * library, the uninterpreted contents of any or all APPn and COM markers - * can be saved in a list for examination by the application. - */ - jpeg_saved_marker_ptr marker_list; /* Head of list of saved markers */ - - /* Remaining fields are known throughout decompressor, but generally - * should not be touched by a surrounding application. - */ - - /* - * These fields are computed during decompression startup - */ - int max_h_samp_factor; /* largest h_samp_factor */ - int max_v_samp_factor; /* largest v_samp_factor */ - - int min_DCT_h_scaled_size; /* smallest DCT_h_scaled_size of any component */ - int min_DCT_v_scaled_size; /* smallest DCT_v_scaled_size of any component */ - - JDIMENSION total_iMCU_rows; /* # of iMCU rows in image */ - /* The coefficient controller's input and output progress is measured in - * units of "iMCU" (interleaved MCU) rows. These are the same as MCU rows - * in fully interleaved JPEG scans, but are used whether the scan is - * interleaved or not. We define an iMCU row as v_samp_factor DCT block - * rows of each component. Therefore, the IDCT output contains - * v_samp_factor*DCT_v_scaled_size sample rows of a component per iMCU row. - */ - - JSAMPLE * sample_range_limit; /* table for fast range-limiting */ - - /* - * These fields are valid during any one scan. - * They describe the components and MCUs actually appearing in the scan. - * Note that the decompressor output side must not use these fields. - */ - int comps_in_scan; /* # of JPEG components in this scan */ - jpeg_component_info * cur_comp_info[MAX_COMPS_IN_SCAN]; - /* *cur_comp_info[i] describes component that appears i'th in SOS */ - - JDIMENSION MCUs_per_row; /* # of MCUs across the image */ - JDIMENSION MCU_rows_in_scan; /* # of MCU rows in the image */ - - int blocks_in_MCU; /* # of DCT blocks per MCU */ - int MCU_membership[D_MAX_BLOCKS_IN_MCU]; - /* MCU_membership[i] is index in cur_comp_info of component owning */ - /* i'th block in an MCU */ - - int Ss, Se, Ah, Al; /* progressive JPEG parameters for scan */ - - /* These fields are derived from Se of first SOS marker. - */ - int block_size; /* the basic DCT block size: 1..16 */ - const int * natural_order; /* natural-order position array for entropy decode */ - int lim_Se; /* min( Se, DCTSIZE2-1 ) for entropy decode */ - - /* This field is shared between entropy decoder and marker parser. - * It is either zero or the code of a JPEG marker that has been - * read from the data source, but has not yet been processed. - */ - int unread_marker; - - /* - * Links to decompression subobjects (methods, private variables of modules) - */ - struct jpeg_decomp_master * master; - struct jpeg_d_main_controller * main; - struct jpeg_d_coef_controller * coef; - struct jpeg_d_post_controller * post; - struct jpeg_input_controller * inputctl; - struct jpeg_marker_reader * marker; - struct jpeg_entropy_decoder * entropy; - struct jpeg_inverse_dct * idct; - struct jpeg_upsampler * upsample; - struct jpeg_color_deconverter * cconvert; - struct jpeg_color_quantizer * cquantize; -}; - - -/* "Object" declarations for JPEG modules that may be supplied or called - * directly by the surrounding application. - * As with all objects in the JPEG library, these structs only define the - * publicly visible methods and state variables of a module. Additional - * private fields may exist after the public ones. - */ - - -/* Error handler object */ - -struct jpeg_error_mgr { - /* Error exit handler: does not return to caller */ - JMETHOD(void, error_exit, (j_common_ptr cinfo)); - /* Conditionally emit a trace or warning message */ - JMETHOD(void, emit_message, (j_common_ptr cinfo, int msg_level)); - /* Routine that actually outputs a trace or error message */ - JMETHOD(void, output_message, (j_common_ptr cinfo)); - /* Format a message string for the most recent JPEG error or message */ - JMETHOD(void, format_message, (j_common_ptr cinfo, char * buffer)); -#define JMSG_LENGTH_MAX 200 /* recommended size of format_message buffer */ - /* Reset error state variables at start of a new image */ - JMETHOD(void, reset_error_mgr, (j_common_ptr cinfo)); - - /* The message ID code and any parameters are saved here. - * A message can have one string parameter or up to 8 int parameters. - */ - int msg_code; -#define JMSG_STR_PARM_MAX 80 - union { - int i[8]; - char s[JMSG_STR_PARM_MAX]; - } msg_parm; - - /* Standard state variables for error facility */ - - int trace_level; /* max msg_level that will be displayed */ - - /* For recoverable corrupt-data errors, we emit a warning message, - * but keep going unless emit_message chooses to abort. emit_message - * should count warnings in num_warnings. The surrounding application - * can check for bad data by seeing if num_warnings is nonzero at the - * end of processing. - */ - long num_warnings; /* number of corrupt-data warnings */ - - /* These fields point to the table(s) of error message strings. - * An application can change the table pointer to switch to a different - * message list (typically, to change the language in which errors are - * reported). Some applications may wish to add additional error codes - * that will be handled by the JPEG library error mechanism; the second - * table pointer is used for this purpose. - * - * First table includes all errors generated by JPEG library itself. - * Error code 0 is reserved for a "no such error string" message. - */ - const char * const * jpeg_message_table; /* Library errors */ - int last_jpeg_message; /* Table contains strings 0..last_jpeg_message */ - /* Second table can be added by application (see cjpeg/djpeg for example). - * It contains strings numbered first_addon_message..last_addon_message. - */ - const char * const * addon_message_table; /* Non-library errors */ - int first_addon_message; /* code for first string in addon table */ - int last_addon_message; /* code for last string in addon table */ -}; - - -/* Progress monitor object */ - -struct jpeg_progress_mgr { - JMETHOD(void, progress_monitor, (j_common_ptr cinfo)); - - long pass_counter; /* work units completed in this pass */ - long pass_limit; /* total number of work units in this pass */ - int completed_passes; /* passes completed so far */ - int total_passes; /* total number of passes expected */ -}; - - -/* Data destination object for compression */ - -struct jpeg_destination_mgr { - JOCTET * next_output_byte; /* => next byte to write in buffer */ - size_t free_in_buffer; /* # of byte spaces remaining in buffer */ - - JMETHOD(void, init_destination, (j_compress_ptr cinfo)); - JMETHOD(boolean, empty_output_buffer, (j_compress_ptr cinfo)); - JMETHOD(void, term_destination, (j_compress_ptr cinfo)); -}; - - -/* Data source object for decompression */ - -struct jpeg_source_mgr { - const JOCTET * next_input_byte; /* => next byte to read from buffer */ - size_t bytes_in_buffer; /* # of bytes remaining in buffer */ - - JMETHOD(void, init_source, (j_decompress_ptr cinfo)); - JMETHOD(boolean, fill_input_buffer, (j_decompress_ptr cinfo)); - JMETHOD(void, skip_input_data, (j_decompress_ptr cinfo, long num_bytes)); - JMETHOD(boolean, resync_to_restart, (j_decompress_ptr cinfo, int desired)); - JMETHOD(void, term_source, (j_decompress_ptr cinfo)); -}; - - -/* Memory manager object. - * Allocates "small" objects (a few K total), "large" objects (tens of K), - * and "really big" objects (virtual arrays with backing store if needed). - * The memory manager does not allow individual objects to be freed; rather, - * each created object is assigned to a pool, and whole pools can be freed - * at once. This is faster and more convenient than remembering exactly what - * to free, especially where malloc()/free() are not too speedy. - * NB: alloc routines never return NULL. They exit to error_exit if not - * successful. - */ - -#define JPOOL_PERMANENT 0 /* lasts until master record is destroyed */ -#define JPOOL_IMAGE 1 /* lasts until done with image/datastream */ -#define JPOOL_NUMPOOLS 2 - -typedef struct jvirt_sarray_control * jvirt_sarray_ptr; -typedef struct jvirt_barray_control * jvirt_barray_ptr; - - -struct jpeg_memory_mgr { - /* Method pointers */ - JMETHOD(void *, alloc_small, (j_common_ptr cinfo, int pool_id, - size_t sizeofobject)); - JMETHOD(void FAR *, alloc_large, (j_common_ptr cinfo, int pool_id, - size_t sizeofobject)); - JMETHOD(JSAMPARRAY, alloc_sarray, (j_common_ptr cinfo, int pool_id, - JDIMENSION samplesperrow, - JDIMENSION numrows)); - JMETHOD(JBLOCKARRAY, alloc_barray, (j_common_ptr cinfo, int pool_id, - JDIMENSION blocksperrow, - JDIMENSION numrows)); - JMETHOD(jvirt_sarray_ptr, request_virt_sarray, (j_common_ptr cinfo, - int pool_id, - boolean pre_zero, - JDIMENSION samplesperrow, - JDIMENSION numrows, - JDIMENSION maxaccess)); - JMETHOD(jvirt_barray_ptr, request_virt_barray, (j_common_ptr cinfo, - int pool_id, - boolean pre_zero, - JDIMENSION blocksperrow, - JDIMENSION numrows, - JDIMENSION maxaccess)); - JMETHOD(void, realize_virt_arrays, (j_common_ptr cinfo)); - JMETHOD(JSAMPARRAY, access_virt_sarray, (j_common_ptr cinfo, - jvirt_sarray_ptr ptr, - JDIMENSION start_row, - JDIMENSION num_rows, - boolean writable)); - JMETHOD(JBLOCKARRAY, access_virt_barray, (j_common_ptr cinfo, - jvirt_barray_ptr ptr, - JDIMENSION start_row, - JDIMENSION num_rows, - boolean writable)); - JMETHOD(void, free_pool, (j_common_ptr cinfo, int pool_id)); - JMETHOD(void, self_destruct, (j_common_ptr cinfo)); - - /* Limit on memory allocation for this JPEG object. (Note that this is - * merely advisory, not a guaranteed maximum; it only affects the space - * used for virtual-array buffers.) May be changed by outer application - * after creating the JPEG object. - */ - long max_memory_to_use; - - /* Maximum allocation request accepted by alloc_large. */ - long max_alloc_chunk; -}; - - -/* Routine signature for application-supplied marker processing methods. - * Need not pass marker code since it is stored in cinfo->unread_marker. - */ -typedef JMETHOD(boolean, jpeg_marker_parser_method, (j_decompress_ptr cinfo)); - - -/* Declarations for routines called by application. - * The JPP macro hides prototype parameters from compilers that can't cope. - * Note JPP requires double parentheses. - */ - -#ifdef HAVE_PROTOTYPES -#define JPP(arglist) arglist -#else -#define JPP(arglist) () -#endif - - -/* Short forms of external names for systems with brain-damaged linkers. - * We shorten external names to be unique in the first six letters, which - * is good enough for all known systems. - * (If your compiler itself needs names to be unique in less than 15 - * characters, you are out of luck. Get a better compiler.) - */ - -#ifdef NEED_SHORT_EXTERNAL_NAMES -#define jpeg_std_error jStdError -#define jpeg_CreateCompress jCreaCompress -#define jpeg_CreateDecompress jCreaDecompress -#define jpeg_destroy_compress jDestCompress -#define jpeg_destroy_decompress jDestDecompress -#define jpeg_stdio_dest jStdDest -#define jpeg_stdio_src jStdSrc -#define jpeg_mem_dest jMemDest -#define jpeg_mem_src jMemSrc -#define jpeg_set_defaults jSetDefaults -#define jpeg_set_colorspace jSetColorspace -#define jpeg_default_colorspace jDefColorspace -#define jpeg_set_quality jSetQuality -#define jpeg_set_linear_quality jSetLQuality -#define jpeg_default_qtables jDefQTables -#define jpeg_add_quant_table jAddQuantTable -#define jpeg_quality_scaling jQualityScaling -#define jpeg_simple_progression jSimProgress -#define jpeg_suppress_tables jSuppressTables -#define jpeg_alloc_quant_table jAlcQTable -#define jpeg_alloc_huff_table jAlcHTable -#define jpeg_start_compress jStrtCompress -#define jpeg_write_scanlines jWrtScanlines -#define jpeg_finish_compress jFinCompress -#define jpeg_calc_jpeg_dimensions jCjpegDimensions -#define jpeg_write_raw_data jWrtRawData -#define jpeg_write_marker jWrtMarker -#define jpeg_write_m_header jWrtMHeader -#define jpeg_write_m_byte jWrtMByte -#define jpeg_write_tables jWrtTables -#define jpeg_read_header jReadHeader -#define jpeg_start_decompress jStrtDecompress -#define jpeg_read_scanlines jReadScanlines -#define jpeg_finish_decompress jFinDecompress -#define jpeg_read_raw_data jReadRawData -#define jpeg_has_multiple_scans jHasMultScn -#define jpeg_start_output jStrtOutput -#define jpeg_finish_output jFinOutput -#define jpeg_input_complete jInComplete -#define jpeg_new_colormap jNewCMap -#define jpeg_consume_input jConsumeInput -#define jpeg_core_output_dimensions jCoreDimensions -#define jpeg_calc_output_dimensions jCalcDimensions -#define jpeg_save_markers jSaveMarkers -#define jpeg_set_marker_processor jSetMarker -#define jpeg_read_coefficients jReadCoefs -#define jpeg_write_coefficients jWrtCoefs -#define jpeg_copy_critical_parameters jCopyCrit -#define jpeg_abort_compress jAbrtCompress -#define jpeg_abort_decompress jAbrtDecompress -#define jpeg_abort jAbort -#define jpeg_destroy jDestroy -#define jpeg_resync_to_restart jResyncRestart -#endif /* NEED_SHORT_EXTERNAL_NAMES */ - - -/* Default error-management setup */ -EXTERN(struct jpeg_error_mgr *) jpeg_std_error - JPP((struct jpeg_error_mgr * err)); - -/* Initialization of JPEG compression objects. - * jpeg_create_compress() and jpeg_create_decompress() are the exported - * names that applications should call. These expand to calls on - * jpeg_CreateCompress and jpeg_CreateDecompress with additional information - * passed for version mismatch checking. - * NB: you must set up the error-manager BEFORE calling jpeg_create_xxx. - */ -#define jpeg_create_compress(cinfo) \ - jpeg_CreateCompress((cinfo), JPEG_LIB_VERSION, \ - (size_t) sizeof(struct jpeg_compress_struct)) -#define jpeg_create_decompress(cinfo) \ - jpeg_CreateDecompress((cinfo), JPEG_LIB_VERSION, \ - (size_t) sizeof(struct jpeg_decompress_struct)) -EXTERN(void) jpeg_CreateCompress JPP((j_compress_ptr cinfo, - int version, size_t structsize)); -EXTERN(void) jpeg_CreateDecompress JPP((j_decompress_ptr cinfo, - int version, size_t structsize)); -/* Destruction of JPEG compression objects */ -EXTERN(void) jpeg_destroy_compress JPP((j_compress_ptr cinfo)); -EXTERN(void) jpeg_destroy_decompress JPP((j_decompress_ptr cinfo)); - -/* Standard data source and destination managers: stdio streams. */ -/* Caller is responsible for opening the file before and closing after. */ -EXTERN(void) jpeg_stdio_dest JPP((j_compress_ptr cinfo, FILE * outfile)); -EXTERN(void) jpeg_stdio_src JPP((j_decompress_ptr cinfo, FILE * infile)); - -/* Data source and destination managers: memory buffers. */ -EXTERN(void) jpeg_mem_dest JPP((j_compress_ptr cinfo, - unsigned char ** outbuffer, - unsigned long * outsize)); -EXTERN(void) jpeg_mem_src JPP((j_decompress_ptr cinfo, - unsigned char * inbuffer, - unsigned long insize)); - -/* Default parameter setup for compression */ -EXTERN(void) jpeg_set_defaults JPP((j_compress_ptr cinfo)); -/* Compression parameter setup aids */ -EXTERN(void) jpeg_set_colorspace JPP((j_compress_ptr cinfo, - J_COLOR_SPACE colorspace)); -EXTERN(void) jpeg_default_colorspace JPP((j_compress_ptr cinfo)); -EXTERN(void) jpeg_set_quality JPP((j_compress_ptr cinfo, int quality, - boolean force_baseline)); -EXTERN(void) jpeg_set_linear_quality JPP((j_compress_ptr cinfo, - int scale_factor, - boolean force_baseline)); -EXTERN(void) jpeg_default_qtables JPP((j_compress_ptr cinfo, - boolean force_baseline)); -EXTERN(void) jpeg_add_quant_table JPP((j_compress_ptr cinfo, int which_tbl, - const unsigned int *basic_table, - int scale_factor, - boolean force_baseline)); -EXTERN(int) jpeg_quality_scaling JPP((int quality)); -EXTERN(void) jpeg_simple_progression JPP((j_compress_ptr cinfo)); -EXTERN(void) jpeg_suppress_tables JPP((j_compress_ptr cinfo, - boolean suppress)); -EXTERN(JQUANT_TBL *) jpeg_alloc_quant_table JPP((j_common_ptr cinfo)); -EXTERN(JHUFF_TBL *) jpeg_alloc_huff_table JPP((j_common_ptr cinfo)); - -/* Main entry points for compression */ -EXTERN(void) jpeg_start_compress JPP((j_compress_ptr cinfo, - boolean write_all_tables)); -EXTERN(JDIMENSION) jpeg_write_scanlines JPP((j_compress_ptr cinfo, - JSAMPARRAY scanlines, - JDIMENSION num_lines)); -EXTERN(void) jpeg_finish_compress JPP((j_compress_ptr cinfo)); - -/* Precalculate JPEG dimensions for current compression parameters. */ -EXTERN(void) jpeg_calc_jpeg_dimensions JPP((j_compress_ptr cinfo)); - -/* Replaces jpeg_write_scanlines when writing raw downsampled data. */ -EXTERN(JDIMENSION) jpeg_write_raw_data JPP((j_compress_ptr cinfo, - JSAMPIMAGE data, - JDIMENSION num_lines)); - -/* Write a special marker. See libjpeg.txt concerning safe usage. */ -EXTERN(void) jpeg_write_marker - JPP((j_compress_ptr cinfo, int marker, - const JOCTET * dataptr, unsigned int datalen)); -/* Same, but piecemeal. */ -EXTERN(void) jpeg_write_m_header - JPP((j_compress_ptr cinfo, int marker, unsigned int datalen)); -EXTERN(void) jpeg_write_m_byte - JPP((j_compress_ptr cinfo, int val)); - -/* Alternate compression function: just write an abbreviated table file */ -EXTERN(void) jpeg_write_tables JPP((j_compress_ptr cinfo)); - -/* Decompression startup: read start of JPEG datastream to see what's there */ -EXTERN(int) jpeg_read_header JPP((j_decompress_ptr cinfo, - boolean require_image)); -/* Return value is one of: */ -#define JPEG_SUSPENDED 0 /* Suspended due to lack of input data */ -#define JPEG_HEADER_OK 1 /* Found valid image datastream */ -#define JPEG_HEADER_TABLES_ONLY 2 /* Found valid table-specs-only datastream */ -/* If you pass require_image = TRUE (normal case), you need not check for - * a TABLES_ONLY return code; an abbreviated file will cause an error exit. - * JPEG_SUSPENDED is only possible if you use a data source module that can - * give a suspension return (the stdio source module doesn't). - */ - -/* Main entry points for decompression */ -EXTERN(boolean) jpeg_start_decompress JPP((j_decompress_ptr cinfo)); -EXTERN(JDIMENSION) jpeg_read_scanlines JPP((j_decompress_ptr cinfo, - JSAMPARRAY scanlines, - JDIMENSION max_lines)); -EXTERN(boolean) jpeg_finish_decompress JPP((j_decompress_ptr cinfo)); - -/* Replaces jpeg_read_scanlines when reading raw downsampled data. */ -EXTERN(JDIMENSION) jpeg_read_raw_data JPP((j_decompress_ptr cinfo, - JSAMPIMAGE data, - JDIMENSION max_lines)); - -/* Additional entry points for buffered-image mode. */ -EXTERN(boolean) jpeg_has_multiple_scans JPP((j_decompress_ptr cinfo)); -EXTERN(boolean) jpeg_start_output JPP((j_decompress_ptr cinfo, - int scan_number)); -EXTERN(boolean) jpeg_finish_output JPP((j_decompress_ptr cinfo)); -EXTERN(boolean) jpeg_input_complete JPP((j_decompress_ptr cinfo)); -EXTERN(void) jpeg_new_colormap JPP((j_decompress_ptr cinfo)); -EXTERN(int) jpeg_consume_input JPP((j_decompress_ptr cinfo)); -/* Return value is one of: */ -/* #define JPEG_SUSPENDED 0 Suspended due to lack of input data */ -#define JPEG_REACHED_SOS 1 /* Reached start of new scan */ -#define JPEG_REACHED_EOI 2 /* Reached end of image */ -#define JPEG_ROW_COMPLETED 3 /* Completed one iMCU row */ -#define JPEG_SCAN_COMPLETED 4 /* Completed last iMCU row of a scan */ - -/* Precalculate output dimensions for current decompression parameters. */ -EXTERN(void) jpeg_core_output_dimensions JPP((j_decompress_ptr cinfo)); -EXTERN(void) jpeg_calc_output_dimensions JPP((j_decompress_ptr cinfo)); - -/* Control saving of COM and APPn markers into marker_list. */ -EXTERN(void) jpeg_save_markers - JPP((j_decompress_ptr cinfo, int marker_code, - unsigned int length_limit)); - -/* Install a special processing method for COM or APPn markers. */ -EXTERN(void) jpeg_set_marker_processor - JPP((j_decompress_ptr cinfo, int marker_code, - jpeg_marker_parser_method routine)); - -/* Read or write raw DCT coefficients --- useful for lossless transcoding. */ -EXTERN(jvirt_barray_ptr *) jpeg_read_coefficients JPP((j_decompress_ptr cinfo)); -EXTERN(void) jpeg_write_coefficients JPP((j_compress_ptr cinfo, - jvirt_barray_ptr * coef_arrays)); -EXTERN(void) jpeg_copy_critical_parameters JPP((j_decompress_ptr srcinfo, - j_compress_ptr dstinfo)); - -/* If you choose to abort compression or decompression before completing - * jpeg_finish_(de)compress, then you need to clean up to release memory, - * temporary files, etc. You can just call jpeg_destroy_(de)compress - * if you're done with the JPEG object, but if you want to clean it up and - * reuse it, call this: - */ -EXTERN(void) jpeg_abort_compress JPP((j_compress_ptr cinfo)); -EXTERN(void) jpeg_abort_decompress JPP((j_decompress_ptr cinfo)); - -/* Generic versions of jpeg_abort and jpeg_destroy that work on either - * flavor of JPEG object. These may be more convenient in some places. - */ -EXTERN(void) jpeg_abort JPP((j_common_ptr cinfo)); -EXTERN(void) jpeg_destroy JPP((j_common_ptr cinfo)); - -/* Default restart-marker-resync procedure for use by data source modules */ -EXTERN(boolean) jpeg_resync_to_restart JPP((j_decompress_ptr cinfo, - int desired)); - - -/* These marker codes are exported since applications and data source modules - * are likely to want to use them. - */ - -#define JPEG_RST0 0xD0 /* RST0 marker code */ -#define JPEG_EOI 0xD9 /* EOI marker code */ -#define JPEG_APP0 0xE0 /* APP0 marker code */ -#define JPEG_COM 0xFE /* COM marker code */ - - -/* If we have a brain-damaged compiler that emits warnings (or worse, errors) - * for structure definitions that are never filled in, keep it quiet by - * supplying dummy definitions for the various substructures. - */ - -#ifdef INCOMPLETE_TYPES_BROKEN -#ifndef JPEG_INTERNALS /* will be defined in jpegint.h */ -struct jvirt_sarray_control { long dummy; }; -struct jvirt_barray_control { long dummy; }; -struct jpeg_comp_master { long dummy; }; -struct jpeg_c_main_controller { long dummy; }; -struct jpeg_c_prep_controller { long dummy; }; -struct jpeg_c_coef_controller { long dummy; }; -struct jpeg_marker_writer { long dummy; }; -struct jpeg_color_converter { long dummy; }; -struct jpeg_downsampler { long dummy; }; -struct jpeg_forward_dct { long dummy; }; -struct jpeg_entropy_encoder { long dummy; }; -struct jpeg_decomp_master { long dummy; }; -struct jpeg_d_main_controller { long dummy; }; -struct jpeg_d_coef_controller { long dummy; }; -struct jpeg_d_post_controller { long dummy; }; -struct jpeg_input_controller { long dummy; }; -struct jpeg_marker_reader { long dummy; }; -struct jpeg_entropy_decoder { long dummy; }; -struct jpeg_inverse_dct { long dummy; }; -struct jpeg_upsampler { long dummy; }; -struct jpeg_color_deconverter { long dummy; }; -struct jpeg_color_quantizer { long dummy; }; -#endif /* JPEG_INTERNALS */ -#endif /* INCOMPLETE_TYPES_BROKEN */ - - -/* - * The JPEG library modules define JPEG_INTERNALS before including this file. - * The internal structure declarations are read only when that is true. - * Applications using the library should not include jpegint.h, but may wish - * to include jerror.h. - */ - -#ifdef JPEG_INTERNALS -#include "jpegint.h" /* fetch private declarations */ -#include "jerror.h" /* fetch error codes too */ -#endif - -#ifdef __cplusplus -#ifndef DONT_USE_EXTERN_C -} -#endif -#endif - -#endif /* JPEGLIB_H */ diff --git a/misc/builddeps/linux32/jpeg/lib/libjpeg.a b/misc/builddeps/linux32/jpeg/lib/libjpeg.a deleted file mode 100644 index 991dbce136f02a5fe64ee618e3abc19d3603f787..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1176654 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

=DcgwlAS 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 n>04U5j8+)t7 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

0!}azyAH!8_4sBfOIe7D`%;o= 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«#6;z;xW9w-_%;{5E$)9p|2gpiD$iHreunhF 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%0A=cc; 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 diff --git a/misc/builddeps/linux32/jpeg/lib/libjpeg.la b/misc/builddeps/linux32/jpeg/lib/libjpeg.la deleted file mode 100755 index ac8ef61f..00000000 --- a/misc/builddeps/linux32/jpeg/lib/libjpeg.la +++ /dev/null @@ -1,41 +0,0 @@ -# libjpeg.la - a libtool library file -# Generated by ltmain.sh (GNU libtool) 2.2.6b -# -# Please DO NOT delete this file! -# It is necessary for linking the library. - -# The name that we can dlopen(3). -dlname='' - -# Names of this library. -library_names='' - -# The name of the static archive. -old_library='libjpeg.a' - -# Linker flags that can not go in dependency_libs. -inherited_linker_flags='' - -# Libraries that this one depends upon. -dependency_libs='' - -# Names of additional weak libraries provided by this library -weak_library_names='' - -# Version information for libjpeg. -current=8 -age=0 -revision=2 - -# Is this an already installed library? -installed=yes - -# Should we warn about portability when linking against -modules? -shouldnotlink=no - -# Files to dlopen/dlpreopen -dlopen='' -dlpreopen='' - -# Directory that this library needs to be installed in: -libdir='/tmp/j/lib' diff --git a/misc/builddeps/linux32/jpeg/share/man/man1/cjpeg.1 b/misc/builddeps/linux32/jpeg/share/man/man1/cjpeg.1 deleted file mode 100644 index 01bfa259..00000000 --- a/misc/builddeps/linux32/jpeg/share/man/man1/cjpeg.1 +++ /dev/null @@ -1,325 +0,0 @@ -.TH CJPEG 1 "30 December 2009" -.SH NAME -cjpeg \- compress an image file to a JPEG file -.SH SYNOPSIS -.B cjpeg -[ -.I options -] -[ -.I filename -] -.LP -.SH DESCRIPTION -.LP -.B cjpeg -compresses the named image file, or the standard input if no file is -named, and produces a JPEG/JFIF file on the standard output. -The currently supported input file formats are: PPM (PBMPLUS color -format), PGM (PBMPLUS gray-scale format), BMP, Targa, and RLE (Utah Raster -Toolkit format). (RLE is supported only if the URT library is available.) -.SH OPTIONS -All switch names may be abbreviated; for example, -.B \-grayscale -may be written -.B \-gray -or -.BR \-gr . -Most of the "basic" switches can be abbreviated to as little as one letter. -Upper and lower case are equivalent (thus -.B \-BMP -is the same as -.BR \-bmp ). -British spellings are also accepted (e.g., -.BR \-greyscale ), -though for brevity these are not mentioned below. -.PP -The basic switches are: -.TP -.BI \-quality " N[,...]" -Scale quantization tables to adjust image quality. Quality is 0 (worst) to -100 (best); default is 75. (See below for more info.) -.TP -.B \-grayscale -Create monochrome JPEG file from color input. Be sure to use this switch when -compressing a grayscale BMP file, because -.B cjpeg -isn't bright enough to notice whether a BMP file uses only shades of gray. -By saying -.BR \-grayscale , -you'll get a smaller JPEG file that takes less time to process. -.TP -.B \-optimize -Perform optimization of entropy encoding parameters. Without this, default -encoding parameters are used. -.B \-optimize -usually makes the JPEG file a little smaller, but -.B cjpeg -runs somewhat slower and needs much more memory. Image quality and speed of -decompression are unaffected by -.BR \-optimize . -.TP -.B \-progressive -Create progressive JPEG file (see below). -.TP -.BI \-scale " M/N" -Scale the output image by a factor M/N. Currently supported scale factors are -8/N with all N from 1 to 16. -.TP -.B \-targa -Input file is Targa format. Targa files that contain an "identification" -field will not be automatically recognized by -.BR cjpeg ; -for such files you must specify -.B \-targa -to make -.B cjpeg -treat the input as Targa format. -For most Targa files, you won't need this switch. -.PP -The -.B \-quality -switch lets you trade off compressed file size against quality of the -reconstructed image: the higher the quality setting, the larger the JPEG file, -and the closer the output image will be to the original input. Normally you -want to use the lowest quality setting (smallest file) that decompresses into -something visually indistinguishable from the original image. For this -purpose the quality setting should be between 50 and 95; the default of 75 is -often about right. If you see defects at -.B \-quality -75, then go up 5 or 10 counts at a time until you are happy with the output -image. (The optimal setting will vary from one image to another.) -.PP -.B \-quality -100 will generate a quantization table of all 1's, minimizing loss in the -quantization step (but there is still information loss in subsampling, as well -as roundoff error). This setting is mainly of interest for experimental -purposes. Quality values above about 95 are -.B not -recommended for normal use; the compressed file size goes up dramatically for -hardly any gain in output image quality. -.PP -In the other direction, quality values below 50 will produce very small files -of low image quality. Settings around 5 to 10 might be useful in preparing an -index of a large image library, for example. Try -.B \-quality -2 (or so) for some amusing Cubist effects. (Note: quality -values below about 25 generate 2-byte quantization tables, which are -considered optional in the JPEG standard. -.B cjpeg -emits a warning message when you give such a quality value, because some -other JPEG programs may be unable to decode the resulting file. Use -.B \-baseline -if you need to ensure compatibility at low quality values.) -.PP -The -.B \-quality -option has been extended in IJG version 7 for support of separate quality -settings for luminance and chrominance (or in general, for every provided -quantization table slot). This feature is useful for high-quality -applications which cannot accept the damage of color data by coarse -subsampling settings. You can now easily reduce the color data amount more -smoothly with finer control without separate subsampling. The resulting file -is fully compliant with standard JPEG decoders. -Note that the -.B \-quality -ratings refer to the quantization table slots, and that the last value is -replicated if there are more q-table slots than parameters. The default -q-table slots are 0 for luminance and 1 for chrominance with default tables as -given in the JPEG standard. This is compatible with the old behaviour in case -that only one parameter is given, which is then used for both luminance and -chrominance (slots 0 and 1). More or custom quantization tables can be set -with -.B \-qtables -and assigned to components with -.B \-qslots -parameter (see the "wizard" switches below). -.B Caution: -You must explicitly add -.BI \-sample " 1x1" -for efficient separate color -quality selection, since the default value used by library is 2x2! -.PP -The -.B \-progressive -switch creates a "progressive JPEG" file. In this type of JPEG file, the data -is stored in multiple scans of increasing quality. If the file is being -transmitted over a slow communications link, the decoder can use the first -scan to display a low-quality image very quickly, and can then improve the -display with each subsequent scan. The final image is exactly equivalent to a -standard JPEG file of the same quality setting, and the total file size is -about the same --- often a little smaller. -.PP -Switches for advanced users: -.TP -.B \-dct int -Use integer DCT method (default). -.TP -.B \-dct fast -Use fast integer DCT (less accurate). -.TP -.B \-dct float -Use floating-point DCT method. -The float method is very slightly more accurate than the int method, but is -much slower unless your machine has very fast floating-point hardware. Also -note that results of the floating-point method may vary slightly across -machines, while the integer methods should give the same results everywhere. -The fast integer method is much less accurate than the other two. -.TP -.B \-nosmooth -Don't use high-quality downsampling. -.TP -.BI \-restart " N" -Emit a JPEG restart marker every N MCU rows, or every N MCU blocks if "B" is -attached to the number. -.B \-restart 0 -(the default) means no restart markers. -.TP -.BI \-smooth " N" -Smooth the input image to eliminate dithering noise. N, ranging from 1 to -100, indicates the strength of smoothing. 0 (the default) means no smoothing. -.TP -.BI \-maxmemory " N" -Set limit for amount of memory to use in processing large images. Value is -in thousands of bytes, or millions of bytes if "M" is attached to the -number. For example, -.B \-max 4m -selects 4000000 bytes. If more space is needed, temporary files will be used. -.TP -.BI \-outfile " name" -Send output image to the named file, not to standard output. -.TP -.B \-verbose -Enable debug printout. More -.BR \-v 's -give more output. Also, version information is printed at startup. -.TP -.B \-debug -Same as -.BR \-verbose . -.PP -The -.B \-restart -option inserts extra markers that allow a JPEG decoder to resynchronize after -a transmission error. Without restart markers, any damage to a compressed -file will usually ruin the image from the point of the error to the end of the -image; with restart markers, the damage is usually confined to the portion of -the image up to the next restart marker. Of course, the restart markers -occupy extra space. We recommend -.B \-restart 1 -for images that will be transmitted across unreliable networks such as Usenet. -.PP -The -.B \-smooth -option filters the input to eliminate fine-scale noise. This is often useful -when converting dithered images to JPEG: a moderate smoothing factor of 10 to -50 gets rid of dithering patterns in the input file, resulting in a smaller -JPEG file and a better-looking image. Too large a smoothing factor will -visibly blur the image, however. -.PP -Switches for wizards: -.TP -.B \-arithmetic -Use arithmetic coding. -.B Caution: -arithmetic coded JPEG is not yet widely implemented, so many decoders will be -unable to view an arithmetic coded JPEG file at all. -.TP -.B \-baseline -Force baseline-compatible quantization tables to be generated. This clamps -quantization values to 8 bits even at low quality settings. (This switch is -poorly named, since it does not ensure that the output is actually baseline -JPEG. For example, you can use -.B \-baseline -and -.B \-progressive -together.) -.TP -.BI \-qtables " file" -Use the quantization tables given in the specified text file. -.TP -.BI \-qslots " N[,...]" -Select which quantization table to use for each color component. -.TP -.BI \-sample " HxV[,...]" -Set JPEG sampling factors for each color component. -.TP -.BI \-scans " file" -Use the scan script given in the specified text file. -.PP -The "wizard" switches are intended for experimentation with JPEG. If you -don't know what you are doing, \fBdon't use them\fR. These switches are -documented further in the file wizard.txt. -.SH EXAMPLES -.LP -This example compresses the PPM file foo.ppm with a quality factor of -60 and saves the output as foo.jpg: -.IP -.B cjpeg \-quality -.I 60 foo.ppm -.B > -.I foo.jpg -.SH HINTS -Color GIF files are not the ideal input for JPEG; JPEG is really intended for -compressing full-color (24-bit) images. In particular, don't try to convert -cartoons, line drawings, and other images that have only a few distinct -colors. GIF works great on these, JPEG does not. If you want to convert a -GIF to JPEG, you should experiment with -.BR cjpeg 's -.B \-quality -and -.B \-smooth -options to get a satisfactory conversion. -.B \-smooth 10 -or so is often helpful. -.PP -Avoid running an image through a series of JPEG compression/decompression -cycles. Image quality loss will accumulate; after ten or so cycles the image -may be noticeably worse than it was after one cycle. It's best to use a -lossless format while manipulating an image, then convert to JPEG format when -you are ready to file the image away. -.PP -The -.B \-optimize -option to -.B cjpeg -is worth using when you are making a "final" version for posting or archiving. -It's also a win when you are using low quality settings to make very small -JPEG files; the percentage improvement is often a lot more than it is on -larger files. (At present, -.B \-optimize -mode is always selected when generating progressive JPEG files.) -.SH ENVIRONMENT -.TP -.B JPEGMEM -If this environment variable is set, its value is the default memory limit. -The value is specified as described for the -.B \-maxmemory -switch. -.B JPEGMEM -overrides the default value specified when the program was compiled, and -itself is overridden by an explicit -.BR \-maxmemory . -.SH SEE ALSO -.BR djpeg (1), -.BR jpegtran (1), -.BR rdjpgcom (1), -.BR wrjpgcom (1) -.br -.BR ppm (5), -.BR pgm (5) -.br -Wallace, Gregory K. "The JPEG Still Picture Compression Standard", -Communications of the ACM, April 1991 (vol. 34, no. 4), pp. 30-44. -.SH AUTHOR -Independent JPEG Group -.SH BUGS -GIF input files are no longer supported, to avoid the Unisys LZW patent. -(Conversion of GIF files to JPEG is usually a bad idea anyway.) -.PP -Not all variants of BMP and Targa file formats are supported. -.PP -The -.B \-targa -switch is not a bug, it's a feature. (It would be a bug if the Targa format -designers had not been clueless.) diff --git a/misc/builddeps/linux32/jpeg/share/man/man1/djpeg.1 b/misc/builddeps/linux32/jpeg/share/man/man1/djpeg.1 deleted file mode 100644 index f3722d15..00000000 --- a/misc/builddeps/linux32/jpeg/share/man/man1/djpeg.1 +++ /dev/null @@ -1,252 +0,0 @@ -.TH DJPEG 1 "3 October 2009" -.SH NAME -djpeg \- decompress a JPEG file to an image file -.SH SYNOPSIS -.B djpeg -[ -.I options -] -[ -.I filename -] -.LP -.SH DESCRIPTION -.LP -.B djpeg -decompresses the named JPEG file, or the standard input if no file is named, -and produces an image file on the standard output. PBMPLUS (PPM/PGM), BMP, -GIF, Targa, or RLE (Utah Raster Toolkit) output format can be selected. -(RLE is supported only if the URT library is available.) -.SH OPTIONS -All switch names may be abbreviated; for example, -.B \-grayscale -may be written -.B \-gray -or -.BR \-gr . -Most of the "basic" switches can be abbreviated to as little as one letter. -Upper and lower case are equivalent (thus -.B \-BMP -is the same as -.BR \-bmp ). -British spellings are also accepted (e.g., -.BR \-greyscale ), -though for brevity these are not mentioned below. -.PP -The basic switches are: -.TP -.BI \-colors " N" -Reduce image to at most N colors. This reduces the number of colors used in -the output image, so that it can be displayed on a colormapped display or -stored in a colormapped file format. For example, if you have an 8-bit -display, you'd need to reduce to 256 or fewer colors. -.TP -.BI \-quantize " N" -Same as -.BR \-colors . -.B \-colors -is the recommended name, -.B \-quantize -is provided only for backwards compatibility. -.TP -.B \-fast -Select recommended processing options for fast, low quality output. (The -default options are chosen for highest quality output.) Currently, this is -equivalent to \fB\-dct fast \-nosmooth \-onepass \-dither ordered\fR. -.TP -.B \-grayscale -Force gray-scale output even if JPEG file is color. Useful for viewing on -monochrome displays; also, -.B djpeg -runs noticeably faster in this mode. -.TP -.BI \-scale " M/N" -Scale the output image by a factor M/N. Currently supported scale factors are -M/N with all M from 1 to 16, where N is the source DCT size, which is 8 for -baseline JPEG. If the /N part is omitted, then M specifies the DCT scaled -size to be applied on the given input. For baseline JPEG this is equivalent -to M/8 scaling, since the source DCT size for baseline JPEG is 8. -Scaling is handy if the image is larger than your screen; also, -.B djpeg -runs much faster when scaling down the output. -.TP -.B \-bmp -Select BMP output format (Windows flavor). 8-bit colormapped format is -emitted if -.B \-colors -or -.B \-grayscale -is specified, or if the JPEG file is gray-scale; otherwise, 24-bit full-color -format is emitted. -.TP -.B \-gif -Select GIF output format. Since GIF does not support more than 256 colors, -.B \-colors 256 -is assumed (unless you specify a smaller number of colors). -.TP -.B \-os2 -Select BMP output format (OS/2 1.x flavor). 8-bit colormapped format is -emitted if -.B \-colors -or -.B \-grayscale -is specified, or if the JPEG file is gray-scale; otherwise, 24-bit full-color -format is emitted. -.TP -.B \-pnm -Select PBMPLUS (PPM/PGM) output format (this is the default format). -PGM is emitted if the JPEG file is gray-scale or if -.B \-grayscale -is specified; otherwise PPM is emitted. -.TP -.B \-rle -Select RLE output format. (Requires URT library.) -.TP -.B \-targa -Select Targa output format. Gray-scale format is emitted if the JPEG file is -gray-scale or if -.B \-grayscale -is specified; otherwise, colormapped format is emitted if -.B \-colors -is specified; otherwise, 24-bit full-color format is emitted. -.PP -Switches for advanced users: -.TP -.B \-dct int -Use integer DCT method (default). -.TP -.B \-dct fast -Use fast integer DCT (less accurate). -.TP -.B \-dct float -Use floating-point DCT method. -The float method is very slightly more accurate than the int method, but is -much slower unless your machine has very fast floating-point hardware. Also -note that results of the floating-point method may vary slightly across -machines, while the integer methods should give the same results everywhere. -The fast integer method is much less accurate than the other two. -.TP -.B \-dither fs -Use Floyd-Steinberg dithering in color quantization. -.TP -.B \-dither ordered -Use ordered dithering in color quantization. -.TP -.B \-dither none -Do not use dithering in color quantization. -By default, Floyd-Steinberg dithering is applied when quantizing colors; this -is slow but usually produces the best results. Ordered dither is a compromise -between speed and quality; no dithering is fast but usually looks awful. Note -that these switches have no effect unless color quantization is being done. -Ordered dither is only available in -.B \-onepass -mode. -.TP -.BI \-map " file" -Quantize to the colors used in the specified image file. This is useful for -producing multiple files with identical color maps, or for forcing a -predefined set of colors to be used. The -.I file -must be a GIF or PPM file. This option overrides -.B \-colors -and -.BR \-onepass . -.TP -.B \-nosmooth -Don't use high-quality upsampling. -.TP -.B \-onepass -Use one-pass instead of two-pass color quantization. The one-pass method is -faster and needs less memory, but it produces a lower-quality image. -.B \-onepass -is ignored unless you also say -.B \-colors -.IR N . -Also, the one-pass method is always used for gray-scale output (the two-pass -method is no improvement then). -.TP -.BI \-maxmemory " N" -Set limit for amount of memory to use in processing large images. Value is -in thousands of bytes, or millions of bytes if "M" is attached to the -number. For example, -.B \-max 4m -selects 4000000 bytes. If more space is needed, temporary files will be used. -.TP -.BI \-outfile " name" -Send output image to the named file, not to standard output. -.TP -.B \-verbose -Enable debug printout. More -.BR \-v 's -give more output. Also, version information is printed at startup. -.TP -.B \-debug -Same as -.BR \-verbose . -.SH EXAMPLES -.LP -This example decompresses the JPEG file foo.jpg, quantizes it to -256 colors, and saves the output in 8-bit BMP format in foo.bmp: -.IP -.B djpeg \-colors 256 \-bmp -.I foo.jpg -.B > -.I foo.bmp -.SH HINTS -To get a quick preview of an image, use the -.B \-grayscale -and/or -.B \-scale -switches. -.B \-grayscale \-scale 1/8 -is the fastest case. -.PP -Several options are available that trade off image quality to gain speed. -.B \-fast -turns on the recommended settings. -.PP -.B \-dct fast -and/or -.B \-nosmooth -gain speed at a small sacrifice in quality. -When producing a color-quantized image, -.B \-onepass \-dither ordered -is fast but much lower quality than the default behavior. -.B \-dither none -may give acceptable results in two-pass mode, but is seldom tolerable in -one-pass mode. -.PP -If you are fortunate enough to have very fast floating point hardware, -\fB\-dct float\fR may be even faster than \fB\-dct fast\fR. But on most -machines \fB\-dct float\fR is slower than \fB\-dct int\fR; in this case it is -not worth using, because its theoretical accuracy advantage is too small to be -significant in practice. -.SH ENVIRONMENT -.TP -.B JPEGMEM -If this environment variable is set, its value is the default memory limit. -The value is specified as described for the -.B \-maxmemory -switch. -.B JPEGMEM -overrides the default value specified when the program was compiled, and -itself is overridden by an explicit -.BR \-maxmemory . -.SH SEE ALSO -.BR cjpeg (1), -.BR jpegtran (1), -.BR rdjpgcom (1), -.BR wrjpgcom (1) -.br -.BR ppm (5), -.BR pgm (5) -.br -Wallace, Gregory K. "The JPEG Still Picture Compression Standard", -Communications of the ACM, April 1991 (vol. 34, no. 4), pp. 30-44. -.SH AUTHOR -Independent JPEG Group -.SH BUGS -To avoid the Unisys LZW patent, -.B djpeg -produces uncompressed GIF files. These are larger than they should be, but -are readable by standard GIF decoders. diff --git a/misc/builddeps/linux32/jpeg/share/man/man1/jpegtran.1 b/misc/builddeps/linux32/jpeg/share/man/man1/jpegtran.1 deleted file mode 100644 index 0ad1bbc8..00000000 --- a/misc/builddeps/linux32/jpeg/share/man/man1/jpegtran.1 +++ /dev/null @@ -1,285 +0,0 @@ -.TH JPEGTRAN 1 "28 December 2009" -.SH NAME -jpegtran \- lossless transformation of JPEG files -.SH SYNOPSIS -.B jpegtran -[ -.I options -] -[ -.I filename -] -.LP -.SH DESCRIPTION -.LP -.B jpegtran -performs various useful transformations of JPEG files. -It can translate the coded representation from one variant of JPEG to another, -for example from baseline JPEG to progressive JPEG or vice versa. It can also -perform some rearrangements of the image data, for example turning an image -from landscape to portrait format by rotation. -.PP -.B jpegtran -works by rearranging the compressed data (DCT coefficients), without -ever fully decoding the image. Therefore, its transformations are lossless: -there is no image degradation at all, which would not be true if you used -.B djpeg -followed by -.B cjpeg -to accomplish the same conversion. But by the same token, -.B jpegtran -cannot perform lossy operations such as changing the image quality. -.PP -.B jpegtran -reads the named JPEG/JFIF file, or the standard input if no file is -named, and produces a JPEG/JFIF file on the standard output. -.SH OPTIONS -All switch names may be abbreviated; for example, -.B \-optimize -may be written -.B \-opt -or -.BR \-o . -Upper and lower case are equivalent. -British spellings are also accepted (e.g., -.BR \-optimise ), -though for brevity these are not mentioned below. -.PP -To specify the coded JPEG representation used in the output file, -.B jpegtran -accepts a subset of the switches recognized by -.BR cjpeg : -.TP -.B \-optimize -Perform optimization of entropy encoding parameters. -.TP -.B \-progressive -Create progressive JPEG file. -.TP -.BI \-restart " N" -Emit a JPEG restart marker every N MCU rows, or every N MCU blocks if "B" is -attached to the number. -.TP -.B \-arithmetic -Use arithmetic coding. -.TP -.BI \-scans " file" -Use the scan script given in the specified text file. -.PP -See -.BR cjpeg (1) -for more details about these switches. -If you specify none of these switches, you get a plain baseline-JPEG output -file. The quality setting and so forth are determined by the input file. -.PP -The image can be losslessly transformed by giving one of these switches: -.TP -.B \-flip horizontal -Mirror image horizontally (left-right). -.TP -.B \-flip vertical -Mirror image vertically (top-bottom). -.TP -.B \-rotate 90 -Rotate image 90 degrees clockwise. -.TP -.B \-rotate 180 -Rotate image 180 degrees. -.TP -.B \-rotate 270 -Rotate image 270 degrees clockwise (or 90 ccw). -.TP -.B \-transpose -Transpose image (across UL-to-LR axis). -.TP -.B \-transverse -Transverse transpose (across UR-to-LL axis). -.IP -The transpose transformation has no restrictions regarding image dimensions. -The other transformations operate rather oddly if the image dimensions are not -a multiple of the iMCU size (usually 8 or 16 pixels), because they can only -transform complete blocks of DCT coefficient data in the desired way. -.IP -.BR jpegtran 's -default behavior when transforming an odd-size image is designed -to preserve exact reversibility and mathematical consistency of the -transformation set. As stated, transpose is able to flip the entire image -area. Horizontal mirroring leaves any partial iMCU column at the right edge -untouched, but is able to flip all rows of the image. Similarly, vertical -mirroring leaves any partial iMCU row at the bottom edge untouched, but is -able to flip all columns. The other transforms can be built up as sequences -of transpose and flip operations; for consistency, their actions on edge -pixels are defined to be the same as the end result of the corresponding -transpose-and-flip sequence. -.IP -For practical use, you may prefer to discard any untransformable edge pixels -rather than having a strange-looking strip along the right and/or bottom edges -of a transformed image. To do this, add the -.B \-trim -switch: -.TP -.B \-trim -Drop non-transformable edge blocks. -.IP -Obviously, a transformation with -.B \-trim -is not reversible, so strictly speaking -.B jpegtran -with this switch is not lossless. Also, the expected mathematical -equivalences between the transformations no longer hold. For example, -.B \-rot 270 -trim -trims only the bottom edge, but -.B \-rot 90 -trim -followed by -.B \-rot 180 -trim -trims both edges. -.IP -If you are only interested in perfect transformation, add the -.B \-perfect -switch: -.TP -.B \-perfect -Fails with an error if the transformation is not perfect. -.IP -For example you may want to do -.IP -.B (jpegtran \-rot 90 -perfect -.I foo.jpg -.B || djpeg -.I foo.jpg -.B | pnmflip \-r90 | cjpeg) -.IP -to do a perfect rotation if available or an approximated one if not. -.PP -We also offer a lossless-crop option, which discards data outside a given -image region but losslessly preserves what is inside. Like the rotate and -flip transforms, lossless crop is restricted by the current JPEG format: the -upper left corner of the selected region must fall on an iMCU boundary. If -this does not hold for the given crop parameters, we silently move the upper -left corner up and/or left to make it so, simultaneously increasing the region -dimensions to keep the lower right crop corner unchanged. (Thus, the output -image covers at least the requested region, but may cover more.) - -The image can be losslessly cropped by giving the switch: -.TP -.B \-crop WxH+X+Y -Crop to a rectangular subarea of width W, height H starting at point X,Y. -.PP -Other not-strictly-lossless transformation switches are: -.TP -.B \-grayscale -Force grayscale output. -.IP -This option discards the chrominance channels if the input image is YCbCr -(ie, a standard color JPEG), resulting in a grayscale JPEG file. The -luminance channel is preserved exactly, so this is a better method of reducing -to grayscale than decompression, conversion, and recompression. This switch -is particularly handy for fixing a monochrome picture that was mistakenly -encoded as a color JPEG. (In such a case, the space savings from getting rid -of the near-empty chroma channels won't be large; but the decoding time for -a grayscale JPEG is substantially less than that for a color JPEG.) -.TP -.BI \-scale " M/N" -Scale the output image by a factor M/N. -.IP -Currently supported scale factors are M/N with all M from 1 to 16, where N is -the source DCT size, which is 8 for baseline JPEG. If the /N part is omitted, -then M specifies the DCT scaled size to be applied on the given input. For -baseline JPEG this is equivalent to M/8 scaling, since the source DCT size -for baseline JPEG is 8. -.B Caution: -An implementation of the JPEG SmartScale extension is required for this -feature. SmartScale enabled JPEG is not yet widely implemented, so many -decoders will be unable to view a SmartScale extended JPEG file at all. -.PP -.B jpegtran -also recognizes these switches that control what to do with "extra" markers, -such as comment blocks: -.TP -.B \-copy none -Copy no extra markers from source file. This setting suppresses all -comments and other excess baggage present in the source file. -.TP -.B \-copy comments -Copy only comment markers. This setting copies comments from the source file, -but discards any other inessential (for image display) data. -.TP -.B \-copy all -Copy all extra markers. This setting preserves miscellaneous markers -found in the source file, such as JFIF thumbnails, Exif data, and Photoshop -settings. In some files these extra markers can be sizable. -.IP -The default behavior is -.BR "\-copy comments" . -(Note: in IJG releases v6 and v6a, -.B jpegtran -always did the equivalent of -.BR "\-copy none" .) -.PP -Additional switches recognized by jpegtran are: -.TP -.BI \-maxmemory " N" -Set limit for amount of memory to use in processing large images. Value is -in thousands of bytes, or millions of bytes if "M" is attached to the -number. For example, -.B \-max 4m -selects 4000000 bytes. If more space is needed, temporary files will be used. -.TP -.BI \-outfile " name" -Send output image to the named file, not to standard output. -.TP -.B \-verbose -Enable debug printout. More -.BR \-v 's -give more output. Also, version information is printed at startup. -.TP -.B \-debug -Same as -.BR \-verbose . -.SH EXAMPLES -.LP -This example converts a baseline JPEG file to progressive form: -.IP -.B jpegtran \-progressive -.I foo.jpg -.B > -.I fooprog.jpg -.PP -This example rotates an image 90 degrees clockwise, discarding any -unrotatable edge pixels: -.IP -.B jpegtran \-rot 90 -trim -.I foo.jpg -.B > -.I foo90.jpg -.SH ENVIRONMENT -.TP -.B JPEGMEM -If this environment variable is set, its value is the default memory limit. -The value is specified as described for the -.B \-maxmemory -switch. -.B JPEGMEM -overrides the default value specified when the program was compiled, and -itself is overridden by an explicit -.BR \-maxmemory . -.SH SEE ALSO -.BR cjpeg (1), -.BR djpeg (1), -.BR rdjpgcom (1), -.BR wrjpgcom (1) -.br -Wallace, Gregory K. "The JPEG Still Picture Compression Standard", -Communications of the ACM, April 1991 (vol. 34, no. 4), pp. 30-44. -.SH AUTHOR -Independent JPEG Group -.SH BUGS -The transform options can't transform odd-size images perfectly. Use -.B \-trim -or -.B \-perfect -if you don't like the results. -.PP -The entire image is read into memory and then written out again, even in -cases where this isn't really necessary. Expect swapping on large images, -especially when using the more complex transform options. diff --git a/misc/builddeps/linux32/jpeg/share/man/man1/rdjpgcom.1 b/misc/builddeps/linux32/jpeg/share/man/man1/rdjpgcom.1 deleted file mode 100644 index 97611df8..00000000 --- a/misc/builddeps/linux32/jpeg/share/man/man1/rdjpgcom.1 +++ /dev/null @@ -1,63 +0,0 @@ -.TH RDJPGCOM 1 "02 April 2009" -.SH NAME -rdjpgcom \- display text comments from a JPEG file -.SH SYNOPSIS -.B rdjpgcom -[ -.B \-raw -] -[ -.B \-verbose -] -[ -.I filename -] -.LP -.SH DESCRIPTION -.LP -.B rdjpgcom -reads the named JPEG/JFIF file, or the standard input if no file is named, -and prints any text comments found in the file on the standard output. -.PP -The JPEG standard allows "comment" (COM) blocks to occur within a JPEG file. -Although the standard doesn't actually define what COM blocks are for, they -are widely used to hold user-supplied text strings. This lets you add -annotations, titles, index terms, etc to your JPEG files, and later retrieve -them as text. COM blocks do not interfere with the image stored in the JPEG -file. The maximum size of a COM block is 64K, but you can have as many of -them as you like in one JPEG file. -.SH OPTIONS -.TP -.B \-raw -Normally -.B rdjpgcom -escapes non-printable characters in comments, for security reasons. -This option avoids that. -.PP -.B \-verbose -Causes -.B rdjpgcom -to also display the JPEG image dimensions. -.PP -Switch names may be abbreviated, and are not case sensitive. -.SH HINTS -.B rdjpgcom -does not depend on the IJG JPEG library. Its source code is intended as an -illustration of the minimum amount of code required to parse a JPEG file -header correctly. -.PP -In -.B \-verbose -mode, -.B rdjpgcom -will also attempt to print the contents of any "APP12" markers as text. -Some digital cameras produce APP12 markers containing useful textual -information. If you like, you can modify the source code to print -other APPn marker types as well. -.SH SEE ALSO -.BR cjpeg (1), -.BR djpeg (1), -.BR jpegtran (1), -.BR wrjpgcom (1) -.SH AUTHOR -Independent JPEG Group diff --git a/misc/builddeps/linux32/jpeg/share/man/man1/wrjpgcom.1 b/misc/builddeps/linux32/jpeg/share/man/man1/wrjpgcom.1 deleted file mode 100644 index d419a999..00000000 --- a/misc/builddeps/linux32/jpeg/share/man/man1/wrjpgcom.1 +++ /dev/null @@ -1,103 +0,0 @@ -.TH WRJPGCOM 1 "15 June 1995" -.SH NAME -wrjpgcom \- insert text comments into a JPEG file -.SH SYNOPSIS -.B wrjpgcom -[ -.B \-replace -] -[ -.BI \-comment " text" -] -[ -.BI \-cfile " name" -] -[ -.I filename -] -.LP -.SH DESCRIPTION -.LP -.B wrjpgcom -reads the named JPEG/JFIF file, or the standard input if no file is named, -and generates a new JPEG/JFIF file on standard output. A comment block is -added to the file. -.PP -The JPEG standard allows "comment" (COM) blocks to occur within a JPEG file. -Although the standard doesn't actually define what COM blocks are for, they -are widely used to hold user-supplied text strings. This lets you add -annotations, titles, index terms, etc to your JPEG files, and later retrieve -them as text. COM blocks do not interfere with the image stored in the JPEG -file. The maximum size of a COM block is 64K, but you can have as many of -them as you like in one JPEG file. -.PP -.B wrjpgcom -adds a COM block, containing text you provide, to a JPEG file. -Ordinarily, the COM block is added after any existing COM blocks; but you -can delete the old COM blocks if you wish. -.SH OPTIONS -Switch names may be abbreviated, and are not case sensitive. -.TP -.B \-replace -Delete any existing COM blocks from the file. -.TP -.BI \-comment " text" -Supply text for new COM block on command line. -.TP -.BI \-cfile " name" -Read text for new COM block from named file. -.PP -If you have only one line of comment text to add, you can provide it on the -command line with -.BR \-comment . -The comment text must be surrounded with quotes so that it is treated as a -single argument. Longer comments can be read from a text file. -.PP -If you give neither -.B \-comment -nor -.BR \-cfile , -then -.B wrjpgcom -will read the comment text from standard input. (In this case an input image -file name MUST be supplied, so that the source JPEG file comes from somewhere -else.) You can enter multiple lines, up to 64KB worth. Type an end-of-file -indicator (usually control-D) to terminate the comment text entry. -.PP -.B wrjpgcom -will not add a COM block if the provided comment string is empty. Therefore -\fB\-replace \-comment ""\fR can be used to delete all COM blocks from a file. -.SH EXAMPLES -.LP -Add a short comment to in.jpg, producing out.jpg: -.IP -.B wrjpgcom \-c -\fI"View of my back yard" in.jpg -.B > -.I out.jpg -.PP -Attach a long comment previously stored in comment.txt: -.IP -.B wrjpgcom -.I in.jpg -.B < -.I comment.txt -.B > -.I out.jpg -.PP -or equivalently -.IP -.B wrjpgcom -.B -cfile -.I comment.txt -.B < -.I in.jpg -.B > -.I out.jpg -.SH SEE ALSO -.BR cjpeg (1), -.BR djpeg (1), -.BR jpegtran (1), -.BR rdjpgcom (1) -.SH AUTHOR -Independent JPEG Group diff --git a/misc/builddeps/linux32/ode/bin/ode-config b/misc/builddeps/linux32/ode/bin/ode-config deleted file mode 100755 index dddc75da..00000000 --- a/misc/builddeps/linux32/ode/bin/ode-config +++ /dev/null @@ -1,53 +0,0 @@ -#!/bin/sh - -prefix=/usr/local -exec_prefix=${prefix} -exec_prefix_set=no - -usage="\ -Usage: ode-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--cflags] [--libs]" - -if test $# -eq 0; then - echo "${usage}" 1>&2 - exit 1 -fi - -while test $# -gt 0; do - case "$1" in - -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;; - *) optarg= ;; - esac - - case $1 in - --prefix=*) - prefix=$optarg - if test $exec_prefix_set = no ; then - exec_prefix=$optarg - fi - ;; - --prefix) - echo $prefix - ;; - --exec-prefix=*) - exec_prefix=$optarg - exec_prefix_set=yes - ;; - --exec-prefix) - echo $exec_prefix - ;; - --version) - echo 0.12 - ;; - --cflags) - echo -I${prefix}/include -DdDOUBLE - ;; - --libs) - echo -L${exec_prefix}/lib -lode - ;; - *) - echo "${usage}" 1>&2 - exit 1 - ;; - esac - shift -done diff --git a/misc/builddeps/linux32/ode/include/ode/collision.h b/misc/builddeps/linux32/ode/include/ode/collision.h deleted file mode 100644 index e89726cb..00000000 --- a/misc/builddeps/linux32/ode/include/ode/collision.h +++ /dev/null @@ -1,1523 +0,0 @@ -/************************************************************************* - * * - * Open Dynamics Engine, Copyright (C) 2001-2003 Russell L. Smith. * - * All rights reserved. Email: russ@q12.org Web: www.q12.org * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of EITHER: * - * (1) The GNU Lesser General Public License as published by the Free * - * Software Foundation; either version 2.1 of the License, or (at * - * your option) any later version. The text of the GNU Lesser * - * General Public License is included with this library in the * - * file LICENSE.TXT. * - * (2) The BSD-style license that is included with this library in * - * the file LICENSE-BSD.TXT. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files * - * LICENSE.TXT and LICENSE-BSD.TXT for more details. * - * * - *************************************************************************/ - -#ifndef _ODE_COLLISION_H_ -#define _ODE_COLLISION_H_ - -#include -#include -#include -// Include odeinit.h for backward compatibility as some of initialization APIs -// were initally declared in current header. -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @defgroup collide Collision Detection - * - * ODE has two main components: a dynamics simulation engine and a collision - * detection engine. The collision engine is given information about the - * shape of each body. At each time step it figures out which bodies touch - * each other and passes the resulting contact point information to the user. - * The user in turn creates contact joints between bodies. - * - * Using ODE's collision detection is optional - an alternative collision - * detection system can be used as long as it can supply the right kinds of - * contact information. - */ - - -/* ************************************************************************ */ -/* general functions */ - -/** - * @brief Destroy a geom, removing it from any space. - * - * Destroy a geom, removing it from any space it is in first. This one - * function destroys a geom of any type, but to create a geom you must call - * a creation function for that type. - * - * When a space is destroyed, if its cleanup mode is 1 (the default) then all - * the geoms in that space are automatically destroyed as well. - * - * @param geom the geom to be destroyed. - * @ingroup collide - */ -ODE_API void dGeomDestroy (dGeomID geom); - - -/** - * @brief Set the user-defined data pointer stored in the geom. - * - * @param geom the geom to hold the data - * @param data the data pointer to be stored - * @ingroup collide - */ -ODE_API void dGeomSetData (dGeomID geom, void* data); - - -/** - * @brief Get the user-defined data pointer stored in the geom. - * - * @param geom the geom containing the data - * @ingroup collide - */ -ODE_API void *dGeomGetData (dGeomID geom); - - -/** - * @brief Set the body associated with a placeable geom. - * - * Setting a body on a geom automatically combines the position vector and - * rotation matrix of the body and geom, so that setting the position or - * orientation of one will set the value for both objects. Setting a body - * ID of zero gives the geom its own position and rotation, independent - * from any body. If the geom was previously connected to a body then its - * new independent position/rotation is set to the current position/rotation - * of the body. - * - * Calling these functions on a non-placeable geom results in a runtime - * error in the debug build of ODE. - * - * @param geom the geom to connect - * @param body the body to attach to the geom - * @ingroup collide - */ -ODE_API void dGeomSetBody (dGeomID geom, dBodyID body); - - -/** - * @brief Get the body associated with a placeable geom. - * @param geom the geom to query. - * @sa dGeomSetBody - * @ingroup collide - */ -ODE_API dBodyID dGeomGetBody (dGeomID geom); - - -/** - * @brief Set the position vector of a placeable geom. - * - * If the geom is attached to a body, the body's position will also be changed. - * Calling this function on a non-placeable geom results in a runtime error in - * the debug build of ODE. - * - * @param geom the geom to set. - * @param x the new X coordinate. - * @param y the new Y coordinate. - * @param z the new Z coordinate. - * @sa dBodySetPosition - * @ingroup collide - */ -ODE_API void dGeomSetPosition (dGeomID geom, dReal x, dReal y, dReal z); - - -/** - * @brief Set the rotation matrix of a placeable geom. - * - * If the geom is attached to a body, the body's rotation will also be changed. - * Calling this function on a non-placeable geom results in a runtime error in - * the debug build of ODE. - * - * @param geom the geom to set. - * @param R the new rotation matrix. - * @sa dBodySetRotation - * @ingroup collide - */ -ODE_API void dGeomSetRotation (dGeomID geom, const dMatrix3 R); - - -/** - * @brief Set the rotation of a placeable geom. - * - * If the geom is attached to a body, the body's rotation will also be changed. - * - * Calling this function on a non-placeable geom results in a runtime error in - * the debug build of ODE. - * - * @param geom the geom to set. - * @param Q the new rotation. - * @sa dBodySetQuaternion - * @ingroup collide - */ -ODE_API void dGeomSetQuaternion (dGeomID geom, const dQuaternion Q); - - -/** - * @brief Get the position vector of a placeable geom. - * - * If the geom is attached to a body, the body's position will be returned. - * - * Calling this function on a non-placeable geom results in a runtime error in - * the debug build of ODE. - * - * @param geom the geom to query. - * @returns A pointer to the geom's position vector. - * @remarks The returned value is a pointer to the geom's internal - * data structure. It is valid until any changes are made - * to the geom. - * @sa dBodyGetPosition - * @ingroup collide - */ -ODE_API const dReal * dGeomGetPosition (dGeomID geom); - - -/** - * @brief Copy the position of a geom into a vector. - * @ingroup collide - * @param geom the geom to query - * @param pos a copy of the geom position - * @sa dGeomGetPosition - */ -ODE_API void dGeomCopyPosition (dGeomID geom, dVector3 pos); - - -/** - * @brief Get the rotation matrix of a placeable geom. - * - * If the geom is attached to a body, the body's rotation will be returned. - * - * Calling this function on a non-placeable geom results in a runtime error in - * the debug build of ODE. - * - * @param geom the geom to query. - * @returns A pointer to the geom's rotation matrix. - * @remarks The returned value is a pointer to the geom's internal - * data structure. It is valid until any changes are made - * to the geom. - * @sa dBodyGetRotation - * @ingroup collide - */ -ODE_API const dReal * dGeomGetRotation (dGeomID geom); - - -/** - * @brief Get the rotation matrix of a placeable geom. - * - * If the geom is attached to a body, the body's rotation will be returned. - * - * Calling this function on a non-placeable geom results in a runtime error in - * the debug build of ODE. - * - * @param geom the geom to query. - * @param R a copy of the geom rotation - * @sa dGeomGetRotation - * @ingroup collide - */ -ODE_API void dGeomCopyRotation(dGeomID geom, dMatrix3 R); - - -/** - * @brief Get the rotation quaternion of a placeable geom. - * - * If the geom is attached to a body, the body's quaternion will be returned. - * - * Calling this function on a non-placeable geom results in a runtime error in - * the debug build of ODE. - * - * @param geom the geom to query. - * @param result a copy of the rotation quaternion. - * @sa dBodyGetQuaternion - * @ingroup collide - */ -ODE_API void dGeomGetQuaternion (dGeomID geom, dQuaternion result); - - -/** - * @brief Return the axis-aligned bounding box. - * - * Return in aabb an axis aligned bounding box that surrounds the given geom. - * The aabb array has elements (minx, maxx, miny, maxy, minz, maxz). If the - * geom is a space, a bounding box that surrounds all contained geoms is - * returned. - * - * This function may return a pre-computed cached bounding box, if it can - * determine that the geom has not moved since the last time the bounding - * box was computed. - * - * @param geom the geom to query - * @param aabb the returned bounding box - * @ingroup collide - */ -ODE_API void dGeomGetAABB (dGeomID geom, dReal aabb[6]); - - -/** - * @brief Determing if a geom is a space. - * @param geom the geom to query - * @returns Non-zero if the geom is a space, zero otherwise. - * @ingroup collide - */ -ODE_API int dGeomIsSpace (dGeomID geom); - - -/** - * @brief Query for the space containing a particular geom. - * @param geom the geom to query - * @returns The space that contains the geom, or NULL if the geom is - * not contained by a space. - * @ingroup collide - */ -ODE_API dSpaceID dGeomGetSpace (dGeomID); - - -/** - * @brief Given a geom, this returns its class. - * - * The ODE classes are: - * @li dSphereClass - * @li dBoxClass - * @li dCylinderClass - * @li dPlaneClass - * @li dRayClass - * @li dConvexClass - * @li dGeomTransformClass - * @li dTriMeshClass - * @li dSimpleSpaceClass - * @li dHashSpaceClass - * @li dQuadTreeSpaceClass - * @li dFirstUserClass - * @li dLastUserClass - * - * User-defined class will return their own number. - * - * @param geom the geom to query - * @returns The geom class ID. - * @ingroup collide - */ -ODE_API int dGeomGetClass (dGeomID geom); - - -/** - * @brief Set the "category" bitfield for the given geom. - * - * The category bitfield is used by spaces to govern which geoms will - * interact with each other. The bitfield is guaranteed to be at least - * 32 bits wide. The default category values for newly created geoms - * have all bits set. - * - * @param geom the geom to set - * @param bits the new bitfield value - * @ingroup collide - */ -ODE_API void dGeomSetCategoryBits (dGeomID geom, unsigned long bits); - - -/** - * @brief Set the "collide" bitfield for the given geom. - * - * The collide bitfield is used by spaces to govern which geoms will - * interact with each other. The bitfield is guaranteed to be at least - * 32 bits wide. The default category values for newly created geoms - * have all bits set. - * - * @param geom the geom to set - * @param bits the new bitfield value - * @ingroup collide - */ -ODE_API void dGeomSetCollideBits (dGeomID geom, unsigned long bits); - - -/** - * @brief Get the "category" bitfield for the given geom. - * - * @param geom the geom to set - * @param bits the new bitfield value - * @sa dGeomSetCategoryBits - * @ingroup collide - */ -ODE_API unsigned long dGeomGetCategoryBits (dGeomID); - - -/** - * @brief Get the "collide" bitfield for the given geom. - * - * @param geom the geom to set - * @param bits the new bitfield value - * @sa dGeomSetCollideBits - * @ingroup collide - */ -ODE_API unsigned long dGeomGetCollideBits (dGeomID); - - -/** - * @brief Enable a geom. - * - * Disabled geoms are completely ignored by dSpaceCollide and dSpaceCollide2, - * although they can still be members of a space. New geoms are created in - * the enabled state. - * - * @param geom the geom to enable - * @sa dGeomDisable - * @sa dGeomIsEnabled - * @ingroup collide - */ -ODE_API void dGeomEnable (dGeomID geom); - - -/** - * @brief Disable a geom. - * - * Disabled geoms are completely ignored by dSpaceCollide and dSpaceCollide2, - * although they can still be members of a space. New geoms are created in - * the enabled state. - * - * @param geom the geom to disable - * @sa dGeomDisable - * @sa dGeomIsEnabled - * @ingroup collide - */ -ODE_API void dGeomDisable (dGeomID geom); - - -/** - * @brief Check to see if a geom is enabled. - * - * Disabled geoms are completely ignored by dSpaceCollide and dSpaceCollide2, - * although they can still be members of a space. New geoms are created in - * the enabled state. - * - * @param geom the geom to query - * @returns Non-zero if the geom is enabled, zero otherwise. - * @sa dGeomDisable - * @sa dGeomIsEnabled - * @ingroup collide - */ -ODE_API int dGeomIsEnabled (dGeomID geom); - - -enum -{ - dGeomCommonControlClass = 0, - dGeomColliderControlClass = 1 -}; - -enum -{ - dGeomCommonAnyControlCode = 0, - - dGeomColliderSetMergeSphereContactsControlCode = 1, - dGeomColliderGetMergeSphereContactsControlCode = 2 -}; - -enum -{ - dGeomColliderMergeContactsValue__Default = 0, // Used with Set... to restore default value - dGeomColliderMergeContactsValue_None = 1, - dGeomColliderMergeContactsValue_Normals = 2, - dGeomColliderMergeContactsValue_Full = 3 -}; - -/** - * @brief Execute low level control operation for geometry. - * - * The variable the dataSize points to must be initialized before the call. - * If the size does not match the one expected for the control class/code function - * changes it to the size expected and returns failure. This implies the function - * can be called with NULL data and zero size to test if control class/code is supported - * and obtain required data size for it. - * - * dGeomCommonAnyControlCode applies to any control class and returns success if - * at least one control code is available for the given class with given geom. - * - * Currently there are the folliwing control classes supported: - * @li dGeomColliderControlClass - * - * For dGeomColliderControlClass there are the following codes available: - * @li dGeomColliderSetMergeSphereContactsControlCode (arg of type int, dGeomColliderMergeContactsValue_*) - * @li dGeomColliderGetMergeSphereContactsControlCode (arg of type int, dGeomColliderMergeContactsValue_*) - * - * @param geom the geom to control - * @param controlClass the control class - * @param controlCode the control code for the class - * @param dataValue the control argument pointer - * @param dataSize the control argument size provided or expected - * @returns Boolean execution status - * @ingroup collide - */ -ODE_API int dGeomLowLevelControl (dGeomID geom, int controlClass, int controlCode, void *dataValue, int *dataSize); - - -/** - * @brief Get world position of a relative point on geom. - * - * Calling this function on a non-placeable geom results in the same point being - * returned. - * - * @ingroup collide - * @param result will contain the result. - */ -ODE_API void dGeomGetRelPointPos -( - dGeomID geom, dReal px, dReal py, dReal pz, - dVector3 result -); - -/** - * @brief takes a point in global coordinates and returns - * the point's position in geom-relative coordinates. - * - * Calling this function on a non-placeable geom results in the same point being - * returned. - * - * @remarks - * This is the inverse of dGeomGetRelPointPos() - * @ingroup collide - * @param result will contain the result. - */ -ODE_API void dGeomGetPosRelPoint -( - dGeomID geom, dReal px, dReal py, dReal pz, - dVector3 result -); - -/** - * @brief Convert from geom-local to world coordinates. - * - * Calling this function on a non-placeable geom results in the same vector being - * returned. - * - * @ingroup collide - * @param result will contain the result. - */ -ODE_API void dGeomVectorToWorld -( - dGeomID geom, dReal px, dReal py, dReal pz, - dVector3 result -); - -/** - * @brief Convert from world to geom-local coordinates. - * - * Calling this function on a non-placeable geom results in the same vector being - * returned. - * - * @ingroup collide - * @param result will contain the result. - */ -ODE_API void dGeomVectorFromWorld -( - dGeomID geom, dReal px, dReal py, dReal pz, - dVector3 result -); - - -/* ************************************************************************ */ -/* geom offset from body */ - -/** - * @brief Set the local offset position of a geom from its body. - * - * Sets the geom's positional offset in local coordinates. - * After this call, the geom will be at a new position determined from the - * body's position and the offset. - * The geom must be attached to a body. - * If the geom did not have an offset, it is automatically created. - * - * @param geom the geom to set. - * @param x the new X coordinate. - * @param y the new Y coordinate. - * @param z the new Z coordinate. - * @ingroup collide - */ -ODE_API void dGeomSetOffsetPosition (dGeomID geom, dReal x, dReal y, dReal z); - - -/** - * @brief Set the local offset rotation matrix of a geom from its body. - * - * Sets the geom's rotational offset in local coordinates. - * After this call, the geom will be at a new position determined from the - * body's position and the offset. - * The geom must be attached to a body. - * If the geom did not have an offset, it is automatically created. - * - * @param geom the geom to set. - * @param R the new rotation matrix. - * @ingroup collide - */ -ODE_API void dGeomSetOffsetRotation (dGeomID geom, const dMatrix3 R); - - -/** - * @brief Set the local offset rotation of a geom from its body. - * - * Sets the geom's rotational offset in local coordinates. - * After this call, the geom will be at a new position determined from the - * body's position and the offset. - * The geom must be attached to a body. - * If the geom did not have an offset, it is automatically created. - * - * @param geom the geom to set. - * @param Q the new rotation. - * @ingroup collide - */ -ODE_API void dGeomSetOffsetQuaternion (dGeomID geom, const dQuaternion Q); - - -/** - * @brief Set the offset position of a geom from its body. - * - * Sets the geom's positional offset to move it to the new world - * coordinates. - * After this call, the geom will be at the world position passed in, - * and the offset will be the difference from the current body position. - * The geom must be attached to a body. - * If the geom did not have an offset, it is automatically created. - * - * @param geom the geom to set. - * @param x the new X coordinate. - * @param y the new Y coordinate. - * @param z the new Z coordinate. - * @ingroup collide - */ -ODE_API void dGeomSetOffsetWorldPosition (dGeomID geom, dReal x, dReal y, dReal z); - - -/** - * @brief Set the offset rotation of a geom from its body. - * - * Sets the geom's rotational offset to orient it to the new world - * rotation matrix. - * After this call, the geom will be at the world orientation passed in, - * and the offset will be the difference from the current body orientation. - * The geom must be attached to a body. - * If the geom did not have an offset, it is automatically created. - * - * @param geom the geom to set. - * @param R the new rotation matrix. - * @ingroup collide - */ -ODE_API void dGeomSetOffsetWorldRotation (dGeomID geom, const dMatrix3 R); - - -/** - * @brief Set the offset rotation of a geom from its body. - * - * Sets the geom's rotational offset to orient it to the new world - * rotation matrix. - * After this call, the geom will be at the world orientation passed in, - * and the offset will be the difference from the current body orientation. - * The geom must be attached to a body. - * If the geom did not have an offset, it is automatically created. - * - * @param geom the geom to set. - * @param Q the new rotation. - * @ingroup collide - */ -ODE_API void dGeomSetOffsetWorldQuaternion (dGeomID geom, const dQuaternion); - - -/** - * @brief Clear any offset from the geom. - * - * If the geom has an offset, it is eliminated and the geom is - * repositioned at the body's position. If the geom has no offset, - * this function does nothing. - * This is more efficient than calling dGeomSetOffsetPosition(zero) - * and dGeomSetOffsetRotation(identiy), because this function actually - * eliminates the offset, rather than leaving it as the identity transform. - * - * @param geom the geom to have its offset destroyed. - * @ingroup collide - */ -ODE_API void dGeomClearOffset(dGeomID geom); - - -/** - * @brief Check to see whether the geom has an offset. - * - * This function will return non-zero if the offset has been created. - * Note that there is a difference between a geom with no offset, - * and a geom with an offset that is the identity transform. - * In the latter case, although the observed behaviour is identical, - * there is a unnecessary computation involved because the geom will - * be applying the transform whenever it needs to recalculate its world - * position. - * - * @param geom the geom to query. - * @returns Non-zero if the geom has an offset, zero otherwise. - * @ingroup collide - */ -ODE_API int dGeomIsOffset(dGeomID geom); - - -/** - * @brief Get the offset position vector of a geom. - * - * Returns the positional offset of the geom in local coordinates. - * If the geom has no offset, this function returns the zero vector. - * - * @param geom the geom to query. - * @returns A pointer to the geom's offset vector. - * @remarks The returned value is a pointer to the geom's internal - * data structure. It is valid until any changes are made - * to the geom. - * @ingroup collide - */ -ODE_API const dReal * dGeomGetOffsetPosition (dGeomID geom); - - -/** - * @brief Copy the offset position vector of a geom. - * - * Returns the positional offset of the geom in local coordinates. - * If the geom has no offset, this function returns the zero vector. - * - * @param geom the geom to query. - * @param pos returns the offset position - * @ingroup collide - */ -ODE_API void dGeomCopyOffsetPosition (dGeomID geom, dVector3 pos); - - -/** - * @brief Get the offset rotation matrix of a geom. - * - * Returns the rotational offset of the geom in local coordinates. - * If the geom has no offset, this function returns the identity - * matrix. - * - * @param geom the geom to query. - * @returns A pointer to the geom's offset rotation matrix. - * @remarks The returned value is a pointer to the geom's internal - * data structure. It is valid until any changes are made - * to the geom. - * @ingroup collide - */ -ODE_API const dReal * dGeomGetOffsetRotation (dGeomID geom); - - -/** - * @brief Copy the offset rotation matrix of a geom. - * - * Returns the rotational offset of the geom in local coordinates. - * If the geom has no offset, this function returns the identity - * matrix. - * - * @param geom the geom to query. - * @param R returns the rotation matrix. - * @ingroup collide - */ -ODE_API void dGeomCopyOffsetRotation (dGeomID geom, dMatrix3 R); - - -/** - * @brief Get the offset rotation quaternion of a geom. - * - * Returns the rotation offset of the geom as a quaternion. - * If the geom has no offset, the identity quaternion is returned. - * - * @param geom the geom to query. - * @param result a copy of the rotation quaternion. - * @ingroup collide - */ -ODE_API void dGeomGetOffsetQuaternion (dGeomID geom, dQuaternion result); - - -/* ************************************************************************ */ -/* collision detection */ - -/* - * Just generate any contacts (disables any contact refining). - */ -#define CONTACTS_UNIMPORTANT 0x80000000 - -/** - * - * @brief Given two geoms o1 and o2 that potentially intersect, - * generate contact information for them. - * - * Internally, this just calls the correct class-specific collision - * functions for o1 and o2. - * - * @param o1 The first geom to test. - * @param o2 The second geom to test. - * - * @param flags The flags specify how contacts should be generated if - * the geoms touch. The lower 16 bits of flags is an integer that - * specifies the maximum number of contact points to generate. You must - * ask for at least one contact. - * Additionally, following bits may be set: - * CONTACTS_UNIMPORTANT -- just generate any contacts (skip contact refining). - * All other bits in flags must be set to zero. In the future the other bits - * may be used to select from different contact generation strategies. - * - * @param contact Points to an array of dContactGeom structures. The array - * must be able to hold at least the maximum number of contacts. These - * dContactGeom structures may be embedded within larger structures in the - * array -- the skip parameter is the byte offset from one dContactGeom to - * the next in the array. If skip is sizeof(dContactGeom) then contact - * points to a normal (C-style) array. It is an error for skip to be smaller - * than sizeof(dContactGeom). - * - * @returns If the geoms intersect, this function returns the number of contact - * points generated (and updates the contact array), otherwise it returns 0 - * (and the contact array is not touched). - * - * @remarks If a space is passed as o1 or o2 then this function will collide - * all objects contained in o1 with all objects contained in o2, and return - * the resulting contact points. This method for colliding spaces with geoms - * (or spaces with spaces) provides no user control over the individual - * collisions. To get that control, use dSpaceCollide or dSpaceCollide2 instead. - * - * @remarks If o1 and o2 are the same geom then this function will do nothing - * and return 0. Technically speaking an object intersects with itself, but it - * is not useful to find contact points in this case. - * - * @remarks This function does not care if o1 and o2 are in the same space or not - * (or indeed if they are in any space at all). - * - * @ingroup collide - */ -ODE_API int dCollide (dGeomID o1, dGeomID o2, int flags, dContactGeom *contact, - int skip); - -/** - * @brief Determines which pairs of geoms in a space may potentially intersect, - * and calls the callback function for each candidate pair. - * - * @param space The space to test. - * - * @param data Passed from dSpaceCollide directly to the callback - * function. Its meaning is user defined. The o1 and o2 arguments are the - * geoms that may be near each other. - * - * @param callback A callback function is of type @ref dNearCallback. - * - * @remarks Other spaces that are contained within the colliding space are - * not treated specially, i.e. they are not recursed into. The callback - * function may be passed these contained spaces as one or both geom - * arguments. - * - * @remarks dSpaceCollide() is guaranteed to pass all intersecting geom - * pairs to the callback function, but may also pass close but - * non-intersecting pairs. The number of these calls depends on the - * internal algorithms used by the space. Thus you should not expect - * that dCollide will return contacts for every pair passed to the - * callback. - * - * @sa dSpaceCollide2 - * @ingroup collide - */ -ODE_API void dSpaceCollide (dSpaceID space, void *data, dNearCallback *callback); - - -/** - * @brief Determines which geoms from one space may potentially intersect with - * geoms from another space, and calls the callback function for each candidate - * pair. - * - * @param space1 The first space to test. - * - * @param space2 The second space to test. - * - * @param data Passed from dSpaceCollide directly to the callback - * function. Its meaning is user defined. The o1 and o2 arguments are the - * geoms that may be near each other. - * - * @param callback A callback function is of type @ref dNearCallback. - * - * @remarks This function can also test a single non-space geom against a - * space. This function is useful when there is a collision hierarchy, i.e. - * when there are spaces that contain other spaces. - * - * @remarks Other spaces that are contained within the colliding space are - * not treated specially, i.e. they are not recursed into. The callback - * function may be passed these contained spaces as one or both geom - * arguments. - * - * @remarks Sublevel value of space affects how the spaces are iterated. - * Both spaces are recursed only if their sublevels match. Otherwise, only - * the space with greater sublevel is recursed and the one with lesser sublevel - * is used as a geom itself. - * - * @remarks dSpaceCollide2() is guaranteed to pass all intersecting geom - * pairs to the callback function, but may also pass close but - * non-intersecting pairs. The number of these calls depends on the - * internal algorithms used by the space. Thus you should not expect - * that dCollide will return contacts for every pair passed to the - * callback. - * - * @sa dSpaceCollide - * @sa dSpaceSetSublevel - * @ingroup collide - */ -ODE_API void dSpaceCollide2 (dGeomID space1, dGeomID space2, void *data, dNearCallback *callback); - - -/* ************************************************************************ */ -/* standard classes */ - -/* the maximum number of user classes that are supported */ -enum { - dMaxUserClasses = 4 -}; - -/* class numbers - each geometry object needs a unique number */ -enum { - dSphereClass = 0, - dBoxClass, - dCapsuleClass, - dCylinderClass, - dPlaneClass, - dRayClass, - dConvexClass, - dGeomTransformClass, - dTriMeshClass, - dHeightfieldClass, - - dFirstSpaceClass, - dSimpleSpaceClass = dFirstSpaceClass, - dHashSpaceClass, - dSweepAndPruneSpaceClass, // SAP - dQuadTreeSpaceClass, - dLastSpaceClass = dQuadTreeSpaceClass, - - dFirstUserClass, - dLastUserClass = dFirstUserClass + dMaxUserClasses - 1, - dGeomNumClasses -}; - - -/** - * @defgroup collide_sphere Sphere Class - * @ingroup collide - */ - -/** - * @brief Create a sphere geom of the given radius, and return its ID. - * - * @param space a space to contain the new geom. May be null. - * @param radius the radius of the sphere. - * - * @returns A new sphere geom. - * - * @remarks The point of reference for a sphere is its center. - * - * @sa dGeomDestroy - * @sa dGeomSphereSetRadius - * @ingroup collide_sphere - */ -ODE_API dGeomID dCreateSphere (dSpaceID space, dReal radius); - - -/** - * @brief Set the radius of a sphere geom. - * - * @param sphere the sphere to set. - * @param radius the new radius. - * - * @sa dGeomSphereGetRadius - * @ingroup collide_sphere - */ -ODE_API void dGeomSphereSetRadius (dGeomID sphere, dReal radius); - - -/** - * @brief Retrieves the radius of a sphere geom. - * - * @param sphere the sphere to query. - * - * @sa dGeomSphereSetRadius - * @ingroup collide_sphere - */ -ODE_API dReal dGeomSphereGetRadius (dGeomID sphere); - - -/** - * @brief Calculate the depth of the a given point within a sphere. - * - * @param sphere the sphere to query. - * @param x the X coordinate of the point. - * @param y the Y coordinate of the point. - * @param z the Z coordinate of the point. - * - * @returns The depth of the point. Points inside the sphere will have a - * positive depth, points outside it will have a negative depth, and points - * on the surface will have a depth of zero. - * - * @ingroup collide_sphere - */ -ODE_API dReal dGeomSpherePointDepth (dGeomID sphere, dReal x, dReal y, dReal z); - - -//--> Convex Functions -ODE_API dGeomID dCreateConvex (dSpaceID space, - dReal *_planes, - unsigned int _planecount, - dReal *_points, - unsigned int _pointcount,unsigned int *_polygons); - -ODE_API void dGeomSetConvex (dGeomID g, - dReal *_planes, - unsigned int _count, - dReal *_points, - unsigned int _pointcount,unsigned int *_polygons); -//<-- Convex Functions - -/** - * @defgroup collide_box Box Class - * @ingroup collide - */ - -/** - * @brief Create a box geom with the provided side lengths. - * - * @param space a space to contain the new geom. May be null. - * @param lx the length of the box along the X axis - * @param ly the length of the box along the Y axis - * @param lz the length of the box along the Z axis - * - * @returns A new box geom. - * - * @remarks The point of reference for a box is its center. - * - * @sa dGeomDestroy - * @sa dGeomBoxSetLengths - * @ingroup collide_box - */ -ODE_API dGeomID dCreateBox (dSpaceID space, dReal lx, dReal ly, dReal lz); - - -/** - * @brief Set the side lengths of the given box. - * - * @param box the box to set - * @param lx the length of the box along the X axis - * @param ly the length of the box along the Y axis - * @param lz the length of the box along the Z axis - * - * @sa dGeomBoxGetLengths - * @ingroup collide_box - */ -ODE_API void dGeomBoxSetLengths (dGeomID box, dReal lx, dReal ly, dReal lz); - - -/** - * @brief Get the side lengths of a box. - * - * @param box the box to query - * @param result the returned side lengths - * - * @sa dGeomBoxSetLengths - * @ingroup collide_box - */ -ODE_API void dGeomBoxGetLengths (dGeomID box, dVector3 result); - - -/** - * @brief Return the depth of a point in a box. - * - * @param box the box to query - * @param x the X coordinate of the point to test. - * @param y the Y coordinate of the point to test. - * @param z the Z coordinate of the point to test. - * - * @returns The depth of the point. Points inside the box will have a - * positive depth, points outside it will have a negative depth, and points - * on the surface will have a depth of zero. - */ -ODE_API dReal dGeomBoxPointDepth (dGeomID box, dReal x, dReal y, dReal z); - - -ODE_API dGeomID dCreatePlane (dSpaceID space, dReal a, dReal b, dReal c, dReal d); -ODE_API void dGeomPlaneSetParams (dGeomID plane, dReal a, dReal b, dReal c, dReal d); -ODE_API void dGeomPlaneGetParams (dGeomID plane, dVector4 result); -ODE_API dReal dGeomPlanePointDepth (dGeomID plane, dReal x, dReal y, dReal z); - -ODE_API dGeomID dCreateCapsule (dSpaceID space, dReal radius, dReal length); -ODE_API void dGeomCapsuleSetParams (dGeomID ccylinder, dReal radius, dReal length); -ODE_API void dGeomCapsuleGetParams (dGeomID ccylinder, dReal *radius, dReal *length); -ODE_API dReal dGeomCapsulePointDepth (dGeomID ccylinder, dReal x, dReal y, dReal z); - -// For now we want to have a backwards compatible C-API, note: C++ API is not. -#define dCreateCCylinder dCreateCapsule -#define dGeomCCylinderSetParams dGeomCapsuleSetParams -#define dGeomCCylinderGetParams dGeomCapsuleGetParams -#define dGeomCCylinderPointDepth dGeomCapsulePointDepth -#define dCCylinderClass dCapsuleClass - -ODE_API dGeomID dCreateCylinder (dSpaceID space, dReal radius, dReal length); -ODE_API void dGeomCylinderSetParams (dGeomID cylinder, dReal radius, dReal length); -ODE_API void dGeomCylinderGetParams (dGeomID cylinder, dReal *radius, dReal *length); - -ODE_API dGeomID dCreateRay (dSpaceID space, dReal length); -ODE_API void dGeomRaySetLength (dGeomID ray, dReal length); -ODE_API dReal dGeomRayGetLength (dGeomID ray); -ODE_API void dGeomRaySet (dGeomID ray, dReal px, dReal py, dReal pz, - dReal dx, dReal dy, dReal dz); -ODE_API void dGeomRayGet (dGeomID ray, dVector3 start, dVector3 dir); - -/* - * Set/get ray flags that influence ray collision detection. - * These flags are currently only noticed by the trimesh collider, because - * they can make a major differences there. - */ -ODE_API void dGeomRaySetParams (dGeomID g, int FirstContact, int BackfaceCull); -ODE_API void dGeomRayGetParams (dGeomID g, int *FirstContact, int *BackfaceCull); -ODE_API void dGeomRaySetClosestHit (dGeomID g, int closestHit); -ODE_API int dGeomRayGetClosestHit (dGeomID g); - -#include "collision_trimesh.h" - -ODE_API dGeomID dCreateGeomTransform (dSpaceID space); -ODE_API void dGeomTransformSetGeom (dGeomID g, dGeomID obj); -ODE_API dGeomID dGeomTransformGetGeom (dGeomID g); -ODE_API void dGeomTransformSetCleanup (dGeomID g, int mode); -ODE_API int dGeomTransformGetCleanup (dGeomID g); -ODE_API void dGeomTransformSetInfo (dGeomID g, int mode); -ODE_API int dGeomTransformGetInfo (dGeomID g); - - -/* ************************************************************************ */ -/* heightfield functions */ - - -// Data storage for heightfield data. -struct dxHeightfieldData; -typedef struct dxHeightfieldData* dHeightfieldDataID; - - -/** - * @brief Callback prototype - * - * Used by the callback heightfield data type to sample a height for a - * given cell position. - * - * @param p_user_data User data specified when creating the dHeightfieldDataID - * @param x The index of a sample in the local x axis. It is a value - * in the range zero to ( nWidthSamples - 1 ). - * @param x The index of a sample in the local z axis. It is a value - * in the range zero to ( nDepthSamples - 1 ). - * - * @return The sample height which is then scaled and offset using the - * values specified when the heightfield data was created. - * - * @ingroup collide - */ -typedef dReal dHeightfieldGetHeight( void* p_user_data, int x, int z ); - - - -/** - * @brief Creates a heightfield geom. - * - * Uses the information in the given dHeightfieldDataID to construct - * a geom representing a heightfield in a collision space. - * - * @param space The space to add the geom to. - * @param data The dHeightfieldDataID created by dGeomHeightfieldDataCreate and - * setup by dGeomHeightfieldDataBuildCallback, dGeomHeightfieldDataBuildByte, - * dGeomHeightfieldDataBuildShort or dGeomHeightfieldDataBuildFloat. - * @param bPlaceable If non-zero this geom can be transformed in the world using the - * usual functions such as dGeomSetPosition and dGeomSetRotation. If the geom is - * not set as placeable, then it uses a fixed orientation where the global y axis - * represents the dynamic 'height' of the heightfield. - * - * @return A geom id to reference this geom in other calls. - * - * @ingroup collide - */ -ODE_API dGeomID dCreateHeightfield( dSpaceID space, - dHeightfieldDataID data, int bPlaceable ); - - -/** - * @brief Creates a new empty dHeightfieldDataID. - * - * Allocates a new dHeightfieldDataID and returns it. You must call - * dGeomHeightfieldDataDestroy to destroy it after the geom has been removed. - * The dHeightfieldDataID value is used when specifying a data format type. - * - * @return A dHeightfieldDataID for use with dGeomHeightfieldDataBuildCallback, - * dGeomHeightfieldDataBuildByte, dGeomHeightfieldDataBuildShort or - * dGeomHeightfieldDataBuildFloat. - * @ingroup collide - */ -ODE_API dHeightfieldDataID dGeomHeightfieldDataCreate(void); - - -/** - * @brief Destroys a dHeightfieldDataID. - * - * Deallocates a given dHeightfieldDataID and all managed resources. - * - * @param d A dHeightfieldDataID created by dGeomHeightfieldDataCreate - * @ingroup collide - */ -ODE_API void dGeomHeightfieldDataDestroy( dHeightfieldDataID d ); - - - -/** - * @brief Configures a dHeightfieldDataID to use a callback to - * retrieve height data. - * - * Before a dHeightfieldDataID can be used by a geom it must be - * configured to specify the format of the height data. - * This call specifies that the heightfield data is computed by - * the user and it should use the given callback when determining - * the height of a given element of it's shape. - * - * @param d A new dHeightfieldDataID created by dGeomHeightfieldDataCreate - * - * @param width Specifies the total 'width' of the heightfield along - * the geom's local x axis. - * @param depth Specifies the total 'depth' of the heightfield along - * the geom's local z axis. - * - * @param widthSamples Specifies the number of vertices to sample - * along the width of the heightfield. Each vertex has a corresponding - * height value which forms the overall shape. - * Naturally this value must be at least two or more. - * @param depthSamples Specifies the number of vertices to sample - * along the depth of the heightfield. - * - * @param scale A uniform scale applied to all raw height data. - * @param offset An offset applied to the scaled height data. - * - * @param thickness A value subtracted from the lowest height - * value which in effect adds an additional cuboid to the base of the - * heightfield. This is used to prevent geoms from looping under the - * desired terrain and not registering as a collision. Note that the - * thickness is not affected by the scale or offset parameters. - * - * @param bWrap If non-zero the heightfield will infinitely tile in both - * directions along the local x and z axes. If zero the heightfield is - * bounded from zero to width in the local x axis, and zero to depth in - * the local z axis. - * - * @ingroup collide - */ -ODE_API void dGeomHeightfieldDataBuildCallback( dHeightfieldDataID d, - void* pUserData, dHeightfieldGetHeight* pCallback, - dReal width, dReal depth, int widthSamples, int depthSamples, - dReal scale, dReal offset, dReal thickness, int bWrap ); - -/** - * @brief Configures a dHeightfieldDataID to use height data in byte format. - * - * Before a dHeightfieldDataID can be used by a geom it must be - * configured to specify the format of the height data. - * This call specifies that the heightfield data is stored as a rectangular - * array of bytes (8 bit unsigned) representing the height at each sample point. - * - * @param d A new dHeightfieldDataID created by dGeomHeightfieldDataCreate - * - * @param pHeightData A pointer to the height data. - * @param bCopyHeightData When non-zero the height data is copied to an - * internal store. When zero the height data is accessed by reference and - * so must persist throughout the lifetime of the heightfield. - * - * @param width Specifies the total 'width' of the heightfield along - * the geom's local x axis. - * @param depth Specifies the total 'depth' of the heightfield along - * the geom's local z axis. - * - * @param widthSamples Specifies the number of vertices to sample - * along the width of the heightfield. Each vertex has a corresponding - * height value which forms the overall shape. - * Naturally this value must be at least two or more. - * @param depthSamples Specifies the number of vertices to sample - * along the depth of the heightfield. - * - * @param scale A uniform scale applied to all raw height data. - * @param offset An offset applied to the scaled height data. - * - * @param thickness A value subtracted from the lowest height - * value which in effect adds an additional cuboid to the base of the - * heightfield. This is used to prevent geoms from looping under the - * desired terrain and not registering as a collision. Note that the - * thickness is not affected by the scale or offset parameters. - * - * @param bWrap If non-zero the heightfield will infinitely tile in both - * directions along the local x and z axes. If zero the heightfield is - * bounded from zero to width in the local x axis, and zero to depth in - * the local z axis. - * - * @ingroup collide - */ -ODE_API void dGeomHeightfieldDataBuildByte( dHeightfieldDataID d, - const unsigned char* pHeightData, int bCopyHeightData, - dReal width, dReal depth, int widthSamples, int depthSamples, - dReal scale, dReal offset, dReal thickness, int bWrap ); - -/** - * @brief Configures a dHeightfieldDataID to use height data in short format. - * - * Before a dHeightfieldDataID can be used by a geom it must be - * configured to specify the format of the height data. - * This call specifies that the heightfield data is stored as a rectangular - * array of shorts (16 bit signed) representing the height at each sample point. - * - * @param d A new dHeightfieldDataID created by dGeomHeightfieldDataCreate - * - * @param pHeightData A pointer to the height data. - * @param bCopyHeightData When non-zero the height data is copied to an - * internal store. When zero the height data is accessed by reference and - * so must persist throughout the lifetime of the heightfield. - * - * @param width Specifies the total 'width' of the heightfield along - * the geom's local x axis. - * @param depth Specifies the total 'depth' of the heightfield along - * the geom's local z axis. - * - * @param widthSamples Specifies the number of vertices to sample - * along the width of the heightfield. Each vertex has a corresponding - * height value which forms the overall shape. - * Naturally this value must be at least two or more. - * @param depthSamples Specifies the number of vertices to sample - * along the depth of the heightfield. - * - * @param scale A uniform scale applied to all raw height data. - * @param offset An offset applied to the scaled height data. - * - * @param thickness A value subtracted from the lowest height - * value which in effect adds an additional cuboid to the base of the - * heightfield. This is used to prevent geoms from looping under the - * desired terrain and not registering as a collision. Note that the - * thickness is not affected by the scale or offset parameters. - * - * @param bWrap If non-zero the heightfield will infinitely tile in both - * directions along the local x and z axes. If zero the heightfield is - * bounded from zero to width in the local x axis, and zero to depth in - * the local z axis. - * - * @ingroup collide - */ -ODE_API void dGeomHeightfieldDataBuildShort( dHeightfieldDataID d, - const short* pHeightData, int bCopyHeightData, - dReal width, dReal depth, int widthSamples, int depthSamples, - dReal scale, dReal offset, dReal thickness, int bWrap ); - -/** - * @brief Configures a dHeightfieldDataID to use height data in - * single precision floating point format. - * - * Before a dHeightfieldDataID can be used by a geom it must be - * configured to specify the format of the height data. - * This call specifies that the heightfield data is stored as a rectangular - * array of single precision floats representing the height at each - * sample point. - * - * @param d A new dHeightfieldDataID created by dGeomHeightfieldDataCreate - * - * @param pHeightData A pointer to the height data. - * @param bCopyHeightData When non-zero the height data is copied to an - * internal store. When zero the height data is accessed by reference and - * so must persist throughout the lifetime of the heightfield. - * - * @param width Specifies the total 'width' of the heightfield along - * the geom's local x axis. - * @param depth Specifies the total 'depth' of the heightfield along - * the geom's local z axis. - * - * @param widthSamples Specifies the number of vertices to sample - * along the width of the heightfield. Each vertex has a corresponding - * height value which forms the overall shape. - * Naturally this value must be at least two or more. - * @param depthSamples Specifies the number of vertices to sample - * along the depth of the heightfield. - * - * @param scale A uniform scale applied to all raw height data. - * @param offset An offset applied to the scaled height data. - * - * @param thickness A value subtracted from the lowest height - * value which in effect adds an additional cuboid to the base of the - * heightfield. This is used to prevent geoms from looping under the - * desired terrain and not registering as a collision. Note that the - * thickness is not affected by the scale or offset parameters. - * - * @param bWrap If non-zero the heightfield will infinitely tile in both - * directions along the local x and z axes. If zero the heightfield is - * bounded from zero to width in the local x axis, and zero to depth in - * the local z axis. - * - * @ingroup collide - */ -ODE_API void dGeomHeightfieldDataBuildSingle( dHeightfieldDataID d, - const float* pHeightData, int bCopyHeightData, - dReal width, dReal depth, int widthSamples, int depthSamples, - dReal scale, dReal offset, dReal thickness, int bWrap ); - -/** - * @brief Configures a dHeightfieldDataID to use height data in - * double precision floating point format. - * - * Before a dHeightfieldDataID can be used by a geom it must be - * configured to specify the format of the height data. - * This call specifies that the heightfield data is stored as a rectangular - * array of double precision floats representing the height at each - * sample point. - * - * @param d A new dHeightfieldDataID created by dGeomHeightfieldDataCreate - * - * @param pHeightData A pointer to the height data. - * @param bCopyHeightData When non-zero the height data is copied to an - * internal store. When zero the height data is accessed by reference and - * so must persist throughout the lifetime of the heightfield. - * - * @param width Specifies the total 'width' of the heightfield along - * the geom's local x axis. - * @param depth Specifies the total 'depth' of the heightfield along - * the geom's local z axis. - * - * @param widthSamples Specifies the number of vertices to sample - * along the width of the heightfield. Each vertex has a corresponding - * height value which forms the overall shape. - * Naturally this value must be at least two or more. - * @param depthSamples Specifies the number of vertices to sample - * along the depth of the heightfield. - * - * @param scale A uniform scale applied to all raw height data. - * @param offset An offset applied to the scaled height data. - * - * @param thickness A value subtracted from the lowest height - * value which in effect adds an additional cuboid to the base of the - * heightfield. This is used to prevent geoms from looping under the - * desired terrain and not registering as a collision. Note that the - * thickness is not affected by the scale or offset parameters. - * - * @param bWrap If non-zero the heightfield will infinitely tile in both - * directions along the local x and z axes. If zero the heightfield is - * bounded from zero to width in the local x axis, and zero to depth in - * the local z axis. - * - * @ingroup collide - */ -ODE_API void dGeomHeightfieldDataBuildDouble( dHeightfieldDataID d, - const double* pHeightData, int bCopyHeightData, - dReal width, dReal depth, int widthSamples, int depthSamples, - dReal scale, dReal offset, dReal thickness, int bWrap ); - -/** - * @brief Manually set the minimum and maximum height bounds. - * - * This call allows you to set explicit min / max values after initial - * creation typically for callback heightfields which default to +/- infinity, - * or those whose data has changed. This must be set prior to binding with a - * geom, as the the AABB is not recomputed after it's first generation. - * - * @remarks The minimum and maximum values are used to compute the AABB - * for the heightfield which is used for early rejection of collisions. - * A close fit will yield a more efficient collision check. - * - * @param d A dHeightfieldDataID created by dGeomHeightfieldDataCreate - * @param min_height The new minimum height value. Scale, offset and thickness is then applied. - * @param max_height The new maximum height value. Scale and offset is then applied. - * @ingroup collide - */ -ODE_API void dGeomHeightfieldDataSetBounds( dHeightfieldDataID d, - dReal minHeight, dReal maxHeight ); - - -/** - * @brief Assigns a dHeightfieldDataID to a heightfield geom. - * - * Associates the given dHeightfieldDataID with a heightfield geom. - * This is done without affecting the GEOM_PLACEABLE flag. - * - * @param g A geom created by dCreateHeightfield - * @param d A dHeightfieldDataID created by dGeomHeightfieldDataCreate - * @ingroup collide - */ -ODE_API void dGeomHeightfieldSetHeightfieldData( dGeomID g, dHeightfieldDataID d ); - - -/** - * @brief Gets the dHeightfieldDataID bound to a heightfield geom. - * - * Returns the dHeightfieldDataID associated with a heightfield geom. - * - * @param g A geom created by dCreateHeightfield - * @return The dHeightfieldDataID which may be NULL if none was assigned. - * @ingroup collide - */ -ODE_API dHeightfieldDataID dGeomHeightfieldGetHeightfieldData( dGeomID g ); - - - -/* ************************************************************************ */ -/* utility functions */ - -ODE_API void dClosestLineSegmentPoints (const dVector3 a1, const dVector3 a2, - const dVector3 b1, const dVector3 b2, - dVector3 cp1, dVector3 cp2); - -ODE_API int dBoxTouchesBox (const dVector3 _p1, const dMatrix3 R1, - const dVector3 side1, const dVector3 _p2, - const dMatrix3 R2, const dVector3 side2); - -// The meaning of flags parameter is the same as in dCollide() -ODE_API int dBoxBox (const dVector3 p1, const dMatrix3 R1, - const dVector3 side1, const dVector3 p2, - const dMatrix3 R2, const dVector3 side2, - dVector3 normal, dReal *depth, int *return_code, - int flags, dContactGeom *contact, int skip); - -ODE_API void dInfiniteAABB (dGeomID geom, dReal aabb[6]); - - -/* ************************************************************************ */ -/* custom classes */ - -typedef void dGetAABBFn (dGeomID, dReal aabb[6]); -typedef int dColliderFn (dGeomID o1, dGeomID o2, - int flags, dContactGeom *contact, int skip); -typedef dColliderFn * dGetColliderFnFn (int num); -typedef void dGeomDtorFn (dGeomID o); -typedef int dAABBTestFn (dGeomID o1, dGeomID o2, dReal aabb[6]); - -typedef struct dGeomClass { - int bytes; - dGetColliderFnFn *collider; - dGetAABBFn *aabb; - dAABBTestFn *aabb_test; - dGeomDtorFn *dtor; -} dGeomClass; - -ODE_API int dCreateGeomClass (const dGeomClass *classptr); -ODE_API void * dGeomGetClassData (dGeomID); -ODE_API dGeomID dCreateGeom (int classnum); - -/** - * @brief Sets a custom collider function for two geom classes. - * - * @param i The first geom class handled by this collider - * @param j The second geom class handled by this collider - * @param fn The collider function to use to determine collisions. - * @ingroup collide - */ -ODE_API void dSetColliderOverride (int i, int j, dColliderFn *fn); - - -/* ************************************************************************ */ - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/misc/builddeps/linux32/ode/include/ode/collision_space.h b/misc/builddeps/linux32/ode/include/ode/collision_space.h deleted file mode 100644 index bf7ef9b4..00000000 --- a/misc/builddeps/linux32/ode/include/ode/collision_space.h +++ /dev/null @@ -1,182 +0,0 @@ -/************************************************************************* - * * - * Open Dynamics Engine, Copyright (C) 2001-2003 Russell L. Smith. * - * All rights reserved. Email: russ@q12.org Web: www.q12.org * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of EITHER: * - * (1) The GNU Lesser General Public License as published by the Free * - * Software Foundation; either version 2.1 of the License, or (at * - * your option) any later version. The text of the GNU Lesser * - * General Public License is included with this library in the * - * file LICENSE.TXT. * - * (2) The BSD-style license that is included with this library in * - * the file LICENSE-BSD.TXT. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files * - * LICENSE.TXT and LICENSE-BSD.TXT for more details. * - * * - *************************************************************************/ - -#ifndef _ODE_COLLISION_SPACE_H_ -#define _ODE_COLLISION_SPACE_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct dContactGeom; - -/** - * @brief User callback for geom-geom collision testing. - * - * @param data The user data object, as passed to dSpaceCollide. - * @param o1 The first geom being tested. - * @param o2 The second geom being test. - * - * @remarks The callback function can call dCollide on o1 and o2 to generate - * contact points between each pair. Then these contact points may be added - * to the simulation as contact joints. The user's callback function can of - * course chose not to call dCollide for any pair, e.g. if the user decides - * that those pairs should not interact. - * - * @ingroup collide - */ -typedef void dNearCallback (void *data, dGeomID o1, dGeomID o2); - - -ODE_API dSpaceID dSimpleSpaceCreate (dSpaceID space); -ODE_API dSpaceID dHashSpaceCreate (dSpaceID space); -ODE_API dSpaceID dQuadTreeSpaceCreate (dSpaceID space, const dVector3 Center, const dVector3 Extents, int Depth); - - -// SAP -// Order XZY or ZXY usually works best, if your Y is up. -#define dSAP_AXES_XYZ ((0)|(1<<2)|(2<<4)) -#define dSAP_AXES_XZY ((0)|(2<<2)|(1<<4)) -#define dSAP_AXES_YXZ ((1)|(0<<2)|(2<<4)) -#define dSAP_AXES_YZX ((1)|(2<<2)|(0<<4)) -#define dSAP_AXES_ZXY ((2)|(0<<2)|(1<<4)) -#define dSAP_AXES_ZYX ((2)|(1<<2)|(0<<4)) - -ODE_API dSpaceID dSweepAndPruneSpaceCreate( dSpaceID space, int axisorder ); - - - -ODE_API void dSpaceDestroy (dSpaceID); - -ODE_API void dHashSpaceSetLevels (dSpaceID space, int minlevel, int maxlevel); -ODE_API void dHashSpaceGetLevels (dSpaceID space, int *minlevel, int *maxlevel); - -ODE_API void dSpaceSetCleanup (dSpaceID space, int mode); -ODE_API int dSpaceGetCleanup (dSpaceID space); - -/** -* @brief Sets sublevel value for a space. -* -* Sublevel affects how the space is handled in dSpaceCollide2 when it is collided -* with another space. If sublevels of both spaces match, the function iterates -* geometries of both spaces and collides them with each other. If sublevel of one -* space is greater than the sublevel of another one, only the geometries of the -* space with greater sublevel are iterated, another space is passed into -* collision callback as a geometry itself. By default all the spaces are assigned -* zero sublevel. -* -* @note -* The space sublevel @e IS @e NOT automatically updated when one space is inserted -* into another or removed from one. It is a client's responsibility to update sublevel -* value if necessary. -* -* @param space the space to modify -* @param sublevel the sublevel value to be assigned -* @ingroup collide -* @see dSpaceGetSublevel -* @see dSpaceCollide2 -*/ -ODE_API void dSpaceSetSublevel (dSpaceID space, int sublevel); - -/** -* @brief Gets sublevel value of a space. -* -* Sublevel affects how the space is handled in dSpaceCollide2 when it is collided -* with another space. See @c dSpaceSetSublevel for more details. -* -* @param space the space to query -* @returns the sublevel value of the space -* @ingroup collide -* @see dSpaceSetSublevel -* @see dSpaceCollide2 -*/ -ODE_API int dSpaceGetSublevel (dSpaceID space); - - -/** -* @brief Sets manual cleanup flag for a space. -* -* Manual cleanup flag marks a space as eligible for manual thread data cleanup. -* This function should be called for every space object right after creation in -* case if ODE has been initialized with @c dInitFlagManualThreadCleanup flag. -* -* Failure to set manual cleanup flag for a space may lead to some resources -* remaining leaked until the program exit. -* -* @param space the space to modify -* @param mode 1 for manual cleanup mode and 0 for default cleanup mode -* @ingroup collide -* @see dSpaceGetManualCleanup -* @see dInitODE2 -*/ -ODE_API void dSpaceSetManualCleanup (dSpaceID space, int mode); - -/** -* @brief Get manual cleanup flag of a space. -* -* Manual cleanup flag marks a space space as eligible for manual thread data cleanup. -* See @c dSpaceSetManualCleanup for more details. -* -* @param space the space to query -* @returns 1 for manual cleanup mode and 0 for default cleanup mode of the space -* @ingroup collide -* @see dSpaceSetManualCleanup -* @see dInitODE2 -*/ -ODE_API int dSpaceGetManualCleanup (dSpaceID space); - -ODE_API void dSpaceAdd (dSpaceID, dGeomID); -ODE_API void dSpaceRemove (dSpaceID, dGeomID); -ODE_API int dSpaceQuery (dSpaceID, dGeomID); -ODE_API void dSpaceClean (dSpaceID); -ODE_API int dSpaceGetNumGeoms (dSpaceID); -ODE_API dGeomID dSpaceGetGeom (dSpaceID, int i); - -/** - * @brief Given a space, this returns its class. - * - * The ODE classes are: - * @li dSimpleSpaceClass - * @li dHashSpaceClass - * @li dSweepAndPruneSpaceClass - * @li dQuadTreeSpaceClass - * @li dFirstUserClass - * @li dLastUserClass - * - * The class id not defined by the user should be between - * dFirstSpaceClass and dLastSpaceClass. - * - * User-defined class will return their own number. - * - * @param space the space to query - * @returns The space class ID. - * @ingroup collide - */ -ODE_API int dSpaceGetClass(dSpaceID space); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/misc/builddeps/linux32/ode/include/ode/collision_trimesh.h b/misc/builddeps/linux32/ode/include/ode/collision_trimesh.h deleted file mode 100644 index f263a9ea..00000000 --- a/misc/builddeps/linux32/ode/include/ode/collision_trimesh.h +++ /dev/null @@ -1,216 +0,0 @@ -/************************************************************************* - * * - * Open Dynamics Engine, Copyright (C) 2001-2003 Russell L. Smith. * - * All rights reserved. Email: russ@q12.org Web: www.q12.org * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of EITHER: * - * (1) The GNU Lesser General Public License as published by the Free * - * Software Foundation; either version 2.1 of the License, or (at * - * your option) any later version. The text of the GNU Lesser * - * General Public License is included with this library in the * - * file LICENSE.TXT. * - * (2) The BSD-style license that is included with this library in * - * the file LICENSE-BSD.TXT. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files * - * LICENSE.TXT and LICENSE-BSD.TXT for more details. * - * * - *************************************************************************/ - -/* - * TriMesh code by Erwin de Vries. - * - * Trimesh data. - * This is where the actual vertexdata (pointers), and BV tree is stored. - * Vertices should be single precision! - * This should be more sophisticated, so that the user can easyly implement - * another collision library, but this is a lot of work, and also costs some - * performance because some data has to be copied. - */ - -#ifndef _ODE_COLLISION_TRIMESH_H_ -#define _ODE_COLLISION_TRIMESH_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Data storage for triangle meshes. - */ -struct dxTriMeshData; -typedef struct dxTriMeshData* dTriMeshDataID; - -/* - * These dont make much sense now, but they will later when we add more - * features. - */ -ODE_API dTriMeshDataID dGeomTriMeshDataCreate(void); -ODE_API void dGeomTriMeshDataDestroy(dTriMeshDataID g); - - - -enum { TRIMESH_FACE_NORMALS }; -ODE_API void dGeomTriMeshDataSet(dTriMeshDataID g, int data_id, void* in_data); -ODE_API void* dGeomTriMeshDataGet(dTriMeshDataID g, int data_id); - - - -/** - * We need to set the last transform after each time step for - * accurate collision response. These functions get and set that transform. - * It is stored per geom instance, rather than per dTriMeshDataID. - */ -ODE_API void dGeomTriMeshSetLastTransform( dGeomID g, dMatrix4 last_trans ); -ODE_API dReal* dGeomTriMeshGetLastTransform( dGeomID g ); - -/* - * Build a TriMesh data object with single precision vertex data. - */ -ODE_API void dGeomTriMeshDataBuildSingle(dTriMeshDataID g, - const void* Vertices, int VertexStride, int VertexCount, - const void* Indices, int IndexCount, int TriStride); -/* same again with a normals array (used as trimesh-trimesh optimization) */ -ODE_API void dGeomTriMeshDataBuildSingle1(dTriMeshDataID g, - const void* Vertices, int VertexStride, int VertexCount, - const void* Indices, int IndexCount, int TriStride, - const void* Normals); -/* -* Build a TriMesh data object with double precision vertex data. -*/ -ODE_API void dGeomTriMeshDataBuildDouble(dTriMeshDataID g, - const void* Vertices, int VertexStride, int VertexCount, - const void* Indices, int IndexCount, int TriStride); -/* same again with a normals array (used as trimesh-trimesh optimization) */ -ODE_API void dGeomTriMeshDataBuildDouble1(dTriMeshDataID g, - const void* Vertices, int VertexStride, int VertexCount, - const void* Indices, int IndexCount, int TriStride, - const void* Normals); - -/* - * Simple build. Single/double precision based on dSINGLE/dDOUBLE! - */ -ODE_API void dGeomTriMeshDataBuildSimple(dTriMeshDataID g, - const dReal* Vertices, int VertexCount, - const dTriIndex* Indices, int IndexCount); -/* same again with a normals array (used as trimesh-trimesh optimization) */ -ODE_API void dGeomTriMeshDataBuildSimple1(dTriMeshDataID g, - const dReal* Vertices, int VertexCount, - const dTriIndex* Indices, int IndexCount, - const int* Normals); - -/* Preprocess the trimesh data to remove mark unnecessary edges and vertices */ -ODE_API void dGeomTriMeshDataPreprocess(dTriMeshDataID g); -/* Get and set the internal preprocessed trimesh data buffer, for loading and saving */ -ODE_API void dGeomTriMeshDataGetBuffer(dTriMeshDataID g, unsigned char** buf, int* bufLen); -ODE_API void dGeomTriMeshDataSetBuffer(dTriMeshDataID g, unsigned char* buf); - - -/* - * Per triangle callback. Allows the user to say if he wants a collision with - * a particular triangle. - */ -typedef int dTriCallback(dGeomID TriMesh, dGeomID RefObject, int TriangleIndex); -ODE_API void dGeomTriMeshSetCallback(dGeomID g, dTriCallback* Callback); -ODE_API dTriCallback* dGeomTriMeshGetCallback(dGeomID g); - -/* - * Per object callback. Allows the user to get the list of triangles in 1 - * shot. Maybe we should remove this one. - */ -typedef void dTriArrayCallback(dGeomID TriMesh, dGeomID RefObject, const int* TriIndices, int TriCount); -ODE_API void dGeomTriMeshSetArrayCallback(dGeomID g, dTriArrayCallback* ArrayCallback); -ODE_API dTriArrayCallback* dGeomTriMeshGetArrayCallback(dGeomID g); - -/* - * Ray callback. - * Allows the user to say if a ray collides with a triangle on barycentric - * coords. The user can for example sample a texture with alpha transparency - * to determine if a collision should occur. - */ -typedef int dTriRayCallback(dGeomID TriMesh, dGeomID Ray, int TriangleIndex, dReal u, dReal v); -ODE_API void dGeomTriMeshSetRayCallback(dGeomID g, dTriRayCallback* Callback); -ODE_API dTriRayCallback* dGeomTriMeshGetRayCallback(dGeomID g); - -/* - * Triangle merging callback. - * Allows the user to generate a fake triangle index for a new contact generated - * from merging of two other contacts. That index could later be used by the - * user to determine attributes of original triangles used as sources for a - * merged contact. - */ -typedef int dTriTriMergeCallback(dGeomID TriMesh, int FirstTriangleIndex, int SecondTriangleIndex); -ODE_API void dGeomTriMeshSetTriMergeCallback(dGeomID g, dTriTriMergeCallback* Callback); -ODE_API dTriTriMergeCallback* dGeomTriMeshGetTriMergeCallback(dGeomID g); - -/* - * Trimesh class - * Construction. Callbacks are optional. - */ -ODE_API dGeomID dCreateTriMesh(dSpaceID space, dTriMeshDataID Data, dTriCallback* Callback, dTriArrayCallback* ArrayCallback, dTriRayCallback* RayCallback); - -ODE_API void dGeomTriMeshSetData(dGeomID g, dTriMeshDataID Data); -ODE_API dTriMeshDataID dGeomTriMeshGetData(dGeomID g); - - -// enable/disable/check temporal coherence -ODE_API void dGeomTriMeshEnableTC(dGeomID g, int geomClass, int enable); -ODE_API int dGeomTriMeshIsTCEnabled(dGeomID g, int geomClass); - -/* - * Clears the internal temporal coherence caches. When a geom has its - * collision checked with a trimesh once, data is stored inside the trimesh. - * With large worlds with lots of seperate objects this list could get huge. - * We should be able to do this automagically. - */ -ODE_API void dGeomTriMeshClearTCCache(dGeomID g); - - -/* - * returns the TriMeshDataID - */ -ODE_API dTriMeshDataID dGeomTriMeshGetTriMeshDataID(dGeomID g); - -/* - * Gets a triangle. - */ -ODE_API void dGeomTriMeshGetTriangle(dGeomID g, int Index, dVector3* v0, dVector3* v1, dVector3* v2); - -/* - * Gets the point on the requested triangle and the given barycentric - * coordinates. - */ -ODE_API void dGeomTriMeshGetPoint(dGeomID g, int Index, dReal u, dReal v, dVector3 Out); - -/* - -This is how the strided data works: - -struct StridedVertex{ - dVector3 Vertex; - // Userdata -}; -int VertexStride = sizeof(StridedVertex); - -struct StridedTri{ - int Indices[3]; - // Userdata -}; -int TriStride = sizeof(StridedTri); - -*/ - - -ODE_API int dGeomTriMeshGetTriangleCount (dGeomID g); - -ODE_API void dGeomTriMeshDataUpdate(dTriMeshDataID g); - -#ifdef __cplusplus -} -#endif - -#endif /* _ODE_COLLISION_TRIMESH_H_ */ - diff --git a/misc/builddeps/linux32/ode/include/ode/common.h b/misc/builddeps/linux32/ode/include/ode/common.h deleted file mode 100644 index d7b2bba7..00000000 --- a/misc/builddeps/linux32/ode/include/ode/common.h +++ /dev/null @@ -1,420 +0,0 @@ -/************************************************************************* - * * - * Open Dynamics Engine, Copyright (C) 2001,2002 Russell L. Smith. * - * All rights reserved. Email: russ@q12.org Web: www.q12.org * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of EITHER: * - * (1) The GNU Lesser General Public License as published by the Free * - * Software Foundation; either version 2.1 of the License, or (at * - * your option) any later version. The text of the GNU Lesser * - * General Public License is included with this library in the * - * file LICENSE.TXT. * - * (2) The BSD-style license that is included with this library in * - * the file LICENSE-BSD.TXT. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files * - * LICENSE.TXT and LICENSE-BSD.TXT for more details. * - * * - *************************************************************************/ - -#ifndef _ODE_COMMON_H_ -#define _ODE_COMMON_H_ -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -#define PURE_INLINE static __inline - - -/* configuration stuff */ - -/* constants */ - -/* pi and 1/sqrt(2) are defined here if necessary because they don't get - * defined in on some platforms (like MS-Windows) - */ - -#ifndef M_PI -#define M_PI REAL(3.1415926535897932384626433832795029) -#endif -#ifndef M_SQRT1_2 -#define M_SQRT1_2 REAL(0.7071067811865475244008443621048490) -#endif - - -/* debugging: - * IASSERT is an internal assertion, i.e. a consistency check. if it fails - * we want to know where. - * UASSERT is a user assertion, i.e. if it fails a nice error message - * should be printed for the user. - * AASSERT is an arguments assertion, i.e. if it fails "bad argument(s)" - * is printed. - * DEBUGMSG just prints out a message - */ - -# if defined(__STDC__) && __STDC_VERSION__ >= 199901L -# define __FUNCTION__ __func__ -# endif -#ifndef dNODEBUG -# ifdef __GNUC__ -# define dIASSERT(a) { if (!(a)) { dDebug (d_ERR_IASSERT, \ - "assertion \"" #a "\" failed in %s() [%s:%u]",__FUNCTION__,__FILE__,__LINE__); } } -# define dUASSERT(a,msg) { if (!(a)) { dDebug (d_ERR_UASSERT, \ - msg " in %s()", __FUNCTION__); } } -# define dDEBUGMSG(msg) { dMessage (d_ERR_UASSERT, \ - msg " in %s() [%s:%u]", __FUNCTION__,__FILE__,__LINE__); } -# else // not __GNUC__ -# define dIASSERT(a) { if (!(a)) { dDebug (d_ERR_IASSERT, \ - "assertion \"" #a "\" failed in %s:%u",__FILE__,__LINE__); } } -# define dUASSERT(a,msg) { if (!(a)) { dDebug (d_ERR_UASSERT, \ - msg " (%s:%u)", __FILE__,__LINE__); } } -# define dDEBUGMSG(msg) { dMessage (d_ERR_UASSERT, \ - msg " (%s:%u)", __FILE__,__LINE__); } -# endif -# define dIVERIFY(a) dIASSERT(a) -#else -# define dIASSERT(a) ((void)0) -# define dUASSERT(a,msg) ((void)0) -# define dDEBUGMSG(msg) ((void)0) -# define dIVERIFY(a) ((void)(a)) -#endif - -# ifdef __GNUC__ -# define dICHECK(a) { if (!(a)) { dDebug (d_ERR_IASSERT, \ - "assertion \"" #a "\" failed in %s() [%s:%u]",__FUNCTION__,__FILE__,__LINE__); *(int *)0 = 0; } } -# else // not __GNUC__ -# define dICHECK(a) { if (!(a)) { dDebug (d_ERR_IASSERT, \ - "assertion \"" #a "\" failed in %s:%u",__FILE__,__LINE__); *(int *)0 = 0; } } -# endif - -// Argument assert is a special case of user assert -#define dAASSERT(a) dUASSERT(a,"Bad argument(s)") - -/* floating point data type, vector, matrix and quaternion types */ - -#if defined(dSINGLE) -typedef float dReal; -#ifdef dDOUBLE -#error You can only #define dSINGLE or dDOUBLE, not both. -#endif // dDOUBLE -#elif defined(dDOUBLE) -typedef double dReal; -#else -#error You must #define dSINGLE or dDOUBLE -#endif - -// Detect if we've got both trimesh engines enabled. -#if dTRIMESH_ENABLED -#if dTRIMESH_OPCODE && dTRIMESH_GIMPACT -#error You can only #define dTRIMESH_OPCODE or dTRIMESH_GIMPACT, not both. -#endif -#endif // dTRIMESH_ENABLED - -// Define a type for indices, either 16 or 32 bit, based on build option -// TODO: Currently GIMPACT only supports 32 bit indices. -#if dTRIMESH_16BIT_INDICES -#if dTRIMESH_GIMPACT -typedef uint32 dTriIndex; -#else // dTRIMESH_GIMPACT -typedef uint16 dTriIndex; -#endif // dTRIMESH_GIMPACT -#else // dTRIMESH_16BIT_INDICES -typedef uint32 dTriIndex; -#endif // dTRIMESH_16BIT_INDICES - -/* round an integer up to a multiple of 4, except that 0 and 1 are unmodified - * (used to compute matrix leading dimensions) - */ -#define dPAD(a) (((a) > 1) ? ((((a)-1)|3)+1) : (a)) - -/* these types are mainly just used in headers */ -typedef dReal dVector3[4]; -typedef dReal dVector4[4]; -typedef dReal dMatrix3[4*3]; -typedef dReal dMatrix4[4*4]; -typedef dReal dMatrix6[8*6]; -typedef dReal dQuaternion[4]; - - -/* precision dependent scalar math functions */ - -#if defined(dSINGLE) - -#define REAL(x) (x ## f) /* form a constant */ -#define dRecip(x) ((1.0f/(x))) /* reciprocal */ -#define dSqrt(x) (sqrtf(x)) /* square root */ -#define dRecipSqrt(x) ((1.0f/sqrtf(x))) /* reciprocal square root */ -#define dSin(x) (sinf(x)) /* sine */ -#define dCos(x) (cosf(x)) /* cosine */ -#define dFabs(x) (fabsf(x)) /* absolute value */ -#define dAtan2(y,x) (atan2f(y,x)) /* arc tangent with 2 args */ -#define dFMod(a,b) (fmodf(a,b)) /* modulo */ -#define dFloor(x) floorf(x) /* floor */ -#define dCeil(x) ceilf(x) /* floor */ -#define dCopySign(a,b) ((dReal)copysignf(a,b)) /* copy value sign */ -#define dNextAfter(x, y) nextafterf(x, y) /* next value after */ - -#if defined(_ODE__NEXTAFTERF_REQUIRED) -float _nextafterf(float x, float y); -#endif - -#ifdef HAVE___ISNANF -#define dIsNan(x) (__isnanf(x)) -#elif defined(HAVE__ISNANF) -#define dIsNan(x) (_isnanf(x)) -#elif defined(HAVE_ISNANF) -#define dIsNan(x) (isnanf(x)) -#else - /* - fall back to _isnan which is the VC way, - this may seem redundant since we already checked - for _isnan before, but if isnan is detected by - configure but is not found during compilation - we should always make sure we check for __isnanf, - _isnanf and isnanf in that order before falling - back to a default - */ -#define dIsNan(x) (_isnan(x)) -#endif - -#elif defined(dDOUBLE) - -#define REAL(x) (x) -#define dRecip(x) (1.0/(x)) -#define dSqrt(x) sqrt(x) -#define dRecipSqrt(x) (1.0/sqrt(x)) -#define dSin(x) sin(x) -#define dCos(x) cos(x) -#define dFabs(x) fabs(x) -#define dAtan2(y,x) atan2((y),(x)) -#define dFMod(a,b) (fmod((a),(b))) -#define dFloor(x) floor(x) -#define dCeil(x) ceil(x) -#define dCopySign(a,b) (copysign((a),(b))) -#define dNextAfter(x, y) nextafter(x, y) - -#undef _ODE__NEXTAFTERF_REQUIRED - -#ifdef HAVE___ISNAN -#define dIsNan(x) (__isnan(x)) -#elif defined(HAVE__ISNAN) -#define dIsNan(x) (_isnan(x)) -#elif defined(HAVE_ISNAN) -#define dIsNan(x) (isnan(x)) -#else -#define dIsNan(x) (_isnan(x)) -#endif - -#else -#error You must #define dSINGLE or dDOUBLE -#endif - -/* internal object types (all prefixed with `dx') */ - -struct dxWorld; /* dynamics world */ -struct dxSpace; /* collision space */ -struct dxBody; /* rigid body (dynamics object) */ -struct dxGeom; /* geometry (collision object) */ -struct dxJoint; -struct dxJointNode; -struct dxJointGroup; -struct dxWorldProcessThreadingManager; - -typedef struct dxWorld *dWorldID; -typedef struct dxSpace *dSpaceID; -typedef struct dxBody *dBodyID; -typedef struct dxGeom *dGeomID; -typedef struct dxJoint *dJointID; -typedef struct dxJointGroup *dJointGroupID; -typedef struct dxWorldProcessThreadingManager *dWorldStepThreadingManagerID; - -/* error numbers */ - -enum { - d_ERR_UNKNOWN = 0, /* unknown error */ - d_ERR_IASSERT, /* internal assertion failed */ - d_ERR_UASSERT, /* user assertion failed */ - d_ERR_LCP /* user assertion failed */ -}; - - -/* joint type numbers */ - -typedef enum { - dJointTypeNone = 0, /* or "unknown" */ - dJointTypeBall, - dJointTypeHinge, - dJointTypeSlider, - dJointTypeContact, - dJointTypeUniversal, - dJointTypeHinge2, - dJointTypeFixed, - dJointTypeNull, - dJointTypeAMotor, - dJointTypeLMotor, - dJointTypePlane2D, - dJointTypePR, - dJointTypePU, - dJointTypePiston -} dJointType; - - -/* an alternative way of setting joint parameters, using joint parameter - * structures and member constants. we don't actually do this yet. - */ - -/* -typedef struct dLimot { - int mode; - dReal lostop, histop; - dReal vel, fmax; - dReal fudge_factor; - dReal bounce, soft; - dReal suspension_erp, suspension_cfm; -} dLimot; - -enum { - dLimotLoStop = 0x0001, - dLimotHiStop = 0x0002, - dLimotVel = 0x0004, - dLimotFMax = 0x0008, - dLimotFudgeFactor = 0x0010, - dLimotBounce = 0x0020, - dLimotSoft = 0x0040 -}; -*/ - - -/* standard joint parameter names. why are these here? - because we don't want - * to include all the joint function definitions in joint.cpp. hmmmm. - * MSVC complains if we call D_ALL_PARAM_NAMES_X with a blank second argument, - * which is why we have the D_ALL_PARAM_NAMES macro as well. please copy and - * paste between these two. - */ - -#define D_ALL_PARAM_NAMES(start) \ - /* parameters for limits and motors */ \ - dParamLoStop = start, \ - dParamHiStop, \ - dParamVel, \ - dParamFMax, \ - dParamFudgeFactor, \ - dParamBounce, \ - dParamCFM, \ - dParamStopERP, \ - dParamStopCFM, \ - /* parameters for suspension */ \ - dParamSuspensionERP, \ - dParamSuspensionCFM, \ - dParamERP, \ - - ////////////////////////////////////////////////////////////////////////////// - /// \enum D_ALL_PARAM_NAMES_X - /// - /// \var dParamGroup This is the starting value of the different group - /// (i.e. dParamGroup1, dParamGroup2, dParamGroup3) - /// It also helps in the use of parameter - /// (dParamGroup2 | dParamFMax) == dParamFMax2 - ////////////////////////////////////////////////////////////////////////////// -#define D_ALL_PARAM_NAMES_X(start,x) \ - dParamGroup ## x = start, \ - /* parameters for limits and motors */ \ - dParamLoStop ## x = start, \ - dParamHiStop ## x, \ - dParamVel ## x, \ - dParamFMax ## x, \ - dParamFudgeFactor ## x, \ - dParamBounce ## x, \ - dParamCFM ## x, \ - dParamStopERP ## x, \ - dParamStopCFM ## x, \ - /* parameters for suspension */ \ - dParamSuspensionERP ## x, \ - dParamSuspensionCFM ## x, \ - dParamERP ## x, - -enum { - D_ALL_PARAM_NAMES(0) - dParamsInGroup, ///< Number of parameter in a group - D_ALL_PARAM_NAMES_X(0x000,1) - D_ALL_PARAM_NAMES_X(0x100,2) - D_ALL_PARAM_NAMES_X(0x200,3) - - /* add a multiple of this constant to the basic parameter numbers to get - * the parameters for the second, third etc axes. - */ - dParamGroup=0x100 -}; - - -/* angular motor mode numbers */ - -enum { - dAMotorUser = 0, - dAMotorEuler = 1 -}; - - -/* joint force feedback information */ - -typedef struct dJointFeedback { - dVector3 f1; /* force applied to body 1 */ - dVector3 t1; /* torque applied to body 1 */ - dVector3 f2; /* force applied to body 2 */ - dVector3 t2; /* torque applied to body 2 */ -} dJointFeedback; - - -/* private functions that must be implemented by the collision library: - * (1) indicate that a geom has moved, (2) get the next geom in a body list. - * these functions are called whenever the position of geoms connected to a - * body have changed, e.g. with dBodySetPosition(), dBodySetRotation(), or - * when the ODE step function updates the body state. - */ - -void dGeomMoved (dGeomID); -dGeomID dGeomGetBodyNext (dGeomID); - -/** - * dGetConfiguration returns the specific ODE build configuration as - * a string of tokens. The string can be parsed in a similar way to - * the OpenGL extension mechanism, the naming convention should be - * familiar too. The following extensions are reported: - * - * ODE - * ODE_single_precision - * ODE_double_precision - * ODE_EXT_no_debug - * ODE_EXT_trimesh - * ODE_EXT_opcode - * ODE_EXT_gimpact - * ODE_EXT_malloc_not_alloca - * ODE_EXT_gyroscopic - * ODE_OPC_16bit_indices - * ODE_OPC_new_collider -*/ -ODE_API const char* dGetConfiguration (void); - -/** - * Helper to check for a token in the ODE configuration string. - * Caution, this function is case sensitive. - * - * @param token A configuration token, see dGetConfiguration for details - * - * @return 1 if exact token is present, 0 if not present - */ -ODE_API int dCheckConfiguration( const char* token ); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/misc/builddeps/linux32/ode/include/ode/compatibility.h b/misc/builddeps/linux32/ode/include/ode/compatibility.h deleted file mode 100644 index b3709866..00000000 --- a/misc/builddeps/linux32/ode/include/ode/compatibility.h +++ /dev/null @@ -1,40 +0,0 @@ -/************************************************************************* - * * - * Open Dynamics Engine, Copyright (C) 2001,2002 Russell L. Smith. * - * All rights reserved. Email: russ@q12.org Web: www.q12.org * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of EITHER: * - * (1) The GNU Lesser General Public License as published by the Free * - * Software Foundation; either version 2.1 of the License, or (at * - * your option) any later version. The text of the GNU Lesser * - * General Public License is included with this library in the * - * file LICENSE.TXT. * - * (2) The BSD-style license that is included with this library in * - * the file LICENSE-BSD.TXT. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files * - * LICENSE.TXT and LICENSE-BSD.TXT for more details. * - * * - *************************************************************************/ - -#ifndef _ODE_COMPATIBILITY_H_ -#define _ODE_COMPATIBILITY_H_ - -/* - * ODE's backward compatibility system ensures that as ODE's API - * evolves, user code will not break. - */ - -/* - * These new rotation function names are more consistent with the - * rest of the API. - */ -#define dQtoR(q,R) dRfromQ((R),(q)) -#define dRtoQ(R,q) dQfromR((q),(R)) -#define dWtoDQ(w,q,dq) dDQfromW((dq),(w),(q)) - - -#endif diff --git a/misc/builddeps/linux32/ode/include/ode/contact.h b/misc/builddeps/linux32/ode/include/ode/contact.h deleted file mode 100644 index 8bb810f5..00000000 --- a/misc/builddeps/linux32/ode/include/ode/contact.h +++ /dev/null @@ -1,104 +0,0 @@ -/************************************************************************* - * * - * Open Dynamics Engine, Copyright (C) 2001,2002 Russell L. Smith. * - * All rights reserved. Email: russ@q12.org Web: www.q12.org * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of EITHER: * - * (1) The GNU Lesser General Public License as published by the Free * - * Software Foundation; either version 2.1 of the License, or (at * - * your option) any later version. The text of the GNU Lesser * - * General Public License is included with this library in the * - * file LICENSE.TXT. * - * (2) The BSD-style license that is included with this library in * - * the file LICENSE-BSD.TXT. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files * - * LICENSE.TXT and LICENSE-BSD.TXT for more details. * - * * - *************************************************************************/ - -#ifndef _ODE_CONTACT_H_ -#define _ODE_CONTACT_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -enum { - dContactMu2 = 0x001, - dContactFDir1 = 0x002, - dContactBounce = 0x004, - dContactSoftERP = 0x008, - dContactSoftCFM = 0x010, - dContactMotion1 = 0x020, - dContactMotion2 = 0x040, - dContactMotionN = 0x080, - dContactSlip1 = 0x100, - dContactSlip2 = 0x200, - - dContactApprox0 = 0x0000, - dContactApprox1_1 = 0x1000, - dContactApprox1_2 = 0x2000, - dContactApprox1 = 0x3000 -}; - - -typedef struct dSurfaceParameters { - /* must always be defined */ - int mode; - dReal mu; - - /* only defined if the corresponding flag is set in mode */ - dReal mu2; - dReal bounce; - dReal bounce_vel; - dReal soft_erp; - dReal soft_cfm; - dReal motion1,motion2,motionN; - dReal slip1,slip2; -} dSurfaceParameters; - - -/** - * @brief Describe the contact point between two geoms. - * - * If two bodies touch, or if a body touches a static feature in its - * environment, the contact is represented by one or more "contact - * points", described by dContactGeom. - * - * The convention is that if body 1 is moved along the normal vector by - * a distance depth (or equivalently if body 2 is moved the same distance - * in the opposite direction) then the contact depth will be reduced to - * zero. This means that the normal vector points "in" to body 1. - * - * @ingroup collide - */ -typedef struct dContactGeom { - dVector3 pos; ///< contact position - dVector3 normal; ///< normal vector - dReal depth; ///< penetration depth - dGeomID g1,g2; ///< the colliding geoms - int side1,side2; ///< (to be documented) -} dContactGeom; - - -/* contact info used by contact joint */ - -typedef struct dContact { - dSurfaceParameters surface; - dContactGeom geom; - dVector3 fdir1; -} dContact; - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/misc/builddeps/linux32/ode/include/ode/error.h b/misc/builddeps/linux32/ode/include/ode/error.h deleted file mode 100644 index 20b9ba45..00000000 --- a/misc/builddeps/linux32/ode/include/ode/error.h +++ /dev/null @@ -1,63 +0,0 @@ -/************************************************************************* - * * - * Open Dynamics Engine, Copyright (C) 2001,2002 Russell L. Smith. * - * All rights reserved. Email: russ@q12.org Web: www.q12.org * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of EITHER: * - * (1) The GNU Lesser General Public License as published by the Free * - * Software Foundation; either version 2.1 of the License, or (at * - * your option) any later version. The text of the GNU Lesser * - * General Public License is included with this library in the * - * file LICENSE.TXT. * - * (2) The BSD-style license that is included with this library in * - * the file LICENSE-BSD.TXT. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files * - * LICENSE.TXT and LICENSE-BSD.TXT for more details. * - * * - *************************************************************************/ - -/* this comes from the `reuse' library. copy any changes back to the source */ - -#ifndef _ODE_ERROR_H_ -#define _ODE_ERROR_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* all user defined error functions have this type. error and debug functions - * should not return. - */ -typedef void dMessageFunction (int errnum, const char *msg, va_list ap); - -/* set a new error, debug or warning handler. if fn is 0, the default handlers - * are used. - */ -ODE_API void dSetErrorHandler (dMessageFunction *fn); -ODE_API void dSetDebugHandler (dMessageFunction *fn); -ODE_API void dSetMessageHandler (dMessageFunction *fn); - -/* return the current error, debug or warning handler. if the return value is - * 0, the default handlers are in place. - */ -ODE_API dMessageFunction *dGetErrorHandler(void); -ODE_API dMessageFunction *dGetDebugHandler(void); -ODE_API dMessageFunction *dGetMessageHandler(void); - -/* generate a fatal error, debug trap or a message. */ -ODE_API void dError (int num, const char *msg, ...); -ODE_API void dDebug (int num, const char *msg, ...); -ODE_API void dMessage (int num, const char *msg, ...); - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/misc/builddeps/linux32/ode/include/ode/export-dif.h b/misc/builddeps/linux32/ode/include/ode/export-dif.h deleted file mode 100644 index f6578ac7..00000000 --- a/misc/builddeps/linux32/ode/include/ode/export-dif.h +++ /dev/null @@ -1,40 +0,0 @@ -/************************************************************************* - * * - * Open Dynamics Engine, Copyright (C) 2001,2002 Russell L. Smith. * - * All rights reserved. Email: russ@q12.org Web: www.q12.org * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of EITHER: * - * (1) The GNU Lesser General Public License as published by the Free * - * Software Foundation; either version 2.1 of the License, or (at * - * your option) any later version. The text of the GNU Lesser * - * General Public License is included with this library in the * - * file LICENSE.TXT. * - * (2) The BSD-style license that is included with this library in * - * the file LICENSE-BSD.TXT. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files * - * LICENSE.TXT and LICENSE-BSD.TXT for more details. * - * * - *************************************************************************/ - -#ifndef _ODE_EXPORT_DIF_ -#define _ODE_EXPORT_DIF_ - -#include - - -#ifdef __cplusplus -extern "C" { -#endif - -ODE_API void dWorldExportDIF (dWorldID w, FILE *file, const char *world_name); - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/misc/builddeps/linux32/ode/include/ode/mass.h b/misc/builddeps/linux32/ode/include/ode/mass.h deleted file mode 100644 index d74500c9..00000000 --- a/misc/builddeps/linux32/ode/include/ode/mass.h +++ /dev/null @@ -1,144 +0,0 @@ -/************************************************************************* - * * - * Open Dynamics Engine, Copyright (C) 2001,2002 Russell L. Smith. * - * All rights reserved. Email: russ@q12.org Web: www.q12.org * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of EITHER: * - * (1) The GNU Lesser General Public License as published by the Free * - * Software Foundation; either version 2.1 of the License, or (at * - * your option) any later version. The text of the GNU Lesser * - * General Public License is included with this library in the * - * file LICENSE.TXT. * - * (2) The BSD-style license that is included with this library in * - * the file LICENSE-BSD.TXT. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files * - * LICENSE.TXT and LICENSE-BSD.TXT for more details. * - * * - *************************************************************************/ - -#ifndef _ODE_MASS_H_ -#define _ODE_MASS_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -struct dMass; -typedef struct dMass dMass; - -/** - * Check if a mass structure has valid value. - * The function check if the mass and innertia matrix are positive definits - * - * @param m A mass structure to check - * - * @return 1 if both codition are met - */ -ODE_API int dMassCheck(const dMass *m); - -ODE_API void dMassSetZero (dMass *); - -ODE_API void dMassSetParameters (dMass *, dReal themass, - dReal cgx, dReal cgy, dReal cgz, - dReal I11, dReal I22, dReal I33, - dReal I12, dReal I13, dReal I23); - -ODE_API void dMassSetSphere (dMass *, dReal density, dReal radius); -ODE_API void dMassSetSphereTotal (dMass *, dReal total_mass, dReal radius); - -ODE_API void dMassSetCapsule (dMass *, dReal density, int direction, - dReal radius, dReal length); -ODE_API void dMassSetCapsuleTotal (dMass *, dReal total_mass, int direction, - dReal radius, dReal length); - -ODE_API void dMassSetCylinder (dMass *, dReal density, int direction, - dReal radius, dReal length); -ODE_API void dMassSetCylinderTotal (dMass *, dReal total_mass, int direction, - dReal radius, dReal length); - -ODE_API void dMassSetBox (dMass *, dReal density, - dReal lx, dReal ly, dReal lz); -ODE_API void dMassSetBoxTotal (dMass *, dReal total_mass, - dReal lx, dReal ly, dReal lz); - -ODE_API void dMassSetTrimesh (dMass *, dReal density, dGeomID g); - -ODE_API void dMassSetTrimeshTotal (dMass *m, dReal total_mass, dGeomID g); - -ODE_API void dMassAdjust (dMass *, dReal newmass); - -ODE_API void dMassTranslate (dMass *, dReal x, dReal y, dReal z); - -ODE_API void dMassRotate (dMass *, const dMatrix3 R); - -ODE_API void dMassAdd (dMass *a, const dMass *b); - - -// Backwards compatible API -ODE_API ODE_API_DEPRECATED void dMassSetCappedCylinder(dMass *a, dReal b, int c, dReal d, dReal e); -ODE_API ODE_API_DEPRECATED void dMassSetCappedCylinderTotal(dMass *a, dReal b, int c, dReal d, dReal e); - - -struct dMass { - dReal mass; - dVector3 c; - dMatrix3 I; - -#ifdef __cplusplus - dMass() - { dMassSetZero (this); } - void setZero() - { dMassSetZero (this); } - void setParameters (dReal themass, dReal cgx, dReal cgy, dReal cgz, - dReal I11, dReal I22, dReal I33, - dReal I12, dReal I13, dReal I23) - { dMassSetParameters (this,themass,cgx,cgy,cgz,I11,I22,I33,I12,I13,I23); } - - void setSphere (dReal density, dReal radius) - { dMassSetSphere (this,density,radius); } - void setSphereTotal (dReal total, dReal radius) - { dMassSetSphereTotal (this,total,radius); } - - void setCapsule (dReal density, int direction, dReal radius, dReal length) - { dMassSetCapsule (this,density,direction,radius,length); } - void setCapsuleTotal (dReal total, int direction, dReal radius, dReal length) - { dMassSetCapsule (this,total,direction,radius,length); } - - void setCylinder(dReal density, int direction, dReal radius, dReal length) - { dMassSetCylinder (this,density,direction,radius,length); } - void setCylinderTotal(dReal total, int direction, dReal radius, dReal length) - { dMassSetCylinderTotal (this,total,direction,radius,length); } - - void setBox (dReal density, dReal lx, dReal ly, dReal lz) - { dMassSetBox (this,density,lx,ly,lz); } - void setBoxTotal (dReal total, dReal lx, dReal ly, dReal lz) - { dMassSetBoxTotal (this,total,lx,ly,lz); } - - void setTrimesh(dReal density, dGeomID g) - { dMassSetTrimesh (this, density, g); } - void setTrimeshTotal(dReal total, dGeomID g) - { dMassSetTrimeshTotal (this, total, g); } - - void adjust (dReal newmass) - { dMassAdjust (this,newmass); } - void translate (dReal x, dReal y, dReal z) - { dMassTranslate (this,x,y,z); } - void rotate (const dMatrix3 R) - { dMassRotate (this,R); } - void add (const dMass *b) - { dMassAdd (this,b); } -#endif -}; - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/misc/builddeps/linux32/ode/include/ode/matrix.h b/misc/builddeps/linux32/ode/include/ode/matrix.h deleted file mode 100644 index e177f44f..00000000 --- a/misc/builddeps/linux32/ode/include/ode/matrix.h +++ /dev/null @@ -1,280 +0,0 @@ -/************************************************************************* - * * - * Open Dynamics Engine, Copyright (C) 2001,2002 Russell L. Smith. * - * All rights reserved. Email: russ@q12.org Web: www.q12.org * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of EITHER: * - * (1) The GNU Lesser General Public License as published by the Free * - * Software Foundation; either version 2.1 of the License, or (at * - * your option) any later version. The text of the GNU Lesser * - * General Public License is included with this library in the * - * file LICENSE.TXT. * - * (2) The BSD-style license that is included with this library in * - * the file LICENSE-BSD.TXT. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files * - * LICENSE.TXT and LICENSE-BSD.TXT for more details. * - * * - *************************************************************************/ - -/* optimized and unoptimized vector and matrix functions */ - -#ifndef _ODE_MATRIX_H_ -#define _ODE_MATRIX_H_ - -#include - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* set a vector/matrix of size n to all zeros, or to a specific value. */ - -ODE_API void dSetZero (dReal *a, int n); -ODE_API void dSetValue (dReal *a, int n, dReal value); - - -/* get the dot product of two n*1 vectors. if n <= 0 then - * zero will be returned (in which case a and b need not be valid). - */ - -ODE_API dReal dDot (const dReal *a, const dReal *b, int n); - - -/* get the dot products of (a0,b), (a1,b), etc and return them in outsum. - * all vectors are n*1. if n <= 0 then zeroes will be returned (in which case - * the input vectors need not be valid). this function is somewhat faster - * than calling dDot() for all of the combinations separately. - */ - -/* NOT INCLUDED in the library for now. -void dMultidot2 (const dReal *a0, const dReal *a1, - const dReal *b, dReal *outsum, int n); -*/ - - -/* matrix multiplication. all matrices are stored in standard row format. - * the digit refers to the argument that is transposed: - * 0: A = B * C (sizes: A:p*r B:p*q C:q*r) - * 1: A = B' * C (sizes: A:p*r B:q*p C:q*r) - * 2: A = B * C' (sizes: A:p*r B:p*q C:r*q) - * case 1,2 are equivalent to saying that the operation is A=B*C but - * B or C are stored in standard column format. - */ - -ODE_API void dMultiply0 (dReal *A, const dReal *B, const dReal *C, int p,int q,int r); -ODE_API void dMultiply1 (dReal *A, const dReal *B, const dReal *C, int p,int q,int r); -ODE_API void dMultiply2 (dReal *A, const dReal *B, const dReal *C, int p,int q,int r); - - -/* do an in-place cholesky decomposition on the lower triangle of the n*n - * symmetric matrix A (which is stored by rows). the resulting lower triangle - * will be such that L*L'=A. return 1 on success and 0 on failure (on failure - * the matrix is not positive definite). - */ - -ODE_API int dFactorCholesky (dReal *A, int n); - - -/* solve for x: L*L'*x = b, and put the result back into x. - * L is size n*n, b is size n*1. only the lower triangle of L is considered. - */ - -ODE_API void dSolveCholesky (const dReal *L, dReal *b, int n); - - -/* compute the inverse of the n*n positive definite matrix A and put it in - * Ainv. this is not especially fast. this returns 1 on success (A was - * positive definite) or 0 on failure (not PD). - */ - -ODE_API int dInvertPDMatrix (const dReal *A, dReal *Ainv, int n); - - -/* check whether an n*n matrix A is positive definite, return 1/0 (yes/no). - * positive definite means that x'*A*x > 0 for any x. this performs a - * cholesky decomposition of A. if the decomposition fails then the matrix - * is not positive definite. A is stored by rows. A is not altered. - */ - -ODE_API int dIsPositiveDefinite (const dReal *A, int n); - - -/* factorize a matrix A into L*D*L', where L is lower triangular with ones on - * the diagonal, and D is diagonal. - * A is an n*n matrix stored by rows, with a leading dimension of n rounded - * up to 4. L is written into the strict lower triangle of A (the ones are not - * written) and the reciprocal of the diagonal elements of D are written into - * d. - */ -ODE_API void dFactorLDLT (dReal *A, dReal *d, int n, int nskip); - - -/* solve L*x=b, where L is n*n lower triangular with ones on the diagonal, - * and x,b are n*1. b is overwritten with x. - * the leading dimension of L is `nskip'. - */ -ODE_API void dSolveL1 (const dReal *L, dReal *b, int n, int nskip); - - -/* solve L'*x=b, where L is n*n lower triangular with ones on the diagonal, - * and x,b are n*1. b is overwritten with x. - * the leading dimension of L is `nskip'. - */ -ODE_API void dSolveL1T (const dReal *L, dReal *b, int n, int nskip); - - -/* in matlab syntax: a(1:n) = a(1:n) .* d(1:n) */ - -ODE_API void dVectorScale (dReal *a, const dReal *d, int n); - - -/* given `L', a n*n lower triangular matrix with ones on the diagonal, - * and `d', a n*1 vector of the reciprocal diagonal elements of an n*n matrix - * D, solve L*D*L'*x=b where x,b are n*1. x overwrites b. - * the leading dimension of L is `nskip'. - */ - -ODE_API void dSolveLDLT (const dReal *L, const dReal *d, dReal *b, int n, int nskip); - - -/* given an L*D*L' factorization of an n*n matrix A, return the updated - * factorization L2*D2*L2' of A plus the following "top left" matrix: - * - * [ b a' ] <-- b is a[0] - * [ a 0 ] <-- a is a[1..n-1] - * - * - L has size n*n, its leading dimension is nskip. L is lower triangular - * with ones on the diagonal. only the lower triangle of L is referenced. - * - d has size n. d contains the reciprocal diagonal elements of D. - * - a has size n. - * the result is written into L, except that the left column of L and d[0] - * are not actually modified. see ldltaddTL.m for further comments. - */ -ODE_API void dLDLTAddTL (dReal *L, dReal *d, const dReal *a, int n, int nskip); - - -/* given an L*D*L' factorization of a permuted matrix A, produce a new - * factorization for row and column `r' removed. - * - A has size n1*n1, its leading dimension in nskip. A is symmetric and - * positive definite. only the lower triangle of A is referenced. - * A itself may actually be an array of row pointers. - * - L has size n2*n2, its leading dimension in nskip. L is lower triangular - * with ones on the diagonal. only the lower triangle of L is referenced. - * - d has size n2. d contains the reciprocal diagonal elements of D. - * - p is a permutation vector. it contains n2 indexes into A. each index - * must be in the range 0..n1-1. - * - r is the row/column of L to remove. - * the new L will be written within the old L, i.e. will have the same leading - * dimension. the last row and column of L, and the last element of d, are - * undefined on exit. - * - * a fast O(n^2) algorithm is used. see ldltremove.m for further comments. - */ -ODE_API void dLDLTRemove (dReal **A, const int *p, dReal *L, dReal *d, - int n1, int n2, int r, int nskip); - - -/* given an n*n matrix A (with leading dimension nskip), remove the r'th row - * and column by moving elements. the new matrix will have the same leading - * dimension. the last row and column of A are untouched on exit. - */ -ODE_API void dRemoveRowCol (dReal *A, int n, int nskip, int r); - - -#if defined(__ODE__) - -void _dSetZero (dReal *a, size_t n); -void _dSetValue (dReal *a, size_t n, dReal value); -dReal _dDot (const dReal *a, const dReal *b, int n); -void _dMultiply0 (dReal *A, const dReal *B, const dReal *C, int p,int q,int r); -void _dMultiply1 (dReal *A, const dReal *B, const dReal *C, int p,int q,int r); -void _dMultiply2 (dReal *A, const dReal *B, const dReal *C, int p,int q,int r); -int _dFactorCholesky (dReal *A, int n, void *tmpbuf); -void _dSolveCholesky (const dReal *L, dReal *b, int n, void *tmpbuf); -int _dInvertPDMatrix (const dReal *A, dReal *Ainv, int n, void *tmpbuf); -int _dIsPositiveDefinite (const dReal *A, int n, void *tmpbuf); -void _dFactorLDLT (dReal *A, dReal *d, int n, int nskip); -void _dSolveL1 (const dReal *L, dReal *b, int n, int nskip); -void _dSolveL1T (const dReal *L, dReal *b, int n, int nskip); -void _dVectorScale (dReal *a, const dReal *d, int n); -void _dSolveLDLT (const dReal *L, const dReal *d, dReal *b, int n, int nskip); -void _dLDLTAddTL (dReal *L, dReal *d, const dReal *a, int n, int nskip, void *tmpbuf); -void _dLDLTRemove (dReal **A, const int *p, dReal *L, dReal *d, int n1, int n2, int r, int nskip, void *tmpbuf); -void _dRemoveRowCol (dReal *A, int n, int nskip, int r); - -PURE_INLINE size_t _dEstimateFactorCholeskyTmpbufSize(int n) -{ - return dPAD(n) * sizeof(dReal); -} - -PURE_INLINE size_t _dEstimateSolveCholeskyTmpbufSize(int n) -{ - return dPAD(n) * sizeof(dReal); -} - -PURE_INLINE size_t _dEstimateInvertPDMatrixTmpbufSize(int n) -{ - size_t FactorCholesky_size = _dEstimateFactorCholeskyTmpbufSize(n); - size_t SolveCholesky_size = _dEstimateSolveCholeskyTmpbufSize(n); - size_t MaxCholesky_size = FactorCholesky_size > SolveCholesky_size ? FactorCholesky_size : SolveCholesky_size; - return dPAD(n) * (n + 1) * sizeof(dReal) + MaxCholesky_size; -} - -PURE_INLINE size_t _dEstimateIsPositiveDefiniteTmpbufSize(int n) -{ - return dPAD(n) * n * sizeof(dReal) + _dEstimateFactorCholeskyTmpbufSize(n); -} - -PURE_INLINE size_t _dEstimateLDLTAddTLTmpbufSize(int nskip) -{ - return nskip * 2 * sizeof(dReal); -} - -PURE_INLINE size_t _dEstimateLDLTRemoveTmpbufSize(int n2, int nskip) -{ - return n2 * sizeof(dReal) + _dEstimateLDLTAddTLTmpbufSize(nskip); -} - -// For internal use -#define dSetZero(a, n) _dSetZero(a, n) -#define dSetValue(a, n, value) _dSetValue(a, n, value) -#define dDot(a, b, n) _dDot(a, b, n) -#define dMultiply0(A, B, C, p, q, r) _dMultiply0(A, B, C, p, q, r) -#define dMultiply1(A, B, C, p, q, r) _dMultiply1(A, B, C, p, q, r) -#define dMultiply2(A, B, C, p, q, r) _dMultiply2(A, B, C, p, q, r) -#define dFactorCholesky(A, n, tmpbuf) _dFactorCholesky(A, n, tmpbuf) -#define dSolveCholesky(L, b, n, tmpbuf) _dSolveCholesky(L, b, n, tmpbuf) -#define dInvertPDMatrix(A, Ainv, n, tmpbuf) _dInvertPDMatrix(A, Ainv, n, tmpbuf) -#define dIsPositiveDefinite(A, n, tmpbuf) _dIsPositiveDefinite(A, n, tmpbuf) -#define dFactorLDLT(A, d, n, nskip) _dFactorLDLT(A, d, n, nskip) -#define dSolveL1(L, b, n, nskip) _dSolveL1(L, b, n, nskip) -#define dSolveL1T(L, b, n, nskip) _dSolveL1T(L, b, n, nskip) -#define dVectorScale(a, d, n) _dVectorScale(a, d, n) -#define dSolveLDLT(L, d, b, n, nskip) _dSolveLDLT(L, d, b, n, nskip) -#define dLDLTAddTL(L, d, a, n, nskip, tmpbuf) _dLDLTAddTL(L, d, a, n, nskip, tmpbuf) -#define dLDLTRemove(A, p, L, d, n1, n2, r, nskip, tmpbuf) _dLDLTRemove(A, p, L, d, n1, n2, r, nskip, tmpbuf) -#define dRemoveRowCol(A, n, nskip, r) _dRemoveRowCol(A, n, nskip, r) - - -#define dEstimateFactorCholeskyTmpbufSize(n) _dEstimateFactorCholeskyTmpbufSize(n) -#define dEstimateSolveCholeskyTmpbufSize(n) _dEstimateSolveCholeskyTmpbufSize(n) -#define dEstimateInvertPDMatrixTmpbufSize(n) _dEstimateInvertPDMatrixTmpbufSize(n) -#define dEstimateIsPositiveDefiniteTmpbufSize(n) _dEstimateIsPositiveDefiniteTmpbufSize(n) -#define dEstimateLDLTAddTLTmpbufSize(nskip) _dEstimateLDLTAddTLTmpbufSize(nskip) -#define dEstimateLDLTRemoveTmpbufSize(n2, nskip) _dEstimateLDLTRemoveTmpbufSize(n2, nskip) - - -#endif // defined(__ODE__) - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/misc/builddeps/linux32/ode/include/ode/memory.h b/misc/builddeps/linux32/ode/include/ode/memory.h deleted file mode 100644 index 361061c1..00000000 --- a/misc/builddeps/linux32/ode/include/ode/memory.h +++ /dev/null @@ -1,59 +0,0 @@ -/************************************************************************* - * * - * Open Dynamics Engine, Copyright (C) 2001,2002 Russell L. Smith. * - * All rights reserved. Email: russ@q12.org Web: www.q12.org * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of EITHER: * - * (1) The GNU Lesser General Public License as published by the Free * - * Software Foundation; either version 2.1 of the License, or (at * - * your option) any later version. The text of the GNU Lesser * - * General Public License is included with this library in the * - * file LICENSE.TXT. * - * (2) The BSD-style license that is included with this library in * - * the file LICENSE-BSD.TXT. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files * - * LICENSE.TXT and LICENSE-BSD.TXT for more details. * - * * - *************************************************************************/ - -/* this comes from the `reuse' library. copy any changes back to the source */ - -#ifndef _ODE_MEMORY_H_ -#define _ODE_MEMORY_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* function types to allocate and free memory */ -typedef void * dAllocFunction (size_t size); -typedef void * dReallocFunction (void *ptr, size_t oldsize, size_t newsize); -typedef void dFreeFunction (void *ptr, size_t size); - -/* set new memory management functions. if fn is 0, the default handlers are - * used. */ -ODE_API void dSetAllocHandler (dAllocFunction *fn); -ODE_API void dSetReallocHandler (dReallocFunction *fn); -ODE_API void dSetFreeHandler (dFreeFunction *fn); - -/* get current memory management functions */ -ODE_API dAllocFunction *dGetAllocHandler (void); -ODE_API dReallocFunction *dGetReallocHandler (void); -ODE_API dFreeFunction *dGetFreeHandler (void); - -/* allocate and free memory. */ -ODE_API void * dAlloc (size_t size); -ODE_API void * dRealloc (void *ptr, size_t oldsize, size_t newsize); -ODE_API void dFree (void *ptr, size_t size); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/misc/builddeps/linux32/ode/include/ode/misc.h b/misc/builddeps/linux32/ode/include/ode/misc.h deleted file mode 100644 index 0c55fc5b..00000000 --- a/misc/builddeps/linux32/ode/include/ode/misc.h +++ /dev/null @@ -1,85 +0,0 @@ -/************************************************************************* - * * - * Open Dynamics Engine, Copyright (C) 2001,2002 Russell L. Smith. * - * All rights reserved. Email: russ@q12.org Web: www.q12.org * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of EITHER: * - * (1) The GNU Lesser General Public License as published by the Free * - * Software Foundation; either version 2.1 of the License, or (at * - * your option) any later version. The text of the GNU Lesser * - * General Public License is included with this library in the * - * file LICENSE.TXT. * - * (2) The BSD-style license that is included with this library in * - * the file LICENSE-BSD.TXT. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files * - * LICENSE.TXT and LICENSE-BSD.TXT for more details. * - * * - *************************************************************************/ - -/* miscellaneous math functions. these are mostly useful for testing */ - -#ifndef _ODE_MISC_H_ -#define _ODE_MISC_H_ - -#include - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* return 1 if the random number generator is working. */ -ODE_API int dTestRand(void); - -/* return next 32 bit random number. this uses a not-very-random linear - * congruential method. - */ -ODE_API unsigned long dRand(void); - -/* get and set the current random number seed. */ -ODE_API unsigned long dRandGetSeed(void); -ODE_API void dRandSetSeed (unsigned long s); - -/* return a random integer between 0..n-1. the distribution will get worse - * as n approaches 2^32. - */ -ODE_API int dRandInt (int n); - -/* return a random real number between 0..1 */ -ODE_API dReal dRandReal(void); - -/* print out a matrix */ -#ifdef __cplusplus -ODE_API void dPrintMatrix (const dReal *A, int n, int m, char *fmt = "%10.4f ", - FILE *f=stdout); -#else -ODE_API void dPrintMatrix (const dReal *A, int n, int m, char *fmt, FILE *f); -#endif - -/* make a random vector with entries between +/- range. A has n elements. */ -ODE_API void dMakeRandomVector (dReal *A, int n, dReal range); - -/* make a random matrix with entries between +/- range. A has size n*m. */ -ODE_API void dMakeRandomMatrix (dReal *A, int n, int m, dReal range); - -/* clear the upper triangle of a square matrix */ -ODE_API void dClearUpperTriangle (dReal *A, int n); - -/* return the maximum element difference between the two n*m matrices */ -ODE_API dReal dMaxDifference (const dReal *A, const dReal *B, int n, int m); - -/* return the maximum element difference between the lower triangle of two - * n*n matrices */ -ODE_API dReal dMaxDifferenceLowerTriangle (const dReal *A, const dReal *B, int n); - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/misc/builddeps/linux32/ode/include/ode/objects.h b/misc/builddeps/linux32/ode/include/ode/objects.h deleted file mode 100644 index 379de010..00000000 --- a/misc/builddeps/linux32/ode/include/ode/objects.h +++ /dev/null @@ -1,2975 +0,0 @@ - - -/************************************************************************* - * * - * Open Dynamics Engine, Copyright (C) 2001,2002 Russell L. Smith. * - * All rights reserved. Email: russ@q12.org Web: www.q12.org * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of EITHER: * - * (1) The GNU Lesser General Public License as published by the Free * - * Software Foundation; either version 2.1 of the License, or (at * - * your option) any later version. The text of the GNU Lesser * - * General Public License is included with this library in the * - * file LICENSE.TXT. * - * (2) The BSD-style license that is included with this library in * - * the file LICENSE-BSD.TXT. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files * - * LICENSE.TXT and LICENSE-BSD.TXT for more details. * - * * - *************************************************************************/ - -#ifndef _ODE_OBJECTS_H_ -#define _ODE_OBJECTS_H_ - -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/** - * @defgroup world World - * - * The world object is a container for rigid bodies and joints. Objects in - * different worlds can not interact, for example rigid bodies from two - * different worlds can not collide. - * - * All the objects in a world exist at the same point in time, thus one - * reason to use separate worlds is to simulate systems at different rates. - * Most applications will only need one world. - */ - - -/** - * @brief Create a new, empty world and return its ID number. - * @return an identifier - * @ingroup world - */ -ODE_API dWorldID dWorldCreate(void); - - -/** - * @brief Destroy a world and everything in it. - * - * This includes all bodies, and all joints that are not part of a joint - * group. Joints that are part of a joint group will be deactivated, and - * can be destroyed by calling, for example, dJointGroupEmpty(). - * @ingroup world - * @param world the identifier for the world the be destroyed. - */ -ODE_API void dWorldDestroy (dWorldID world); - - -/** - * @brief Set the world's global gravity vector. - * - * The units are m/s^2, so Earth's gravity vector would be (0,0,-9.81), - * assuming that +z is up. The default is no gravity, i.e. (0,0,0). - * - * @ingroup world - */ -ODE_API void dWorldSetGravity (dWorldID, dReal x, dReal y, dReal z); - - -/** - * @brief Get the gravity vector for a given world. - * @ingroup world - */ -ODE_API void dWorldGetGravity (dWorldID, dVector3 gravity); - - -/** - * @brief Set the global ERP value, that controls how much error - * correction is performed in each time step. - * @ingroup world - * @param dWorldID the identifier of the world. - * @param erp Typical values are in the range 0.1--0.8. The default is 0.2. - */ -ODE_API void dWorldSetERP (dWorldID, dReal erp); - -/** - * @brief Get the error reduction parameter. - * @ingroup world - * @return ERP value - */ -ODE_API dReal dWorldGetERP (dWorldID); - - -/** - * @brief Set the global CFM (constraint force mixing) value. - * @ingroup world - * @param cfm Typical values are in the range @m{10^{-9}} -- 1. - * The default is 10^-5 if single precision is being used, or 10^-10 - * if double precision is being used. - */ -ODE_API void dWorldSetCFM (dWorldID, dReal cfm); - -/** - * @brief Get the constraint force mixing value. - * @ingroup world - * @return CFM value - */ -ODE_API dReal dWorldGetCFM (dWorldID); - - -/** - * @brief Set the world to use shared working memory along with another world. - * - * The worlds allocate working memory internally for simulation stepping. This - * memory is cached among the calls to @c dWordStep and @c dWorldQuickStep. - * Similarly, several worlds can be set up to share this memory caches thus - * reducing overall memory usage by cost of making worlds inappropriate for - * simultaneous simulation in multiple threads. - * - * If null value is passed for @a from_world parameter the world is detached from - * sharing and returns to defaults for working memory, reservation policy and - * memory manager as if just created. This can also be used to enable use of shared - * memory for a world that has already had working memory allocated privately. - * Normally using shared memory after a world has its private working memory allocated - * is prohibited. - * - * Allocation policy used can only increase world's internal reserved memory size - * and never decreases it. @c dWorldCleanupWorkingMemory can be used to release - * working memory for a world in case if number of objects/joint decreases - * significantly in it. - * - * With sharing working memory worlds also automatically share memory reservation - * policy and memory manager. Thus, these parameters need to be customized for - * initial world to be used as sharing source only. - * - * Failure result status means a memory allocation failure. - * - * @param w The world to use the shared memory with. - * @param from_world Null or the world the shared memory is to be used from. - * @returns 1 for success and 0 for failure. - * - * @ingroup world - * @see dWorldCleanupWorkingMemory - * @see dWorldSetStepMemoryReservationPolicy - * @see dWorldSetStepMemoryManager - */ -ODE_API int dWorldUseSharedWorkingMemory(dWorldID w, dWorldID from_world/*=NULL*/); - -/** - * @brief Release internal working memory allocated for world - * - * The worlds allocate working memory internally for simulation stepping. This - * function can be used to free world's internal memory cache in case if number of - * objects/joints in the world decreases significantly. By default, internal - * allocation policy is used to only increase cache size as necessary and never - * decrease it. - * - * If a world shares its working memory with other worlds the cache deletion - * affects all the linked worlds. However the shared status itself remains intact. - * - * The function call does affect neither memory reservation policy nor memory manager. - * - * @param w The world to release working memory for. - * - * @ingroup world - * @see dWorldUseSharedWorkingMemory - * @see dWorldSetStepMemoryReservationPolicy - * @see dWorldSetStepMemoryManager - */ -ODE_API void dWorldCleanupWorkingMemory(dWorldID w); - -#define dWORLDSTEP_RESERVEFACTOR_DEFAULT 1.2f -#define dWORLDSTEP_RESERVESIZE_DEFAULT 65536U - -/** - * @struct dWorldStepReserveInfo - * @brief Memory reservation policy descriptor structure for world stepping functions. - * - * @c struct_size should be assigned the size of the structure. - * - * @c reserve_factor is a quotient that is multiplied by required memory size - * to allocate extra reserve whenever reallocation is needed. - * - * @c reserve_minimum is a minimum size that is checked against whenever reallocation - * is needed to allocate expected working memory minimum at once without extra - * reallocations as number of bodies/joints grows. - * - * @ingroup world - * @see dWorldSetStepMemoryReservationPolicy - */ -typedef struct -{ - unsigned struct_size; - float reserve_factor; // Use float as precision does not matter here - unsigned reserve_minimum; - -} dWorldStepReserveInfo; - -/** - * @brief Set memory reservation policy for world to be used with simulation stepping functions - * - * The function allows to customize reservation policy to be used for internal - * memory which is allocated to aid simulation for a world. By default, values - * of @c dWORLDSTEP_RESERVEFACTOR_DEFAULT and @c dWORLDSTEP_RESERVESIZE_DEFAULT - * are used. - * - * Passing @a policyinfo argument as NULL results in reservation policy being - * reset to defaults as if the world has been just created. The content of - * @a policyinfo structure is copied internally and does not need to remain valid - * after the call returns. - * - * If the world uses working memory sharing, changing memory reservation policy - * affects all the worlds linked together. - * - * Failure result status means a memory allocation failure. - * - * @param w The world to change memory reservation policy for. - * @param policyinfo Null or a pointer to policy descriptor structure. - * @returns 1 for success and 0 for failure. - * - * @ingroup world - * @see dWorldUseSharedWorkingMemory - */ -ODE_API int dWorldSetStepMemoryReservationPolicy(dWorldID w, const dWorldStepReserveInfo *policyinfo/*=NULL*/); - -/** -* @struct dWorldStepMemoryFunctionsInfo -* @brief World stepping memory manager descriptor structure -* -* This structure is intended to define the functions of memory manager to be used -* with world stepping functions. -* -* @c struct_size should be assigned the size of the structure -* -* @c alloc_block is a function to allocate memory block of given size. -* -* @c shrink_block is a function to shrink existing memory block to a smaller size. -* It must preserve the contents of block head while shrinking. The new block size -* is guaranteed to be always less than the existing one. -* -* @c free_block is a function to delete existing memory block. -* -* @ingroup init -* @see dWorldSetStepMemoryManager -*/ -typedef struct -{ - unsigned struct_size; - void *(*alloc_block)(size_t block_size); - void *(*shrink_block)(void *block_pointer, size_t block_current_size, size_t block_smaller_size); - void (*free_block)(void *block_pointer, size_t block_current_size); - -} dWorldStepMemoryFunctionsInfo; - -/** -* @brief Set memory manager for world to be used with simulation stepping functions -* -* The function allows to customize memory manager to be used for internal -* memory allocation during simulation for a world. By default, @c dAlloc/@c dRealloc/@c dFree -* based memory manager is used. -* -* Passing @a memfuncs argument as NULL results in memory manager being -* reset to default one as if the world has been just created. The content of -* @a memfuncs structure is copied internally and does not need to remain valid -* after the call returns. -* -* If the world uses working memory sharing, changing memory manager -* affects all the worlds linked together. -* -* Failure result status means a memory allocation failure. -* -* @param w The world to change memory reservation policy for. -* @param memfuncs Null or a pointer to memory manager descriptor structure. -* @returns 1 for success and 0 for failure. -* -* @ingroup world -* @see dWorldUseSharedWorkingMemory -*/ -ODE_API int dWorldSetStepMemoryManager(dWorldID w, const dWorldStepMemoryFunctionsInfo *memfuncs); - -/** - * @brief Step the world. - * - * This uses a "big matrix" method that takes time on the order of m^3 - * and memory on the order of m^2, where m is the total number of constraint - * rows. For large systems this will use a lot of memory and can be very slow, - * but this is currently the most accurate method. - * - * Failure result status means that the memory allocation has failed for operation. - * In such a case all the objects remain in unchanged state and simulation can be - * retried as soon as more memory is available. - * - * @param w The world to be stepped - * @param stepsize The number of seconds that the simulation has to advance. - * @returns 1 for success and 0 for failure - * - * @ingroup world - */ -ODE_API int dWorldStep (dWorldID w, dReal stepsize); - -/** - * @brief Quick-step the world. - * - * This uses an iterative method that takes time on the order of m*N - * and memory on the order of m, where m is the total number of constraint - * rows N is the number of iterations. - * For large systems this is a lot faster than dWorldStep(), - * but it is less accurate. - * - * QuickStep is great for stacks of objects especially when the - * auto-disable feature is used as well. - * However, it has poor accuracy for near-singular systems. - * Near-singular systems can occur when using high-friction contacts, motors, - * or certain articulated structures. For example, a robot with multiple legs - * sitting on the ground may be near-singular. - * - * There are ways to help overcome QuickStep's inaccuracy problems: - * - * \li Increase CFM. - * \li Reduce the number of contacts in your system (e.g. use the minimum - * number of contacts for the feet of a robot or creature). - * \li Don't use excessive friction in the contacts. - * \li Use contact slip if appropriate - * \li Avoid kinematic loops (however, kinematic loops are inevitable in - * legged creatures). - * \li Don't use excessive motor strength. - * \liUse force-based motors instead of velocity-based motors. - * - * Increasing the number of QuickStep iterations may help a little bit, but - * it is not going to help much if your system is really near singular. - * - * Failure result status means that the memory allocation has failed for operation. - * In such a case all the objects remain in unchanged state and simulation can be - * retried as soon as more memory is available. - * - * @param w The world to be stepped - * @param stepsize The number of seconds that the simulation has to advance. - * @returns 1 for success and 0 for failure - * - * @ingroup world - */ -ODE_API int dWorldQuickStep (dWorldID w, dReal stepsize); - - -/** -* @brief Converts an impulse to a force. -* @ingroup world -* @remarks -* If you want to apply a linear or angular impulse to a rigid body, -* instead of a force or a torque, then you can use this function to convert -* the desired impulse into a force/torque vector before calling the -* BodyAdd... function. -* The current algorithm simply scales the impulse by 1/stepsize, -* where stepsize is the step size for the next step that will be taken. -* This function is given a dWorldID because, in the future, the force -* computation may depend on integrator parameters that are set as -* properties of the world. -*/ -ODE_API void dWorldImpulseToForce -( - dWorldID, dReal stepsize, - dReal ix, dReal iy, dReal iz, dVector3 force - ); - - -/** - * @brief Set the number of iterations that the QuickStep method performs per - * step. - * @ingroup world - * @remarks - * More iterations will give a more accurate solution, but will take - * longer to compute. - * @param num The default is 20 iterations. - */ -ODE_API void dWorldSetQuickStepNumIterations (dWorldID, int num); - - -/** - * @brief Get the number of iterations that the QuickStep method performs per - * step. - * @ingroup world - * @return nr of iterations - */ -ODE_API int dWorldGetQuickStepNumIterations (dWorldID); - -/** - * @brief Set the SOR over-relaxation parameter - * @ingroup world - * @param over_relaxation value to use by SOR - */ -ODE_API void dWorldSetQuickStepW (dWorldID, dReal over_relaxation); - -/** - * @brief Get the SOR over-relaxation parameter - * @ingroup world - * @returns the over-relaxation setting - */ -ODE_API dReal dWorldGetQuickStepW (dWorldID); - -/* World contact parameter functions */ - -/** - * @brief Set the maximum correcting velocity that contacts are allowed - * to generate. - * @ingroup world - * @param vel The default value is infinity (i.e. no limit). - * @remarks - * Reducing this value can help prevent "popping" of deeply embedded objects. - */ -ODE_API void dWorldSetContactMaxCorrectingVel (dWorldID, dReal vel); - -/** - * @brief Get the maximum correcting velocity that contacts are allowed - * to generated. - * @ingroup world - */ -ODE_API dReal dWorldGetContactMaxCorrectingVel (dWorldID); - -/** - * @brief Set the depth of the surface layer around all geometry objects. - * @ingroup world - * @remarks - * Contacts are allowed to sink into the surface layer up to the given - * depth before coming to rest. - * @param depth The default value is zero. - * @remarks - * Increasing this to some small value (e.g. 0.001) can help prevent - * jittering problems due to contacts being repeatedly made and broken. - */ -ODE_API void dWorldSetContactSurfaceLayer (dWorldID, dReal depth); - -/** - * @brief Get the depth of the surface layer around all geometry objects. - * @ingroup world - * @returns the depth - */ -ODE_API dReal dWorldGetContactSurfaceLayer (dWorldID); - - -/** - * @defgroup disable Automatic Enabling and Disabling - * @ingroup world bodies - * - * Every body can be enabled or disabled. Enabled bodies participate in the - * simulation, while disabled bodies are turned off and do not get updated - * during a simulation step. New bodies are always created in the enabled state. - * - * A disabled body that is connected through a joint to an enabled body will be - * automatically re-enabled at the next simulation step. - * - * Disabled bodies do not consume CPU time, therefore to speed up the simulation - * bodies should be disabled when they come to rest. This can be done automatically - * with the auto-disable feature. - * - * If a body has its auto-disable flag turned on, it will automatically disable - * itself when - * @li It has been idle for a given number of simulation steps. - * @li It has also been idle for a given amount of simulation time. - * - * A body is considered to be idle when the magnitudes of both its - * linear average velocity and angular average velocity are below given thresholds. - * The sample size for the average defaults to one and can be disabled by setting - * to zero with - * - * Thus, every body has six auto-disable parameters: an enabled flag, a idle step - * count, an idle time, linear/angular average velocity thresholds, and the - * average samples count. - * - * Newly created bodies get these parameters from world. - */ - -/** - * @brief Get auto disable linear threshold for newly created bodies. - * @ingroup disable - * @return the threshold - */ -ODE_API dReal dWorldGetAutoDisableLinearThreshold (dWorldID); - -/** - * @brief Set auto disable linear threshold for newly created bodies. - * @param linear_threshold default is 0.01 - * @ingroup disable - */ -ODE_API void dWorldSetAutoDisableLinearThreshold (dWorldID, dReal linear_threshold); - -/** - * @brief Get auto disable angular threshold for newly created bodies. - * @ingroup disable - * @return the threshold - */ -ODE_API dReal dWorldGetAutoDisableAngularThreshold (dWorldID); - -/** - * @brief Set auto disable angular threshold for newly created bodies. - * @param linear_threshold default is 0.01 - * @ingroup disable - */ -ODE_API void dWorldSetAutoDisableAngularThreshold (dWorldID, dReal angular_threshold); - -/** - * @brief Get auto disable linear average threshold for newly created bodies. - * @ingroup disable - * @return the threshold - */ -ODE_API dReal dWorldGetAutoDisableLinearAverageThreshold (dWorldID); - -/** - * @brief Set auto disable linear average threshold for newly created bodies. - * @param linear_average_threshold default is 0.01 - * @ingroup disable - */ -ODE_API void dWorldSetAutoDisableLinearAverageThreshold (dWorldID, dReal linear_average_threshold); - -/** - * @brief Get auto disable angular average threshold for newly created bodies. - * @ingroup disable - * @return the threshold - */ -ODE_API dReal dWorldGetAutoDisableAngularAverageThreshold (dWorldID); - -/** - * @brief Set auto disable angular average threshold for newly created bodies. - * @param linear_average_threshold default is 0.01 - * @ingroup disable - */ -ODE_API void dWorldSetAutoDisableAngularAverageThreshold (dWorldID, dReal angular_average_threshold); - -/** - * @brief Get auto disable sample count for newly created bodies. - * @ingroup disable - * @return number of samples used - */ -ODE_API int dWorldGetAutoDisableAverageSamplesCount (dWorldID); - -/** - * @brief Set auto disable average sample count for newly created bodies. - * @ingroup disable - * @param average_samples_count Default is 1, meaning only instantaneous velocity is used. - * Set to zero to disable sampling and thus prevent any body from auto-disabling. - */ -ODE_API void dWorldSetAutoDisableAverageSamplesCount (dWorldID, unsigned int average_samples_count ); - -/** - * @brief Get auto disable steps for newly created bodies. - * @ingroup disable - * @return nr of steps - */ -ODE_API int dWorldGetAutoDisableSteps (dWorldID); - -/** - * @brief Set auto disable steps for newly created bodies. - * @ingroup disable - * @param steps default is 10 - */ -ODE_API void dWorldSetAutoDisableSteps (dWorldID, int steps); - -/** - * @brief Get auto disable time for newly created bodies. - * @ingroup disable - * @return nr of seconds - */ -ODE_API dReal dWorldGetAutoDisableTime (dWorldID); - -/** - * @brief Set auto disable time for newly created bodies. - * @ingroup disable - * @param time default is 0 seconds - */ -ODE_API void dWorldSetAutoDisableTime (dWorldID, dReal time); - -/** - * @brief Get auto disable flag for newly created bodies. - * @ingroup disable - * @return 0 or 1 - */ -ODE_API int dWorldGetAutoDisableFlag (dWorldID); - -/** - * @brief Set auto disable flag for newly created bodies. - * @ingroup disable - * @param do_auto_disable default is false. - */ -ODE_API void dWorldSetAutoDisableFlag (dWorldID, int do_auto_disable); - - -/** - * @defgroup damping Damping - * @ingroup bodies world - * - * Damping serves two purposes: reduce simulation instability, and to allow - * the bodies to come to rest (and possibly auto-disabling them). - * - * Bodies are constructed using the world's current damping parameters. Setting - * the scales to 0 disables the damping. - * - * Here is how it is done: after every time step linear and angular - * velocities are tested against the corresponding thresholds. If they - * are above, they are multiplied by (1 - scale). So a negative scale value - * will actually increase the speed, and values greater than one will - * make the object oscillate every step; both can make the simulation unstable. - * - * To disable damping just set the damping scale to zero. - * - * You can also limit the maximum angular velocity. In contrast to the damping - * functions, the angular velocity is affected before the body is moved. - * This means that it will introduce errors in joints that are forcing the body - * to rotate too fast. Some bodies have naturally high angular velocities - * (like cars' wheels), so you may want to give them a very high (like the default, - * dInfinity) limit. - * - * @note The velocities are damped after the stepper function has moved the - * object. Otherwise the damping could introduce errors in joints. First the - * joint constraints are processed by the stepper (moving the body), then - * the damping is applied. - * - * @note The damping happens right after the moved callback is called; this way - * it still possible use the exact velocities the body has acquired during the - * step. You can even use the callback to create your own customized damping. - */ - -/** - * @brief Get the world's linear damping threshold. - * @ingroup damping - */ -ODE_API dReal dWorldGetLinearDampingThreshold (dWorldID w); - -/** - * @brief Set the world's linear damping threshold. - * @param threshold The damping won't be applied if the linear speed is - * below this threshold. Default is 0.01. - * @ingroup damping - */ -ODE_API void dWorldSetLinearDampingThreshold(dWorldID w, dReal threshold); - -/** - * @brief Get the world's angular damping threshold. - * @ingroup damping - */ -ODE_API dReal dWorldGetAngularDampingThreshold (dWorldID w); - -/** - * @brief Set the world's angular damping threshold. - * @param threshold The damping won't be applied if the angular speed is - * below this threshold. Default is 0.01. - * @ingroup damping - */ -ODE_API void dWorldSetAngularDampingThreshold(dWorldID w, dReal threshold); - -/** - * @brief Get the world's linear damping scale. - * @ingroup damping - */ -ODE_API dReal dWorldGetLinearDamping (dWorldID w); - -/** - * @brief Set the world's linear damping scale. - * @param scale The linear damping scale that is to be applied to bodies. - * Default is 0 (no damping). Should be in the interval [0, 1]. - * @ingroup damping - */ -ODE_API void dWorldSetLinearDamping (dWorldID w, dReal scale); - -/** - * @brief Get the world's angular damping scale. - * @ingroup damping - */ -ODE_API dReal dWorldGetAngularDamping (dWorldID w); - -/** - * @brief Set the world's angular damping scale. - * @param scale The angular damping scale that is to be applied to bodies. - * Default is 0 (no damping). Should be in the interval [0, 1]. - * @ingroup damping - */ -ODE_API void dWorldSetAngularDamping(dWorldID w, dReal scale); - -/** - * @brief Convenience function to set body linear and angular scales. - * @param linear_scale The linear damping scale that is to be applied to bodies. - * @param angular_scale The angular damping scale that is to be applied to bodies. - * @ingroup damping - */ -ODE_API void dWorldSetDamping(dWorldID w, - dReal linear_scale, - dReal angular_scale); - -/** - * @brief Get the default maximum angular speed. - * @ingroup damping - * @sa dBodyGetMaxAngularSpeed() - */ -ODE_API dReal dWorldGetMaxAngularSpeed (dWorldID w); - - -/** - * @brief Set the default maximum angular speed for new bodies. - * @ingroup damping - * @sa dBodySetMaxAngularSpeed() - */ -ODE_API void dWorldSetMaxAngularSpeed (dWorldID w, dReal max_speed); - - - -/** - * @defgroup bodies Rigid Bodies - * - * A rigid body has various properties from the point of view of the - * simulation. Some properties change over time: - * - * @li Position vector (x,y,z) of the body's point of reference. - * Currently the point of reference must correspond to the body's center of mass. - * @li Linear velocity of the point of reference, a vector (vx,vy,vz). - * @li Orientation of a body, represented by a quaternion (qs,qx,qy,qz) or - * a 3x3 rotation matrix. - * @li Angular velocity vector (wx,wy,wz) which describes how the orientation - * changes over time. - * - * Other body properties are usually constant over time: - * - * @li Mass of the body. - * @li Position of the center of mass with respect to the point of reference. - * In the current implementation the center of mass and the point of - * reference must coincide. - * @li Inertia matrix. This is a 3x3 matrix that describes how the body's mass - * is distributed around the center of mass. Conceptually each body has an - * x-y-z coordinate frame embedded in it that moves and rotates with the body. - * - * The origin of this coordinate frame is the body's point of reference. Some values - * in ODE (vectors, matrices etc) are relative to the body coordinate frame, and others - * are relative to the global coordinate frame. - * - * Note that the shape of a rigid body is not a dynamical property (except insofar as - * it influences the various mass properties). It is only collision detection that cares - * about the detailed shape of the body. - */ - - -/** - * @brief Get auto disable linear average threshold. - * @ingroup bodies disable - * @return the threshold - */ -ODE_API dReal dBodyGetAutoDisableLinearThreshold (dBodyID); - -/** - * @brief Set auto disable linear average threshold. - * @ingroup bodies disable - * @return the threshold - */ -ODE_API void dBodySetAutoDisableLinearThreshold (dBodyID, dReal linear_average_threshold); - -/** - * @brief Get auto disable angular average threshold. - * @ingroup bodies disable - * @return the threshold - */ -ODE_API dReal dBodyGetAutoDisableAngularThreshold (dBodyID); - -/** - * @brief Set auto disable angular average threshold. - * @ingroup bodies disable - * @return the threshold - */ -ODE_API void dBodySetAutoDisableAngularThreshold (dBodyID, dReal angular_average_threshold); - -/** - * @brief Get auto disable average size (samples count). - * @ingroup bodies disable - * @return the nr of steps/size. - */ -ODE_API int dBodyGetAutoDisableAverageSamplesCount (dBodyID); - -/** - * @brief Set auto disable average buffer size (average steps). - * @ingroup bodies disable - * @param average_samples_count the nr of samples to review. - */ -ODE_API void dBodySetAutoDisableAverageSamplesCount (dBodyID, unsigned int average_samples_count); - - -/** - * @brief Get auto steps a body must be thought of as idle to disable - * @ingroup bodies disable - * @return the nr of steps - */ -ODE_API int dBodyGetAutoDisableSteps (dBodyID); - -/** - * @brief Set auto disable steps. - * @ingroup bodies disable - * @param steps the nr of steps. - */ -ODE_API void dBodySetAutoDisableSteps (dBodyID, int steps); - -/** - * @brief Get auto disable time. - * @ingroup bodies disable - * @return nr of seconds - */ -ODE_API dReal dBodyGetAutoDisableTime (dBodyID); - -/** - * @brief Set auto disable time. - * @ingroup bodies disable - * @param time nr of seconds. - */ -ODE_API void dBodySetAutoDisableTime (dBodyID, dReal time); - -/** - * @brief Get auto disable flag. - * @ingroup bodies disable - * @return 0 or 1 - */ -ODE_API int dBodyGetAutoDisableFlag (dBodyID); - -/** - * @brief Set auto disable flag. - * @ingroup bodies disable - * @param do_auto_disable 0 or 1 - */ -ODE_API void dBodySetAutoDisableFlag (dBodyID, int do_auto_disable); - -/** - * @brief Set auto disable defaults. - * @remarks - * Set the values for the body to those set as default for the world. - * @ingroup bodies disable - */ -ODE_API void dBodySetAutoDisableDefaults (dBodyID); - - -/** - * @brief Retrieves the world attached to te given body. - * @remarks - * - * @ingroup bodies - */ -ODE_API dWorldID dBodyGetWorld (dBodyID); - -/** - * @brief Create a body in given world. - * @remarks - * Default mass parameters are at position (0,0,0). - * @ingroup bodies - */ -ODE_API dBodyID dBodyCreate (dWorldID); - -/** - * @brief Destroy a body. - * @remarks - * All joints that are attached to this body will be put into limbo: - * i.e. unattached and not affecting the simulation, but they will NOT be - * deleted. - * @ingroup bodies - */ -ODE_API void dBodyDestroy (dBodyID); - -/** - * @brief Set the body's user-data pointer. - * @ingroup bodies - * @param data arbitraty pointer - */ -ODE_API void dBodySetData (dBodyID, void *data); - -/** - * @brief Get the body's user-data pointer. - * @ingroup bodies - * @return a pointer to the user's data. - */ -ODE_API void *dBodyGetData (dBodyID); - -/** - * @brief Set position of a body. - * @remarks - * After setting, the outcome of the simulation is undefined - * if the new configuration is inconsistent with the joints/constraints - * that are present. - * @ingroup bodies - */ -ODE_API void dBodySetPosition (dBodyID, dReal x, dReal y, dReal z); - -/** - * @brief Set the orientation of a body. - * @ingroup bodies - * @remarks - * After setting, the outcome of the simulation is undefined - * if the new configuration is inconsistent with the joints/constraints - * that are present. - */ -ODE_API void dBodySetRotation (dBodyID, const dMatrix3 R); - -/** - * @brief Set the orientation of a body. - * @ingroup bodies - * @remarks - * After setting, the outcome of the simulation is undefined - * if the new configuration is inconsistent with the joints/constraints - * that are present. - */ -ODE_API void dBodySetQuaternion (dBodyID, const dQuaternion q); - -/** - * @brief Set the linear velocity of a body. - * @ingroup bodies - */ -ODE_API void dBodySetLinearVel (dBodyID, dReal x, dReal y, dReal z); - -/** - * @brief Set the angular velocity of a body. - * @ingroup bodies - */ -ODE_API void dBodySetAngularVel (dBodyID, dReal x, dReal y, dReal z); - -/** - * @brief Get the position of a body. - * @ingroup bodies - * @remarks - * When getting, the returned values are pointers to internal data structures, - * so the vectors are valid until any changes are made to the rigid body - * system structure. - * @sa dBodyCopyPosition - */ -ODE_API const dReal * dBodyGetPosition (dBodyID); - - -/** - * @brief Copy the position of a body into a vector. - * @ingroup bodies - * @param body the body to query - * @param pos a copy of the body position - * @sa dBodyGetPosition - */ -ODE_API void dBodyCopyPosition (dBodyID body, dVector3 pos); - - -/** - * @brief Get the rotation of a body. - * @ingroup bodies - * @return pointer to a 4x3 rotation matrix. - */ -ODE_API const dReal * dBodyGetRotation (dBodyID); - - -/** - * @brief Copy the rotation of a body. - * @ingroup bodies - * @param body the body to query - * @param R a copy of the rotation matrix - * @sa dBodyGetRotation - */ -ODE_API void dBodyCopyRotation (dBodyID, dMatrix3 R); - - -/** - * @brief Get the rotation of a body. - * @ingroup bodies - * @return pointer to 4 scalars that represent the quaternion. - */ -ODE_API const dReal * dBodyGetQuaternion (dBodyID); - - -/** - * @brief Copy the orientation of a body into a quaternion. - * @ingroup bodies - * @param body the body to query - * @param quat a copy of the orientation quaternion - * @sa dBodyGetQuaternion - */ -ODE_API void dBodyCopyQuaternion(dBodyID body, dQuaternion quat); - - -/** - * @brief Get the linear velocity of a body. - * @ingroup bodies - */ -ODE_API const dReal * dBodyGetLinearVel (dBodyID); - -/** - * @brief Get the angular velocity of a body. - * @ingroup bodies - */ -ODE_API const dReal * dBodyGetAngularVel (dBodyID); - -/** - * @brief Set the mass of a body. - * @ingroup bodies - */ -ODE_API void dBodySetMass (dBodyID, const dMass *mass); - -/** - * @brief Get the mass of a body. - * @ingroup bodies - */ -ODE_API void dBodyGetMass (dBodyID, dMass *mass); - -/** - * @brief Add force at centre of mass of body in absolute coordinates. - * @ingroup bodies - */ -ODE_API void dBodyAddForce (dBodyID, dReal fx, dReal fy, dReal fz); - -/** - * @brief Add torque at centre of mass of body in absolute coordinates. - * @ingroup bodies - */ -ODE_API void dBodyAddTorque (dBodyID, dReal fx, dReal fy, dReal fz); - -/** - * @brief Add force at centre of mass of body in coordinates relative to body. - * @ingroup bodies - */ -ODE_API void dBodyAddRelForce (dBodyID, dReal fx, dReal fy, dReal fz); - -/** - * @brief Add torque at centre of mass of body in coordinates relative to body. - * @ingroup bodies - */ -ODE_API void dBodyAddRelTorque (dBodyID, dReal fx, dReal fy, dReal fz); - -/** - * @brief Add force at specified point in body in global coordinates. - * @ingroup bodies - */ -ODE_API void dBodyAddForceAtPos (dBodyID, dReal fx, dReal fy, dReal fz, - dReal px, dReal py, dReal pz); -/** - * @brief Add force at specified point in body in local coordinates. - * @ingroup bodies - */ -ODE_API void dBodyAddForceAtRelPos (dBodyID, dReal fx, dReal fy, dReal fz, - dReal px, dReal py, dReal pz); -/** - * @brief Add force at specified point in body in global coordinates. - * @ingroup bodies - */ -ODE_API void dBodyAddRelForceAtPos (dBodyID, dReal fx, dReal fy, dReal fz, - dReal px, dReal py, dReal pz); -/** - * @brief Add force at specified point in body in local coordinates. - * @ingroup bodies - */ -ODE_API void dBodyAddRelForceAtRelPos (dBodyID, dReal fx, dReal fy, dReal fz, - dReal px, dReal py, dReal pz); - -/** - * @brief Return the current accumulated force vector. - * @return points to an array of 3 reals. - * @remarks - * The returned values are pointers to internal data structures, so - * the vectors are only valid until any changes are made to the rigid - * body system. - * @ingroup bodies - */ -ODE_API const dReal * dBodyGetForce (dBodyID); - -/** - * @brief Return the current accumulated torque vector. - * @return points to an array of 3 reals. - * @remarks - * The returned values are pointers to internal data structures, so - * the vectors are only valid until any changes are made to the rigid - * body system. - * @ingroup bodies - */ -ODE_API const dReal * dBodyGetTorque (dBodyID); - -/** - * @brief Set the body force accumulation vector. - * @remarks - * This is mostly useful to zero the force and torque for deactivated bodies - * before they are reactivated, in the case where the force-adding functions - * were called on them while they were deactivated. - * @ingroup bodies - */ -ODE_API void dBodySetForce (dBodyID b, dReal x, dReal y, dReal z); - -/** - * @brief Set the body torque accumulation vector. - * @remarks - * This is mostly useful to zero the force and torque for deactivated bodies - * before they are reactivated, in the case where the force-adding functions - * were called on them while they were deactivated. - * @ingroup bodies - */ -ODE_API void dBodySetTorque (dBodyID b, dReal x, dReal y, dReal z); - -/** - * @brief Get world position of a relative point on body. - * @ingroup bodies - * @param result will contain the result. - */ -ODE_API void dBodyGetRelPointPos -( - dBodyID, dReal px, dReal py, dReal pz, - dVector3 result -); - -/** - * @brief Get velocity vector in global coords of a relative point on body. - * @ingroup bodies - * @param result will contain the result. - */ -ODE_API void dBodyGetRelPointVel -( - dBodyID, dReal px, dReal py, dReal pz, - dVector3 result -); - -/** - * @brief Get velocity vector in global coords of a globally - * specified point on a body. - * @ingroup bodies - * @param result will contain the result. - */ -ODE_API void dBodyGetPointVel -( - dBodyID, dReal px, dReal py, dReal pz, - dVector3 result -); - -/** - * @brief takes a point in global coordinates and returns - * the point's position in body-relative coordinates. - * @remarks - * This is the inverse of dBodyGetRelPointPos() - * @ingroup bodies - * @param result will contain the result. - */ -ODE_API void dBodyGetPosRelPoint -( - dBodyID, dReal px, dReal py, dReal pz, - dVector3 result -); - -/** - * @brief Convert from local to world coordinates. - * @ingroup bodies - * @param result will contain the result. - */ -ODE_API void dBodyVectorToWorld -( - dBodyID, dReal px, dReal py, dReal pz, - dVector3 result -); - -/** - * @brief Convert from world to local coordinates. - * @ingroup bodies - * @param result will contain the result. - */ -ODE_API void dBodyVectorFromWorld -( - dBodyID, dReal px, dReal py, dReal pz, - dVector3 result -); - -/** - * @brief controls the way a body's orientation is updated at each timestep. - * @ingroup bodies - * @param mode can be 0 or 1: - * \li 0: An ``infinitesimal'' orientation update is used. - * This is fast to compute, but it can occasionally cause inaccuracies - * for bodies that are rotating at high speed, especially when those - * bodies are joined to other bodies. - * This is the default for every new body that is created. - * \li 1: A ``finite'' orientation update is used. - * This is more costly to compute, but will be more accurate for high - * speed rotations. - * @remarks - * Note however that high speed rotations can result in many types of - * error in a simulation, and the finite mode will only fix one of those - * sources of error. - */ -ODE_API void dBodySetFiniteRotationMode (dBodyID, int mode); - -/** - * @brief sets the finite rotation axis for a body. - * @ingroup bodies - * @remarks - * This is axis only has meaning when the finite rotation mode is set - * If this axis is zero (0,0,0), full finite rotations are performed on - * the body. - * If this axis is nonzero, the body is rotated by performing a partial finite - * rotation along the axis direction followed by an infinitesimal rotation - * along an orthogonal direction. - * @remarks - * This can be useful to alleviate certain sources of error caused by quickly - * spinning bodies. For example, if a car wheel is rotating at high speed - * you can call this function with the wheel's hinge axis as the argument to - * try and improve its behavior. - */ -ODE_API void dBodySetFiniteRotationAxis (dBodyID, dReal x, dReal y, dReal z); - -/** - * @brief Get the way a body's orientation is updated each timestep. - * @ingroup bodies - * @return the mode 0 (infitesimal) or 1 (finite). - */ -ODE_API int dBodyGetFiniteRotationMode (dBodyID); - -/** - * @brief Get the finite rotation axis. - * @param result will contain the axis. - * @ingroup bodies - */ -ODE_API void dBodyGetFiniteRotationAxis (dBodyID, dVector3 result); - -/** - * @brief Get the number of joints that are attached to this body. - * @ingroup bodies - * @return nr of joints - */ -ODE_API int dBodyGetNumJoints (dBodyID b); - -/** - * @brief Return a joint attached to this body, given by index. - * @ingroup bodies - * @param index valid range is 0 to n-1 where n is the value returned by - * dBodyGetNumJoints(). - */ -ODE_API dJointID dBodyGetJoint (dBodyID, int index); - - - - -/** - * @brief Set rigid body to dynamic state (default). - * @param dBodyID identification of body. - * @ingroup bodies - */ -ODE_API void dBodySetDynamic (dBodyID); - -/** - * @brief Set rigid body to kinematic state. - * When in kinematic state the body isn't simulated as a dynamic - * body (it's "unstoppable", doesn't respond to forces), - * but can still affect dynamic bodies (e.g. in joints). - * Kinematic bodies can be controlled by position and velocity. - * @note A kinematic body has infinite mass. If you set its mass - * to something else, it loses the kinematic state and behaves - * as a normal dynamic body. - * @param dBodyID identification of body. - * @ingroup bodies - */ -ODE_API void dBodySetKinematic (dBodyID); - -/** - * @brief Check wether a body is in kinematic state. - * @ingroup bodies - * @return 1 if a body is kinematic or 0 if it is dynamic. - */ -ODE_API int dBodyIsKinematic (dBodyID); - -/** - * @brief Manually enable a body. - * @param dBodyID identification of body. - * @ingroup bodies - */ -ODE_API void dBodyEnable (dBodyID); - -/** - * @brief Manually disable a body. - * @ingroup bodies - * @remarks - * A disabled body that is connected through a joint to an enabled body will - * be automatically re-enabled at the next simulation step. - */ -ODE_API void dBodyDisable (dBodyID); - -/** - * @brief Check wether a body is enabled. - * @ingroup bodies - * @return 1 if a body is currently enabled or 0 if it is disabled. - */ -ODE_API int dBodyIsEnabled (dBodyID); - -/** - * @brief Set whether the body is influenced by the world's gravity or not. - * @ingroup bodies - * @param mode when nonzero gravity affects this body. - * @remarks - * Newly created bodies are always influenced by the world's gravity. - */ -ODE_API void dBodySetGravityMode (dBodyID b, int mode); - -/** - * @brief Get whether the body is influenced by the world's gravity or not. - * @ingroup bodies - * @return nonzero means gravity affects this body. - */ -ODE_API int dBodyGetGravityMode (dBodyID b); - -/** - * @brief Set the 'moved' callback of a body. - * - * Whenever a body has its position or rotation changed during the - * timestep, the callback will be called (with body as the argument). - * Use it to know which body may need an update in an external - * structure (like a 3D engine). - * - * @param b the body that needs to be watched. - * @param callback the callback to be invoked when the body moves. Set to zero - * to disable. - * @ingroup bodies - */ -ODE_API void dBodySetMovedCallback(dBodyID b, void (*callback)(dBodyID)); - - -/** - * @brief Return the first geom associated with the body. - * - * You can traverse through the geoms by repeatedly calling - * dBodyGetNextGeom(). - * - * @return the first geom attached to this body, or 0. - * @ingroup bodies - */ -ODE_API dGeomID dBodyGetFirstGeom (dBodyID b); - - -/** - * @brief returns the next geom associated with the same body. - * @param g a geom attached to some body. - * @return the next geom attached to the same body, or 0. - * @sa dBodyGetFirstGeom - * @ingroup bodies - */ -ODE_API dGeomID dBodyGetNextGeom (dGeomID g); - - -/** - * @brief Resets the damping settings to the current world's settings. - * @ingroup bodies damping - */ -ODE_API void dBodySetDampingDefaults(dBodyID b); - -/** - * @brief Get the body's linear damping scale. - * @ingroup bodies damping - */ -ODE_API dReal dBodyGetLinearDamping (dBodyID b); - -/** - * @brief Set the body's linear damping scale. - * @param scale The linear damping scale. Should be in the interval [0, 1]. - * @ingroup bodies damping - * @remarks From now on the body will not use the world's linear damping - * scale until dBodySetDampingDefaults() is called. - * @sa dBodySetDampingDefaults() - */ -ODE_API void dBodySetLinearDamping(dBodyID b, dReal scale); - -/** - * @brief Get the body's angular damping scale. - * @ingroup bodies damping - * @remarks If the body's angular damping scale was not set, this function - * returns the world's angular damping scale. - */ -ODE_API dReal dBodyGetAngularDamping (dBodyID b); - -/** - * @brief Set the body's angular damping scale. - * @param scale The angular damping scale. Should be in the interval [0, 1]. - * @ingroup bodies damping - * @remarks From now on the body will not use the world's angular damping - * scale until dBodyResetAngularDamping() is called. - * @sa dBodyResetAngularDamping() - */ -ODE_API void dBodySetAngularDamping(dBodyID b, dReal scale); - -/** - * @brief Convenience function to set linear and angular scales at once. - * @param linear_scale The linear damping scale. Should be in the interval [0, 1]. - * @param angular_scale The angular damping scale. Should be in the interval [0, 1]. - * @ingroup bodies damping - * @sa dBodySetLinearDamping() dBodySetAngularDamping() - */ -ODE_API void dBodySetDamping(dBodyID b, dReal linear_scale, dReal angular_scale); - -/** - * @brief Get the body's linear damping threshold. - * @ingroup bodies damping - */ -ODE_API dReal dBodyGetLinearDampingThreshold (dBodyID b); - -/** - * @brief Set the body's linear damping threshold. - * @param threshold The linear threshold to be used. Damping - * is only applied if the linear speed is above this limit. - * @ingroup bodies damping - */ -ODE_API void dBodySetLinearDampingThreshold(dBodyID b, dReal threshold); - -/** - * @brief Get the body's angular damping threshold. - * @ingroup bodies damping - */ -ODE_API dReal dBodyGetAngularDampingThreshold (dBodyID b); - -/** - * @brief Set the body's angular damping threshold. - * @param threshold The angular threshold to be used. Damping is - * only used if the angular speed is above this limit. - * @ingroup bodies damping - */ -ODE_API void dBodySetAngularDampingThreshold(dBodyID b, dReal threshold); - -/** - * @brief Get the body's maximum angular speed. - * @ingroup damping bodies - * @sa dWorldGetMaxAngularSpeed() - */ -ODE_API dReal dBodyGetMaxAngularSpeed (dBodyID b); - -/** - * @brief Set the body's maximum angular speed. - * @ingroup damping bodies - * @sa dWorldSetMaxAngularSpeed() dBodyResetMaxAngularSpeed() - * The default value is dInfinity, but it's a good idea to limit - * it at less than 500 if the body has the gyroscopic term - * enabled. - */ -ODE_API void dBodySetMaxAngularSpeed(dBodyID b, dReal max_speed); - - - -/** - * @brief Get the body's gyroscopic state. - * - * @return nonzero if gyroscopic term computation is enabled (default), - * zero otherwise. - * @ingroup bodies - */ -ODE_API int dBodyGetGyroscopicMode(dBodyID b); - - -/** - * @brief Enable/disable the body's gyroscopic term. - * - * Disabling the gyroscopic term of a body usually improves - * stability. It also helps turning spining objects, like cars' - * wheels. - * - * @param enabled nonzero (default) to enable gyroscopic term, 0 - * to disable. - * @ingroup bodies - */ -ODE_API void dBodySetGyroscopicMode(dBodyID b, int enabled); - - - - -/** - * @defgroup joints Joints - * - * In real life a joint is something like a hinge, that is used to connect two - * objects. - * In ODE a joint is very similar: It is a relationship that is enforced between - * two bodies so that they can only have certain positions and orientations - * relative to each other. - * This relationship is called a constraint -- the words joint and - * constraint are often used interchangeably. - * - * A joint has a set of parameters that can be set. These include: - * - * - * \li dParamLoStop Low stop angle or position. Setting this to - * -dInfinity (the default value) turns off the low stop. - * For rotational joints, this stop must be greater than -pi to be - * effective. - * \li dParamHiStop High stop angle or position. Setting this to - * dInfinity (the default value) turns off the high stop. - * For rotational joints, this stop must be less than pi to be - * effective. - * If the high stop is less than the low stop then both stops will - * be ineffective. - * \li dParamVel Desired motor velocity (this will be an angular or - * linear velocity). - * \li dParamFMax The maximum force or torque that the motor will use to - * achieve the desired velocity. - * This must always be greater than or equal to zero. - * Setting this to zero (the default value) turns off the motor. - * \li dParamFudgeFactor The current joint stop/motor implementation has - * a small problem: - * when the joint is at one stop and the motor is set to move it away - * from the stop, too much force may be applied for one time step, - * causing a ``jumping'' motion. - * This fudge factor is used to scale this excess force. - * It should have a value between zero and one (the default value). - * If the jumping motion is too visible in a joint, the value can be - * reduced. - * Making this value too small can prevent the motor from being able to - * move the joint away from a stop. - * \li dParamBounce The bouncyness of the stops. - * This is a restitution parameter in the range 0..1. - * 0 means the stops are not bouncy at all, 1 means maximum bouncyness. - * \li dParamCFM The constraint force mixing (CFM) value used when not - * at a stop. - * \li dParamStopERP The error reduction parameter (ERP) used by the - * stops. - * \li dParamStopCFM The constraint force mixing (CFM) value used by the - * stops. Together with the ERP value this can be used to get spongy or - * soft stops. - * Note that this is intended for unpowered joints, it does not really - * work as expected when a powered joint reaches its limit. - * \li dParamSuspensionERP Suspension error reduction parameter (ERP). - * Currently this is only implemented on the hinge-2 joint. - * \li dParamSuspensionCFM Suspension constraint force mixing (CFM) value. - * Currently this is only implemented on the hinge-2 joint. - * - * If a particular parameter is not implemented by a given joint, setting it - * will have no effect. - * These parameter names can be optionally followed by a digit (2 or 3) - * to indicate the second or third set of parameters, e.g. for the second axis - * in a hinge-2 joint, or the third axis in an AMotor joint. - */ - - -/** - * @brief Create a new joint of the ball type. - * @ingroup joints - * @remarks - * The joint is initially in "limbo" (i.e. it has no effect on the simulation) - * because it does not connect to any bodies. - * @param dJointGroupID set to 0 to allocate the joint normally. - * If it is nonzero the joint is allocated in the given joint group. - */ -ODE_API dJointID dJointCreateBall (dWorldID, dJointGroupID); - -/** - * @brief Create a new joint of the hinge type. - * @ingroup joints - * @param dJointGroupID set to 0 to allocate the joint normally. - * If it is nonzero the joint is allocated in the given joint group. - */ -ODE_API dJointID dJointCreateHinge (dWorldID, dJointGroupID); - -/** - * @brief Create a new joint of the slider type. - * @ingroup joints - * @param dJointGroupID set to 0 to allocate the joint normally. - * If it is nonzero the joint is allocated in the given joint group. - */ -ODE_API dJointID dJointCreateSlider (dWorldID, dJointGroupID); - -/** - * @brief Create a new joint of the contact type. - * @ingroup joints - * @param dJointGroupID set to 0 to allocate the joint normally. - * If it is nonzero the joint is allocated in the given joint group. - */ -ODE_API dJointID dJointCreateContact (dWorldID, dJointGroupID, const dContact *); - -/** - * @brief Create a new joint of the hinge2 type. - * @ingroup joints - * @param dJointGroupID set to 0 to allocate the joint normally. - * If it is nonzero the joint is allocated in the given joint group. - */ -ODE_API dJointID dJointCreateHinge2 (dWorldID, dJointGroupID); - -/** - * @brief Create a new joint of the universal type. - * @ingroup joints - * @param dJointGroupID set to 0 to allocate the joint normally. - * If it is nonzero the joint is allocated in the given joint group. - */ -ODE_API dJointID dJointCreateUniversal (dWorldID, dJointGroupID); - -/** - * @brief Create a new joint of the PR (Prismatic and Rotoide) type. - * @ingroup joints - * @param dJointGroupID set to 0 to allocate the joint normally. - * If it is nonzero the joint is allocated in the given joint group. - */ -ODE_API dJointID dJointCreatePR (dWorldID, dJointGroupID); - - /** - * @brief Create a new joint of the PU (Prismatic and Universal) type. - * @ingroup joints - * @param dJointGroupID set to 0 to allocate the joint normally. - * If it is nonzero the joint is allocated in the given joint group. - */ - ODE_API dJointID dJointCreatePU (dWorldID, dJointGroupID); - - /** - * @brief Create a new joint of the Piston type. - * @ingroup joints - * @param dJointGroupID set to 0 to allocate the joint normally. - * If it is nonzero the joint is allocated in the given - * joint group. - */ - ODE_API dJointID dJointCreatePiston (dWorldID, dJointGroupID); - -/** - * @brief Create a new joint of the fixed type. - * @ingroup joints - * @param dJointGroupID set to 0 to allocate the joint normally. - * If it is nonzero the joint is allocated in the given joint group. - */ -ODE_API dJointID dJointCreateFixed (dWorldID, dJointGroupID); - -ODE_API dJointID dJointCreateNull (dWorldID, dJointGroupID); - -/** - * @brief Create a new joint of the A-motor type. - * @ingroup joints - * @param dJointGroupID set to 0 to allocate the joint normally. - * If it is nonzero the joint is allocated in the given joint group. - */ -ODE_API dJointID dJointCreateAMotor (dWorldID, dJointGroupID); - -/** - * @brief Create a new joint of the L-motor type. - * @ingroup joints - * @param dJointGroupID set to 0 to allocate the joint normally. - * If it is nonzero the joint is allocated in the given joint group. - */ -ODE_API dJointID dJointCreateLMotor (dWorldID, dJointGroupID); - -/** - * @brief Create a new joint of the plane-2d type. - * @ingroup joints - * @param dJointGroupID set to 0 to allocate the joint normally. - * If it is nonzero the joint is allocated in the given joint group. - */ -ODE_API dJointID dJointCreatePlane2D (dWorldID, dJointGroupID); - -/** - * @brief Destroy a joint. - * @ingroup joints - * - * disconnects it from its attached bodies and removing it from the world. - * However, if the joint is a member of a group then this function has no - * effect - to destroy that joint the group must be emptied or destroyed. - */ -ODE_API void dJointDestroy (dJointID); - - -/** - * @brief Create a joint group - * @ingroup joints - * @param max_size deprecated. Set to 0. - */ -ODE_API dJointGroupID dJointGroupCreate (int max_size); - -/** - * @brief Destroy a joint group. - * @ingroup joints - * - * All joints in the joint group will be destroyed. - */ -ODE_API void dJointGroupDestroy (dJointGroupID); - -/** - * @brief Empty a joint group. - * @ingroup joints - * - * All joints in the joint group will be destroyed, - * but the joint group itself will not be destroyed. - */ -ODE_API void dJointGroupEmpty (dJointGroupID); - -/** - * @brief Return the number of bodies attached to the joint - * @ingroup joints - */ -ODE_API int dJointGetNumBodies(dJointID); - -/** - * @brief Attach the joint to some new bodies. - * @ingroup joints - * - * If the joint is already attached, it will be detached from the old bodies - * first. - * To attach this joint to only one body, set body1 or body2 to zero - a zero - * body refers to the static environment. - * Setting both bodies to zero puts the joint into "limbo", i.e. it will - * have no effect on the simulation. - * @remarks - * Some joints, like hinge-2 need to be attached to two bodies to work. - */ -ODE_API void dJointAttach (dJointID, dBodyID body1, dBodyID body2); - -/** - * @brief Manually enable a joint. - * @param dJointID identification of joint. - * @ingroup joints - */ -ODE_API void dJointEnable (dJointID); - -/** - * @brief Manually disable a joint. - * @ingroup joints - * @remarks - * A disabled joint will not affect the simulation, but will maintain the anchors and - * axes so it can be enabled later. - */ -ODE_API void dJointDisable (dJointID); - -/** - * @brief Check wether a joint is enabled. - * @ingroup joints - * @return 1 if a joint is currently enabled or 0 if it is disabled. - */ -ODE_API int dJointIsEnabled (dJointID); - -/** - * @brief Set the user-data pointer - * @ingroup joints - */ -ODE_API void dJointSetData (dJointID, void *data); - -/** - * @brief Get the user-data pointer - * @ingroup joints - */ -ODE_API void *dJointGetData (dJointID); - -/** - * @brief Get the type of the joint - * @ingroup joints - * @return the type, being one of these: - * \li dJointTypeBall - * \li dJointTypeHinge - * \li dJointTypeSlider - * \li dJointTypeContact - * \li dJointTypeUniversal - * \li dJointTypeHinge2 - * \li dJointTypeFixed - * \li dJointTypeNull - * \li dJointTypeAMotor - * \li dJointTypeLMotor - * \li dJointTypePlane2D - * \li dJointTypePR - * \li dJointTypePU - * \li dJointTypePiston - */ -ODE_API dJointType dJointGetType (dJointID); - -/** - * @brief Return the bodies that this joint connects. - * @ingroup joints - * @param index return the first (0) or second (1) body. - * @remarks - * If one of these returned body IDs is zero, the joint connects the other body - * to the static environment. - * If both body IDs are zero, the joint is in ``limbo'' and has no effect on - * the simulation. - */ -ODE_API dBodyID dJointGetBody (dJointID, int index); - -/** - * @brief Sets the datastructure that is to receive the feedback. - * - * The feedback can be used by the user, so that it is known how - * much force an individual joint exerts. - * @ingroup joints - */ -ODE_API void dJointSetFeedback (dJointID, dJointFeedback *); - -/** - * @brief Gets the datastructure that is to receive the feedback. - * @ingroup joints - */ -ODE_API dJointFeedback *dJointGetFeedback (dJointID); - -/** - * @brief Set the joint anchor point. - * @ingroup joints - * - * The joint will try to keep this point on each body - * together. The input is specified in world coordinates. - */ -ODE_API void dJointSetBallAnchor (dJointID, dReal x, dReal y, dReal z); - -/** - * @brief Set the joint anchor point. - * @ingroup joints - */ -ODE_API void dJointSetBallAnchor2 (dJointID, dReal x, dReal y, dReal z); - -/** - * @brief Param setting for Ball joints - * @ingroup joints - */ -ODE_API void dJointSetBallParam (dJointID, int parameter, dReal value); - -/** - * @brief Set hinge anchor parameter. - * @ingroup joints - */ -ODE_API void dJointSetHingeAnchor (dJointID, dReal x, dReal y, dReal z); - -ODE_API void dJointSetHingeAnchorDelta (dJointID, dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az); - -/** - * @brief Set hinge axis. - * @ingroup joints - */ -ODE_API void dJointSetHingeAxis (dJointID, dReal x, dReal y, dReal z); - -/** - * @brief Set the Hinge axis as if the 2 bodies were already at angle appart. - * @ingroup joints - * - * This function initialize the Axis and the relative orientation of each body - * as if body1 was rotated around the axis by the angle value. \br - * Ex: - *

- * dJointSetHingeAxis(jId, 1, 0, 0);
- * // If you request the position you will have: dJointGetHingeAngle(jId) == 0
- * dJointSetHingeAxisDelta(jId, 1, 0, 0, 0.23);
- * // If you request the position you will have: dJointGetHingeAngle(jId) == 0.23
- * 
- - * @param j The Hinge joint ID for which the axis will be set - * @param x The X component of the axis in world frame - * @param y The Y component of the axis in world frame - * @param z The Z component of the axis in world frame - * @param angle The angle for the offset of the relative orientation. - * As if body1 was rotated by angle when the Axis was set (see below). - * The rotation is around the new Hinge axis. - * - * @note Usually the function dJointSetHingeAxis set the current position of body1 - * and body2 as the zero angle position. This function set the current position - * as the if the 2 bodies where \b angle appart. - * @warning Calling dJointSetHingeAnchor or dJointSetHingeAxis will reset the "zero" - * angle position. - */ -ODE_API void dJointSetHingeAxisOffset (dJointID j, dReal x, dReal y, dReal z, dReal angle); - -/** - * @brief set joint parameter - * @ingroup joints - */ -ODE_API void dJointSetHingeParam (dJointID, int parameter, dReal value); - -/** - * @brief Applies the torque about the hinge axis. - * - * That is, it applies a torque with specified magnitude in the direction - * of the hinge axis, to body 1, and with the same magnitude but in opposite - * direction to body 2. This function is just a wrapper for dBodyAddTorque()} - * @ingroup joints - */ -ODE_API void dJointAddHingeTorque(dJointID joint, dReal torque); - -/** - * @brief set the joint axis - * @ingroup joints - */ -ODE_API void dJointSetSliderAxis (dJointID, dReal x, dReal y, dReal z); - -/** - * @ingroup joints - */ -ODE_API void dJointSetSliderAxisDelta (dJointID, dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az); - -/** - * @brief set joint parameter - * @ingroup joints - */ -ODE_API void dJointSetSliderParam (dJointID, int parameter, dReal value); - -/** - * @brief Applies the given force in the slider's direction. - * - * That is, it applies a force with specified magnitude, in the direction of - * slider's axis, to body1, and with the same magnitude but opposite - * direction to body2. This function is just a wrapper for dBodyAddForce(). - * @ingroup joints - */ -ODE_API void dJointAddSliderForce(dJointID joint, dReal force); - -/** - * @brief set anchor - * @ingroup joints - */ -ODE_API void dJointSetHinge2Anchor (dJointID, dReal x, dReal y, dReal z); - -/** - * @brief set axis - * @ingroup joints - */ -ODE_API void dJointSetHinge2Axis1 (dJointID, dReal x, dReal y, dReal z); - -/** - * @brief set axis - * @ingroup joints - */ -ODE_API void dJointSetHinge2Axis2 (dJointID, dReal x, dReal y, dReal z); - -/** - * @brief set joint parameter - * @ingroup joints - */ -ODE_API void dJointSetHinge2Param (dJointID, int parameter, dReal value); - -/** - * @brief Applies torque1 about the hinge2's axis 1, torque2 about the - * hinge2's axis 2. - * @remarks This function is just a wrapper for dBodyAddTorque(). - * @ingroup joints - */ -ODE_API void dJointAddHinge2Torques(dJointID joint, dReal torque1, dReal torque2); - -/** - * @brief set anchor - * @ingroup joints - */ -ODE_API void dJointSetUniversalAnchor (dJointID, dReal x, dReal y, dReal z); - -/** - * @brief set axis - * @ingroup joints - */ -ODE_API void dJointSetUniversalAxis1 (dJointID, dReal x, dReal y, dReal z); - -/** - * @brief Set the Universal axis1 as if the 2 bodies were already at - * offset1 and offset2 appart with respect to axis1 and axis2. - * @ingroup joints - * - * This function initialize the axis1 and the relative orientation of - * each body as if body1 was rotated around the new axis1 by the offset1 - * value and as if body2 was rotated around the axis2 by offset2. \br - * Ex: -*
- * dJointSetHuniversalAxis1(jId, 1, 0, 0);
- * // If you request the position you will have: dJointGetUniversalAngle1(jId) == 0
- * // If you request the position you will have: dJointGetUniversalAngle2(jId) == 0
- * dJointSetHuniversalAxis1Offset(jId, 1, 0, 0, 0.2, 0.17);
- * // If you request the position you will have: dJointGetUniversalAngle1(jId) == 0.2
- * // If you request the position you will have: dJointGetUniversalAngle2(jId) == 0.17
- * 
- * - * @param j The Hinge joint ID for which the axis will be set - * @param x The X component of the axis in world frame - * @param y The Y component of the axis in world frame - * @param z The Z component of the axis in world frame - * @param angle The angle for the offset of the relative orientation. - * As if body1 was rotated by angle when the Axis was set (see below). - * The rotation is around the new Hinge axis. - * - * @note Usually the function dJointSetHingeAxis set the current position of body1 - * and body2 as the zero angle position. This function set the current position - * as the if the 2 bodies where \b offsets appart. - * - * @note Any previous offsets are erased. - * - * @warning Calling dJointSetUniversalAnchor, dJointSetUnivesalAxis1, - * dJointSetUniversalAxis2, dJointSetUniversalAxis2Offset - * will reset the "zero" angle position. - */ -ODE_API void dJointSetUniversalAxis1Offset (dJointID, dReal x, dReal y, dReal z, - dReal offset1, dReal offset2); - -/** - * @brief set axis - * @ingroup joints - */ -ODE_API void dJointSetUniversalAxis2 (dJointID, dReal x, dReal y, dReal z); - -/** - * @brief Set the Universal axis2 as if the 2 bodies were already at - * offset1 and offset2 appart with respect to axis1 and axis2. - * @ingroup joints - * - * This function initialize the axis2 and the relative orientation of - * each body as if body1 was rotated around the axis1 by the offset1 - * value and as if body2 was rotated around the new axis2 by offset2. \br - * Ex: - *
- * dJointSetHuniversalAxis2(jId, 0, 1, 0);
- * // If you request the position you will have: dJointGetUniversalAngle1(jId) == 0
- * // If you request the position you will have: dJointGetUniversalAngle2(jId) == 0
- * dJointSetHuniversalAxis2Offset(jId, 0, 1, 0, 0.2, 0.17);
- * // If you request the position you will have: dJointGetUniversalAngle1(jId) == 0.2
- * // If you request the position you will have: dJointGetUniversalAngle2(jId) == 0.17
- * 
- - * @param j The Hinge joint ID for which the axis will be set - * @param x The X component of the axis in world frame - * @param y The Y component of the axis in world frame - * @param z The Z component of the axis in world frame - * @param angle The angle for the offset of the relative orientation. - * As if body1 was rotated by angle when the Axis was set (see below). - * The rotation is around the new Hinge axis. - * - * @note Usually the function dJointSetHingeAxis set the current position of body1 - * and body2 as the zero angle position. This function set the current position - * as the if the 2 bodies where \b offsets appart. - * - * @note Any previous offsets are erased. - * - * @warning Calling dJointSetUniversalAnchor, dJointSetUnivesalAxis1, - * dJointSetUniversalAxis2, dJointSetUniversalAxis2Offset - * will reset the "zero" angle position. - */ - - -ODE_API void dJointSetUniversalAxis2Offset (dJointID, dReal x, dReal y, dReal z, - dReal offset1, dReal offset2); - -/** - * @brief set joint parameter - * @ingroup joints - */ -ODE_API void dJointSetUniversalParam (dJointID, int parameter, dReal value); - -/** - * @brief Applies torque1 about the universal's axis 1, torque2 about the - * universal's axis 2. - * @remarks This function is just a wrapper for dBodyAddTorque(). - * @ingroup joints - */ -ODE_API void dJointAddUniversalTorques(dJointID joint, dReal torque1, dReal torque2); - - -/** - * @brief set anchor - * @ingroup joints - */ -ODE_API void dJointSetPRAnchor (dJointID, dReal x, dReal y, dReal z); - -/** - * @brief set the axis for the prismatic articulation - * @ingroup joints - */ -ODE_API void dJointSetPRAxis1 (dJointID, dReal x, dReal y, dReal z); - -/** - * @brief set the axis for the rotoide articulation - * @ingroup joints - */ -ODE_API void dJointSetPRAxis2 (dJointID, dReal x, dReal y, dReal z); - -/** - * @brief set joint parameter - * @ingroup joints - * - * @note parameterX where X equal 2 refer to parameter for the rotoide articulation - */ -ODE_API void dJointSetPRParam (dJointID, int parameter, dReal value); - -/** - * @brief Applies the torque about the rotoide axis of the PR joint - * - * That is, it applies a torque with specified magnitude in the direction - * of the rotoide axis, to body 1, and with the same magnitude but in opposite - * direction to body 2. This function is just a wrapper for dBodyAddTorque()} - * @ingroup joints - */ -ODE_API void dJointAddPRTorque (dJointID j, dReal torque); - - - /** - * @brief set anchor - * @ingroup joints - */ - ODE_API void dJointSetPUAnchor (dJointID, dReal x, dReal y, dReal z); - - /** - * @brief set anchor - * @ingroup joints - */ - ODE_API_DEPRECATED ODE_API void dJointSetPUAnchorDelta (dJointID, dReal x, dReal y, dReal z, - dReal dx, dReal dy, dReal dz); - - /** - * @brief Set the PU anchor as if the 2 bodies were already at [dx, dy, dz] appart. - * @ingroup joints - * - * This function initialize the anchor and the relative position of each body - * as if the position between body1 and body2 was already the projection of [dx, dy, dz] - * along the Piston axis. (i.e as if the body1 was at its current position - [dx,dy,dy] when the - * axis is set). - * Ex: - *
-   * dReal offset = 3;
-   * dVector3 axis;
-   * dJointGetPUAxis(jId, axis);
-   * dJointSetPUAnchor(jId, 0, 0, 0);
-   * // If you request the position you will have: dJointGetPUPosition(jId) == 0
-   * dJointSetPUAnchorOffset(jId, 0, 0, 0, axis[X]*offset, axis[Y]*offset, axis[Z]*offset);
-   * // If you request the position you will have: dJointGetPUPosition(jId) == offset
-   * 
- * @param j The PU joint for which the anchor point will be set - * @param x The X position of the anchor point in world frame - * @param y The Y position of the anchor point in world frame - * @param z The Z position of the anchor point in world frame - * @param dx A delta to be substracted to the X position as if the anchor was set - * when body1 was at current_position[X] - dx - * @param dx A delta to be substracted to the Y position as if the anchor was set - * when body1 was at current_position[Y] - dy - * @param dx A delta to be substracted to the Z position as if the anchor was set - * when body1 was at current_position[Z] - dz - */ - ODE_API void dJointSetPUAnchorOffset (dJointID, dReal x, dReal y, dReal z, - dReal dx, dReal dy, dReal dz); - - /** - * @brief set the axis for the first axis or the universal articulation - * @ingroup joints - */ - ODE_API void dJointSetPUAxis1 (dJointID, dReal x, dReal y, dReal z); - - /** - * @brief set the axis for the second axis or the universal articulation - * @ingroup joints - */ - ODE_API void dJointSetPUAxis2 (dJointID, dReal x, dReal y, dReal z); - - /** - * @brief set the axis for the prismatic articulation - * @ingroup joints - */ - ODE_API void dJointSetPUAxis3 (dJointID, dReal x, dReal y, dReal z); - - /** - * @brief set the axis for the prismatic articulation - * @ingroup joints - * @note This function was added for convenience it is the same as - * dJointSetPUAxis3 - */ - ODE_API void dJointSetPUAxisP (dJointID id, dReal x, dReal y, dReal z); - - - - /** - * @brief set joint parameter - * @ingroup joints - * - * @note parameterX where X equal 2 refer to parameter for second axis of the - * universal articulation - * @note parameterX where X equal 3 refer to parameter for prismatic - * articulation - */ - ODE_API void dJointSetPUParam (dJointID, int parameter, dReal value); - - /** - * @brief Applies the torque about the rotoide axis of the PU joint - * - * That is, it applies a torque with specified magnitude in the direction - * of the rotoide axis, to body 1, and with the same magnitude but in opposite - * direction to body 2. This function is just a wrapper for dBodyAddTorque()} - * @ingroup joints - */ - ODE_API void dJointAddPUTorque (dJointID j, dReal torque); - - - - - /** - * @brief set the joint anchor - * @ingroup joints - */ - ODE_API void dJointSetPistonAnchor (dJointID, dReal x, dReal y, dReal z); - - /** - * @brief Set the Piston anchor as if the 2 bodies were already at [dx,dy, dz] appart. - * @ingroup joints - * - * This function initialize the anchor and the relative position of each body - * as if the position between body1 and body2 was already the projection of [dx, dy, dz] - * along the Piston axis. (i.e as if the body1 was at its current position - [dx,dy,dy] when the - * axis is set). - * Ex: - *
-   * dReal offset = 3;
-   * dVector3 axis;
-   * dJointGetPistonAxis(jId, axis);
-   * dJointSetPistonAnchor(jId, 0, 0, 0);
-   * // If you request the position you will have: dJointGetPistonPosition(jId) == 0
-   * dJointSetPistonAnchorOffset(jId, 0, 0, 0, axis[X]*offset, axis[Y]*offset, axis[Z]*offset);
-   * // If you request the position you will have: dJointGetPistonPosition(jId) == offset
-   * 
- * @param j The Piston joint for which the anchor point will be set - * @param x The X position of the anchor point in world frame - * @param y The Y position of the anchor point in world frame - * @param z The Z position of the anchor point in world frame - * @param dx A delta to be substracted to the X position as if the anchor was set - * when body1 was at current_position[X] - dx - * @param dx A delta to be substracted to the Y position as if the anchor was set - * when body1 was at current_position[Y] - dy - * @param dx A delta to be substracted to the Z position as if the anchor was set - * when body1 was at current_position[Z] - dz - */ - ODE_API void dJointSetPistonAnchorOffset(dJointID j, dReal x, dReal y, dReal z, - dReal dx, dReal dy, dReal dz); - - /** - * @brief set the joint axis - * @ingroup joints - */ - ODE_API void dJointSetPistonAxis (dJointID, dReal x, dReal y, dReal z); - - /** - * This function set prismatic axis of the joint and also set the position - * of the joint. - * - * @ingroup joints - * @param j The joint affected by this function - * @param x The x component of the axis - * @param y The y component of the axis - * @param z The z component of the axis - * @param dx The Initial position of the prismatic join in the x direction - * @param dy The Initial position of the prismatic join in the y direction - * @param dz The Initial position of the prismatic join in the z direction - */ - ODE_API_DEPRECATED ODE_API void dJointSetPistonAxisDelta (dJointID j, dReal x, dReal y, dReal z, dReal ax, dReal ay, dReal az); - - /** - * @brief set joint parameter - * @ingroup joints - */ - ODE_API void dJointSetPistonParam (dJointID, int parameter, dReal value); - - /** - * @brief Applies the given force in the slider's direction. - * - * That is, it applies a force with specified magnitude, in the direction of - * prismatic's axis, to body1, and with the same magnitude but opposite - * direction to body2. This function is just a wrapper for dBodyAddForce(). - * @ingroup joints - */ - ODE_API void dJointAddPistonForce (dJointID joint, dReal force); - - -/** - * @brief Call this on the fixed joint after it has been attached to - * remember the current desired relative offset and desired relative - * rotation between the bodies. - * @ingroup joints - */ -ODE_API void dJointSetFixed (dJointID); - -/* - * @brief Sets joint parameter - * - * @ingroup joints - */ -ODE_API void dJointSetFixedParam (dJointID, int parameter, dReal value); - -/** - * @brief set the nr of axes - * @param num 0..3 - * @ingroup joints - */ -ODE_API void dJointSetAMotorNumAxes (dJointID, int num); - -/** - * @brief set axis - * @ingroup joints - */ -ODE_API void dJointSetAMotorAxis (dJointID, int anum, int rel, - dReal x, dReal y, dReal z); - -/** - * @brief Tell the AMotor what the current angle is along axis anum. - * - * This function should only be called in dAMotorUser mode, because in this - * mode the AMotor has no other way of knowing the joint angles. - * The angle information is needed if stops have been set along the axis, - * but it is not needed for axis motors. - * @ingroup joints - */ -ODE_API void dJointSetAMotorAngle (dJointID, int anum, dReal angle); - -/** - * @brief set joint parameter - * @ingroup joints - */ -ODE_API void dJointSetAMotorParam (dJointID, int parameter, dReal value); - -/** - * @brief set mode - * @ingroup joints - */ -ODE_API void dJointSetAMotorMode (dJointID, int mode); - -/** - * @brief Applies torque0 about the AMotor's axis 0, torque1 about the - * AMotor's axis 1, and torque2 about the AMotor's axis 2. - * @remarks - * If the motor has fewer than three axes, the higher torques are ignored. - * This function is just a wrapper for dBodyAddTorque(). - * @ingroup joints - */ -ODE_API void dJointAddAMotorTorques (dJointID, dReal torque1, dReal torque2, dReal torque3); - -/** - * @brief Set the number of axes that will be controlled by the LMotor. - * @param num can range from 0 (which effectively deactivates the joint) to 3. - * @ingroup joints - */ -ODE_API void dJointSetLMotorNumAxes (dJointID, int num); - -/** - * @brief Set the AMotor axes. - * @param anum selects the axis to change (0,1 or 2). - * @param rel Each axis can have one of three ``relative orientation'' modes - * \li 0: The axis is anchored to the global frame. - * \li 1: The axis is anchored to the first body. - * \li 2: The axis is anchored to the second body. - * @remarks The axis vector is always specified in global coordinates - * regardless of the setting of rel. - * @ingroup joints - */ -ODE_API void dJointSetLMotorAxis (dJointID, int anum, int rel, dReal x, dReal y, dReal z); - -/** - * @brief set joint parameter - * @ingroup joints - */ -ODE_API void dJointSetLMotorParam (dJointID, int parameter, dReal value); - -/** - * @ingroup joints - */ -ODE_API void dJointSetPlane2DXParam (dJointID, int parameter, dReal value); - -/** - * @ingroup joints - */ - -ODE_API void dJointSetPlane2DYParam (dJointID, int parameter, dReal value); - -/** - * @ingroup joints - */ -ODE_API void dJointSetPlane2DAngleParam (dJointID, int parameter, dReal value); - -/** - * @brief Get the joint anchor point, in world coordinates. - * - * This returns the point on body 1. If the joint is perfectly satisfied, - * this will be the same as the point on body 2. - */ -ODE_API void dJointGetBallAnchor (dJointID, dVector3 result); - -/** - * @brief Get the joint anchor point, in world coordinates. - * - * This returns the point on body 2. You can think of a ball and socket - * joint as trying to keep the result of dJointGetBallAnchor() and - * dJointGetBallAnchor2() the same. If the joint is perfectly satisfied, - * this function will return the same value as dJointGetBallAnchor() to - * within roundoff errors. dJointGetBallAnchor2() can be used, along with - * dJointGetBallAnchor(), to see how far the joint has come apart. - */ -ODE_API void dJointGetBallAnchor2 (dJointID, dVector3 result); - -/** - * @brief get joint parameter - * @ingroup joints - */ -ODE_API dReal dJointGetBallParam (dJointID, int parameter); - -/** - * @brief Get the hinge anchor point, in world coordinates. - * - * This returns the point on body 1. If the joint is perfectly satisfied, - * this will be the same as the point on body 2. - * @ingroup joints - */ -ODE_API void dJointGetHingeAnchor (dJointID, dVector3 result); - -/** - * @brief Get the joint anchor point, in world coordinates. - * @return The point on body 2. If the joint is perfectly satisfied, - * this will return the same value as dJointGetHingeAnchor(). - * If not, this value will be slightly different. - * This can be used, for example, to see how far the joint has come apart. - * @ingroup joints - */ -ODE_API void dJointGetHingeAnchor2 (dJointID, dVector3 result); - -/** - * @brief get axis - * @ingroup joints - */ -ODE_API void dJointGetHingeAxis (dJointID, dVector3 result); - -/** - * @brief get joint parameter - * @ingroup joints - */ -ODE_API dReal dJointGetHingeParam (dJointID, int parameter); - -/** - * @brief Get the hinge angle. - * - * The angle is measured between the two bodies, or between the body and - * the static environment. - * The angle will be between -pi..pi. - * Give the relative rotation with respect to the Hinge axis of Body 1 with - * respect to Body 2. - * When the hinge anchor or axis is set, the current position of the attached - * bodies is examined and that position will be the zero angle. - * @ingroup joints - */ -ODE_API dReal dJointGetHingeAngle (dJointID); - -/** - * @brief Get the hinge angle time derivative. - * @ingroup joints - */ -ODE_API dReal dJointGetHingeAngleRate (dJointID); - -/** - * @brief Get the slider linear position (i.e. the slider's extension) - * - * When the axis is set, the current position of the attached bodies is - * examined and that position will be the zero position. - - * The position is the distance, with respect to the zero position, - * along the slider axis of body 1 with respect to - * body 2. (A NULL body is replaced by the world). - * @ingroup joints - */ -ODE_API dReal dJointGetSliderPosition (dJointID); - -/** - * @brief Get the slider linear position's time derivative. - * @ingroup joints - */ -ODE_API dReal dJointGetSliderPositionRate (dJointID); - -/** - * @brief Get the slider axis - * @ingroup joints - */ -ODE_API void dJointGetSliderAxis (dJointID, dVector3 result); - -/** - * @brief get joint parameter - * @ingroup joints - */ -ODE_API dReal dJointGetSliderParam (dJointID, int parameter); - -/** - * @brief Get the joint anchor point, in world coordinates. - * @return the point on body 1. If the joint is perfectly satisfied, - * this will be the same as the point on body 2. - * @ingroup joints - */ -ODE_API void dJointGetHinge2Anchor (dJointID, dVector3 result); - -/** - * @brief Get the joint anchor point, in world coordinates. - * This returns the point on body 2. If the joint is perfectly satisfied, - * this will return the same value as dJointGetHinge2Anchor. - * If not, this value will be slightly different. - * This can be used, for example, to see how far the joint has come apart. - * @ingroup joints - */ -ODE_API void dJointGetHinge2Anchor2 (dJointID, dVector3 result); - -/** - * @brief Get joint axis - * @ingroup joints - */ -ODE_API void dJointGetHinge2Axis1 (dJointID, dVector3 result); - -/** - * @brief Get joint axis - * @ingroup joints - */ -ODE_API void dJointGetHinge2Axis2 (dJointID, dVector3 result); - -/** - * @brief get joint parameter - * @ingroup joints - */ -ODE_API dReal dJointGetHinge2Param (dJointID, int parameter); - -/** - * @brief Get angle - * @ingroup joints - */ -ODE_API dReal dJointGetHinge2Angle1 (dJointID); - -/** - * @brief Get time derivative of angle - * @ingroup joints - */ -ODE_API dReal dJointGetHinge2Angle1Rate (dJointID); - -/** - * @brief Get time derivative of angle - * @ingroup joints - */ -ODE_API dReal dJointGetHinge2Angle2Rate (dJointID); - -/** - * @brief Get the joint anchor point, in world coordinates. - * @return the point on body 1. If the joint is perfectly satisfied, - * this will be the same as the point on body 2. - * @ingroup joints - */ -ODE_API void dJointGetUniversalAnchor (dJointID, dVector3 result); - -/** - * @brief Get the joint anchor point, in world coordinates. - * @return This returns the point on body 2. - * @remarks - * You can think of the ball and socket part of a universal joint as - * trying to keep the result of dJointGetBallAnchor() and - * dJointGetBallAnchor2() the same. If the joint is - * perfectly satisfied, this function will return the same value - * as dJointGetUniversalAnchor() to within roundoff errors. - * dJointGetUniversalAnchor2() can be used, along with - * dJointGetUniversalAnchor(), to see how far the joint has come apart. - * @ingroup joints - */ -ODE_API void dJointGetUniversalAnchor2 (dJointID, dVector3 result); - -/** - * @brief Get axis - * @ingroup joints - */ -ODE_API void dJointGetUniversalAxis1 (dJointID, dVector3 result); - -/** - * @brief Get axis - * @ingroup joints - */ -ODE_API void dJointGetUniversalAxis2 (dJointID, dVector3 result); - - -/** - * @brief get joint parameter - * @ingroup joints - */ -ODE_API dReal dJointGetUniversalParam (dJointID, int parameter); - -/** - * @brief Get both angles at the same time. - * @ingroup joints - * - * @param joint The universal joint for which we want to calculate the angles - * @param angle1 The angle between the body1 and the axis 1 - * @param angle2 The angle between the body2 and the axis 2 - * - * @note This function combine getUniversalAngle1 and getUniversalAngle2 together - * and try to avoid redundant calculation - */ -ODE_API void dJointGetUniversalAngles (dJointID, dReal *angle1, dReal *angle2); - -/** - * @brief Get angle - * @ingroup joints - */ -ODE_API dReal dJointGetUniversalAngle1 (dJointID); - -/** - * @brief Get angle - * @ingroup joints - */ -ODE_API dReal dJointGetUniversalAngle2 (dJointID); - -/** - * @brief Get time derivative of angle - * @ingroup joints - */ -ODE_API dReal dJointGetUniversalAngle1Rate (dJointID); - -/** - * @brief Get time derivative of angle - * @ingroup joints - */ -ODE_API dReal dJointGetUniversalAngle2Rate (dJointID); - - - -/** - * @brief Get the joint anchor point, in world coordinates. - * @return the point on body 1. If the joint is perfectly satisfied, - * this will be the same as the point on body 2. - * @ingroup joints - */ -ODE_API void dJointGetPRAnchor (dJointID, dVector3 result); - -/** - * @brief Get the PR linear position (i.e. the prismatic's extension) - * - * When the axis is set, the current position of the attached bodies is - * examined and that position will be the zero position. - * - * The position is the "oriented" length between the - * position = (Prismatic axis) dot_product [(body1 + offset) - (body2 + anchor2)] - * - * @ingroup joints - */ -ODE_API dReal dJointGetPRPosition (dJointID); - -/** - * @brief Get the PR linear position's time derivative - * - * @ingroup joints - */ -ODE_API dReal dJointGetPRPositionRate (dJointID); - - -/** - * @brief Get the PR angular position (i.e. the twist between the 2 bodies) - * - * When the axis is set, the current position of the attached bodies is - * examined and that position will be the zero position. - * @ingroup joints - */ -ODE_API dReal dJointGetPRAngle (dJointID); - -/** - * @brief Get the PR angular position's time derivative - * - * @ingroup joints - */ -ODE_API dReal dJointGetPRAngleRate (dJointID); - - -/** - * @brief Get the prismatic axis - * @ingroup joints - */ -ODE_API void dJointGetPRAxis1 (dJointID, dVector3 result); - -/** - * @brief Get the Rotoide axis - * @ingroup joints - */ -ODE_API void dJointGetPRAxis2 (dJointID, dVector3 result); - -/** - * @brief get joint parameter - * @ingroup joints - */ -ODE_API dReal dJointGetPRParam (dJointID, int parameter); - - - - /** - * @brief Get the joint anchor point, in world coordinates. - * @return the point on body 1. If the joint is perfectly satisfied, - * this will be the same as the point on body 2. - * @ingroup joints - */ - ODE_API void dJointGetPUAnchor (dJointID, dVector3 result); - - /** - * @brief Get the PU linear position (i.e. the prismatic's extension) - * - * When the axis is set, the current position of the attached bodies is - * examined and that position will be the zero position. - * - * The position is the "oriented" length between the - * position = (Prismatic axis) dot_product [(body1 + offset) - (body2 + anchor2)] - * - * @ingroup joints - */ - ODE_API dReal dJointGetPUPosition (dJointID); - - /** - * @brief Get the PR linear position's time derivative - * - * @ingroup joints - */ - ODE_API dReal dJointGetPUPositionRate (dJointID); - - /** - * @brief Get the first axis of the universal component of the joint - * @ingroup joints - */ - ODE_API void dJointGetPUAxis1 (dJointID, dVector3 result); - - /** - * @brief Get the second axis of the Universal component of the joint - * @ingroup joints - */ - ODE_API void dJointGetPUAxis2 (dJointID, dVector3 result); - - /** - * @brief Get the prismatic axis - * @ingroup joints - */ - ODE_API void dJointGetPUAxis3 (dJointID, dVector3 result); - - /** - * @brief Get the prismatic axis - * @ingroup joints - * - * @note This function was added for convenience it is the same as - * dJointGetPUAxis3 - */ - ODE_API void dJointGetPUAxisP (dJointID id, dVector3 result); - - - - - /** - * @brief Get both angles at the same time. - * @ingroup joints - * - * @param joint The Prismatic universal joint for which we want to calculate the angles - * @param angle1 The angle between the body1 and the axis 1 - * @param angle2 The angle between the body2 and the axis 2 - * - * @note This function combine dJointGetPUAngle1 and dJointGetPUAngle2 together - * and try to avoid redundant calculation - */ - ODE_API void dJointGetPUAngles (dJointID, dReal *angle1, dReal *angle2); - - /** - * @brief Get angle - * @ingroup joints - */ - ODE_API dReal dJointGetPUAngle1 (dJointID); - - /** - * @brief * @brief Get time derivative of angle1 - * - * @ingroup joints - */ - ODE_API dReal dJointGetPUAngle1Rate (dJointID); - - - /** - * @brief Get angle - * @ingroup joints - */ - ODE_API dReal dJointGetPUAngle2 (dJointID); - - /** - * @brief * @brief Get time derivative of angle2 - * - * @ingroup joints - */ - ODE_API dReal dJointGetPUAngle2Rate (dJointID); - - /** - * @brief get joint parameter - * @ingroup joints - */ - ODE_API dReal dJointGetPUParam (dJointID, int parameter); - - - - - -/** - * @brief Get the Piston linear position (i.e. the piston's extension) - * - * When the axis is set, the current position of the attached bodies is - * examined and that position will be the zero position. - * @ingroup joints - */ - ODE_API dReal dJointGetPistonPosition (dJointID); - - /** - * @brief Get the piston linear position's time derivative. - * @ingroup joints - */ - ODE_API dReal dJointGetPistonPositionRate (dJointID); - -/** - * @brief Get the Piston angular position (i.e. the twist between the 2 bodies) - * - * When the axis is set, the current position of the attached bodies is - * examined and that position will be the zero position. - * @ingroup joints - */ - ODE_API dReal dJointGetPistonAngle (dJointID); - - /** - * @brief Get the piston angular position's time derivative. - * @ingroup joints - */ - ODE_API dReal dJointGetPistonAngleRate (dJointID); - - - /** - * @brief Get the joint anchor - * - * This returns the point on body 1. If the joint is perfectly satisfied, - * this will be the same as the point on body 2 in direction perpendicular - * to the prismatic axis. - * - * @ingroup joints - */ - ODE_API void dJointGetPistonAnchor (dJointID, dVector3 result); - - /** - * @brief Get the joint anchor w.r.t. body 2 - * - * This returns the point on body 2. You can think of a Piston - * joint as trying to keep the result of dJointGetPistonAnchor() and - * dJointGetPistonAnchor2() the same in the direction perpendicular to the - * pirsmatic axis. If the joint is perfectly satisfied, - * this function will return the same value as dJointGetPistonAnchor() to - * within roundoff errors. dJointGetPistonAnchor2() can be used, along with - * dJointGetPistonAnchor(), to see how far the joint has come apart. - * - * @ingroup joints - */ - ODE_API void dJointGetPistonAnchor2 (dJointID, dVector3 result); - - /** - * @brief Get the prismatic axis (This is also the rotoide axis. - * @ingroup joints - */ - ODE_API void dJointGetPistonAxis (dJointID, dVector3 result); - - /** - * @brief get joint parameter - * @ingroup joints - */ - ODE_API dReal dJointGetPistonParam (dJointID, int parameter); - - - /** - * @brief Get the number of angular axes that will be controlled by the - * AMotor. - * @param num can range from 0 (which effectively deactivates the - * joint) to 3. - * This is automatically set to 3 in dAMotorEuler mode. - * @ingroup joints - */ -ODE_API int dJointGetAMotorNumAxes (dJointID); - -/** - * @brief Get the AMotor axes. - * @param anum selects the axis to change (0,1 or 2). - * @param rel Each axis can have one of three ``relative orientation'' modes. - * \li 0: The axis is anchored to the global frame. - * \li 1: The axis is anchored to the first body. - * \li 2: The axis is anchored to the second body. - * @ingroup joints - */ -ODE_API void dJointGetAMotorAxis (dJointID, int anum, dVector3 result); - -/** - * @brief Get axis - * @remarks - * The axis vector is always specified in global coordinates regardless - * of the setting of rel. - * There are two GetAMotorAxis functions, one to return the axis and one to - * return the relative mode. - * - * For dAMotorEuler mode: - * \li Only axes 0 and 2 need to be set. Axis 1 will be determined - automatically at each time step. - * \li Axes 0 and 2 must be perpendicular to each other. - * \li Axis 0 must be anchored to the first body, axis 2 must be anchored - to the second body. - * @ingroup joints - */ -ODE_API int dJointGetAMotorAxisRel (dJointID, int anum); - -/** - * @brief Get the current angle for axis. - * @remarks - * In dAMotorUser mode this is simply the value that was set with - * dJointSetAMotorAngle(). - * In dAMotorEuler mode this is the corresponding euler angle. - * @ingroup joints - */ -ODE_API dReal dJointGetAMotorAngle (dJointID, int anum); - -/** - * @brief Get the current angle rate for axis anum. - * @remarks - * In dAMotorUser mode this is always zero, as not enough information is - * available. - * In dAMotorEuler mode this is the corresponding euler angle rate. - * @ingroup joints - */ -ODE_API dReal dJointGetAMotorAngleRate (dJointID, int anum); - -/** - * @brief get joint parameter - * @ingroup joints - */ -ODE_API dReal dJointGetAMotorParam (dJointID, int parameter); - -/** - * @brief Get the angular motor mode. - * @param mode must be one of the following constants: - * \li dAMotorUser The AMotor axes and joint angle settings are entirely - * controlled by the user. This is the default mode. - * \li dAMotorEuler Euler angles are automatically computed. - * The axis a1 is also automatically computed. - * The AMotor axes must be set correctly when in this mode, - * as described below. - * When this mode is initially set the current relative orientations - * of the bodies will correspond to all euler angles at zero. - * @ingroup joints - */ -ODE_API int dJointGetAMotorMode (dJointID); - -/** - * @brief Get nr of axes. - * @ingroup joints - */ -ODE_API int dJointGetLMotorNumAxes (dJointID); - -/** - * @brief Get axis. - * @ingroup joints - */ -ODE_API void dJointGetLMotorAxis (dJointID, int anum, dVector3 result); - -/** - * @brief get joint parameter - * @ingroup joints - */ -ODE_API dReal dJointGetLMotorParam (dJointID, int parameter); - -/** - * @brief get joint parameter - * @ingroup joints - */ -ODE_API dReal dJointGetFixedParam (dJointID, int parameter); - - -/** - * @ingroup joints - */ -ODE_API dJointID dConnectingJoint (dBodyID, dBodyID); - -/** - * @ingroup joints - */ -ODE_API int dConnectingJointList (dBodyID, dBodyID, dJointID*); - -/** - * @brief Utility function - * @return 1 if the two bodies are connected together by - * a joint, otherwise return 0. - * @ingroup joints - */ -ODE_API int dAreConnected (dBodyID, dBodyID); - -/** - * @brief Utility function - * @return 1 if the two bodies are connected together by - * a joint that does not have type @arg{joint_type}, otherwise return 0. - * @param body1 A body to check. - * @param body2 A body to check. - * @param joint_type is a dJointTypeXXX constant. - * This is useful for deciding whether to add contact joints between two bodies: - * if they are already connected by non-contact joints then it may not be - * appropriate to add contacts, however it is okay to add more contact between- - * bodies that already have contacts. - * @ingroup joints - */ -ODE_API int dAreConnectedExcluding (dBodyID body1, dBodyID body2, int joint_type); - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/misc/builddeps/linux32/ode/include/ode/ode.h b/misc/builddeps/linux32/ode/include/ode/ode.h deleted file mode 100644 index af74e50f..00000000 --- a/misc/builddeps/linux32/ode/include/ode/ode.h +++ /dev/null @@ -1,48 +0,0 @@ -/************************************************************************* - * * - * Open Dynamics Engine, Copyright (C) 2001,2002 Russell L. Smith. * - * All rights reserved. Email: russ@q12.org Web: www.q12.org * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of EITHER: * - * (1) The GNU Lesser General Public License as published by the Free * - * Software Foundation; either version 2.1 of the License, or (at * - * your option) any later version. The text of the GNU Lesser * - * General Public License is included with this library in the * - * file LICENSE.TXT. * - * (2) The BSD-style license that is included with this library in * - * the file LICENSE-BSD.TXT. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files * - * LICENSE.TXT and LICENSE-BSD.TXT for more details. * - * * - *************************************************************************/ - -#ifndef _ODE_ODE_H_ -#define _ODE_ODE_H_ - -/* include *everything* here */ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#endif diff --git a/misc/builddeps/linux32/ode/include/ode/odeconfig.h b/misc/builddeps/linux32/ode/include/ode/odeconfig.h deleted file mode 100644 index 6e32fc65..00000000 --- a/misc/builddeps/linux32/ode/include/ode/odeconfig.h +++ /dev/null @@ -1,93 +0,0 @@ -#ifndef ODECONFIG_H -#define ODECONFIG_H - -/* Pull in the standard headers */ -#include -#include -#include -#include -#include -#include -#include -#include - - -#if defined(ODE_DLL) || defined(ODE_LIB) -#define __ODE__ -#endif - -/* Define a DLL export symbol for those platforms that need it */ -#if defined(_MSC_VER) - #if defined(ODE_DLL) - #define ODE_API __declspec(dllexport) - #elif !defined(ODE_LIB) - #define ODE_DLL_API __declspec(dllimport) - #endif -#endif - -#if !defined(ODE_API) - #define ODE_API -#endif - -#if defined(_MSC_VER) -# define ODE_API_DEPRECATED __declspec(deprecated) -#elif defined (__GNUC__) && ( (__GNUC__ > 3) || ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 1)) ) -# define ODE_API_DEPRECATED __attribute__((__deprecated__)) -#else -# define ODE_API_DEPRECATED -#endif - -/* Well-defined common data types...need to define for 64 bit systems */ -#if defined(_M_IA64) || defined(__ia64__) || defined(_M_AMD64) || defined(__x86_64__) - #define X86_64_SYSTEM 1 - typedef int int32; - typedef unsigned int uint32; - typedef short int16; - typedef unsigned short uint16; - typedef signed char int8; - typedef unsigned char uint8; -#else - typedef int int32; - typedef unsigned int uint32; - typedef short int16; - typedef unsigned short uint16; - typedef signed char int8; - typedef unsigned char uint8; -#endif - -/* Visual C does not define these functions */ -#if defined(_MSC_VER) - #define copysignf(x, y) ((float)_copysign(x, y)) - #define copysign(x, y) _copysign(x, y) - #define nextafterf(x, y) _nextafterf(x, y) - #define nextafter(x, y) _nextafter(x, y) - #if !defined(_WIN64) - #define _ODE__NEXTAFTERF_REQUIRED - #endif -#endif - - - -/* Define the dInfinity macro */ -#ifdef INFINITY - #define dInfinity INFINITY -#elif defined(HUGE_VAL) - #ifdef dSINGLE - #ifdef HUGE_VALF - #define dInfinity HUGE_VALF - #else - #define dInfinity ((float)HUGE_VAL) - #endif - #else - #define dInfinity HUGE_VAL - #endif -#else - #ifdef dSINGLE - #define dInfinity ((float)(1.0/0.0)) - #else - #define dInfinity (1.0/0.0) - #endif -#endif - - -#endif diff --git a/misc/builddeps/linux32/ode/include/ode/odecpp.h b/misc/builddeps/linux32/ode/include/ode/odecpp.h deleted file mode 100644 index f7348925..00000000 --- a/misc/builddeps/linux32/ode/include/ode/odecpp.h +++ /dev/null @@ -1,1353 +0,0 @@ -/************************************************************************* - * * - * Open Dynamics Engine, Copyright (C) 2001, 2002 Russell L. Smith. * - * All rights reserved. Email: russ@q12.org Web: www.q12.org * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of EITHER: * - * (1) The GNU Lesser General Public License as published by the Free * - * Software Foundation; either version 2.1 of the License, or (at * - * your option) any later version. The text of the GNU Lesser * - * General Public License is included with this library in the * - * file LICENSE.TXT. * - * (2) The BSD-style license that is included with this library in * - * the file LICENSE-BSD.TXT. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files * - * LICENSE.TXT and LICENSE-BSD.TXT for more details. * - * * - *************************************************************************/ - -/* C++ interface for non-collision stuff */ - - -#ifndef _ODE_ODECPP_H_ -#define _ODE_ODECPP_H_ -#ifdef __cplusplus - - - - -//namespace ode { - - -class dWorldSimpleIDContainer { -protected: - dWorldID _id; - - dWorldSimpleIDContainer(): _id(0) {} - ~dWorldSimpleIDContainer() { destroy(); } - - void destroy() { - if (_id) { - dWorldDestroy(_id); - _id = 0; - } - } -}; - -class dWorldDynamicIDContainer: public dWorldSimpleIDContainer { -protected: - virtual ~dWorldDynamicIDContainer() {} -}; - -template -class dWorldTemplate: public dWorldTemplateBase { - // intentionally undefined, don't use these - dWorldTemplate (const dWorldTemplate &); - void operator= (const dWorldTemplate &); - -protected: - dWorldID get_id() const { return dWorldTemplateBase::_id; } - void set_id(dWorldID value) { dWorldTemplateBase::_id = value; } - -public: - dWorldTemplate() - { set_id(dWorldCreate()); } - - dWorldID id() const - { return get_id(); } - operator dWorldID() const - { return get_id(); } - - void setGravity (dReal x, dReal y, dReal z) - { dWorldSetGravity (get_id(), x, y, z); } - void setGravity (const dVector3 g) - { setGravity (g[0], g[1], g[2]); } - void getGravity (dVector3 g) const - { dWorldGetGravity (get_id(), g); } - - void setERP (dReal erp) - { dWorldSetERP(get_id(), erp); } - dReal getERP() const - { return dWorldGetERP(get_id()); } - - void setCFM (dReal cfm) - { dWorldSetCFM(get_id(), cfm); } - dReal getCFM() const - { return dWorldGetCFM(get_id()); } - - void step (dReal stepsize) - { dWorldStep (get_id(), stepsize); } - - void quickStep(dReal stepsize) - { dWorldQuickStep (get_id(), stepsize); } - void setQuickStepNumIterations(int num) - { dWorldSetQuickStepNumIterations (get_id(), num); } - int getQuickStepNumIterations() const - { return dWorldGetQuickStepNumIterations (get_id()); } - void setQuickStepW(dReal over_relaxation) - { dWorldSetQuickStepW (get_id(), over_relaxation); } - dReal getQuickStepW() const - { return dWorldGetQuickStepW (get_id()); } - - void setAutoDisableLinearThreshold (dReal threshold) - { dWorldSetAutoDisableLinearThreshold (get_id(), threshold); } - dReal getAutoDisableLinearThreshold() const - { return dWorldGetAutoDisableLinearThreshold (get_id()); } - void setAutoDisableAngularThreshold (dReal threshold) - { dWorldSetAutoDisableAngularThreshold (get_id(), threshold); } - dReal getAutoDisableAngularThreshold() const - { return dWorldGetAutoDisableAngularThreshold (get_id()); } - void setAutoDisableSteps (int steps) - { dWorldSetAutoDisableSteps (get_id(), steps); } - int getAutoDisableSteps() const - { return dWorldGetAutoDisableSteps (get_id()); } - void setAutoDisableTime (dReal time) - { dWorldSetAutoDisableTime (get_id(), time); } - dReal getAutoDisableTime() const - { return dWorldGetAutoDisableTime (get_id()); } - void setAutoDisableFlag (int do_auto_disable) - { dWorldSetAutoDisableFlag (get_id(), do_auto_disable); } - int getAutoDisableFlag() const - { return dWorldGetAutoDisableFlag (get_id()); } - - dReal getLinearDampingThreshold() const - { return dWorldGetLinearDampingThreshold(get_id()); } - void setLinearDampingThreshold(dReal threshold) - { dWorldSetLinearDampingThreshold(get_id(), threshold); } - dReal getAngularDampingThreshold() const - { return dWorldGetAngularDampingThreshold(get_id()); } - void setAngularDampingThreshold(dReal threshold) - { dWorldSetAngularDampingThreshold(get_id(), threshold); } - dReal getLinearDamping() const - { return dWorldGetLinearDamping(get_id()); } - void setLinearDamping(dReal scale) - { dWorldSetLinearDamping(get_id(), scale); } - dReal getAngularDamping() const - { return dWorldGetAngularDamping(get_id()); } - void setAngularDamping(dReal scale) - { dWorldSetAngularDamping(get_id(), scale); } - void setDamping(dReal linear_scale, dReal angular_scale) - { dWorldSetDamping(get_id(), linear_scale, angular_scale); } - - dReal getMaxAngularSpeed() const - { return dWorldGetMaxAngularSpeed(get_id()); } - void setMaxAngularSpeed(dReal max_speed) - { dWorldSetMaxAngularSpeed(get_id(), max_speed); } - - void setContactSurfaceLayer(dReal depth) - { dWorldSetContactSurfaceLayer (get_id(), depth); } - dReal getContactSurfaceLayer() const - { return dWorldGetContactSurfaceLayer (get_id()); } - - void impulseToForce (dReal stepsize, dReal ix, dReal iy, dReal iz, - dVector3 force) - { dWorldImpulseToForce (get_id(), stepsize, ix, iy, iz, force); } -}; - - -class dBodySimpleIDContainer { -protected: - dBodyID _id; - - dBodySimpleIDContainer(): _id(0) {} - ~dBodySimpleIDContainer() { destroy(); } - - void destroy() { - if (_id) { - dBodyDestroy(_id); - _id = 0; - } - } -}; - -class dBodyDynamicIDContainer: public dBodySimpleIDContainer { -protected: - virtual ~dBodyDynamicIDContainer() {} -}; - -template -class dBodyTemplate: public dBodyTemplateBase { - // intentionally undefined, don't use these - dBodyTemplate (const dBodyTemplate &); - void operator= (const dBodyTemplate &); - -protected: - dBodyID get_id() const { return dBodyTemplateBase::_id; } - void set_id(dBodyID value) { dBodyTemplateBase::_id = value; } - - void destroy() { dBodyTemplateBase::destroy(); } - -public: - dBodyTemplate() - { } - dBodyTemplate (dWorldID world) - { set_id(dBodyCreate(world)); } - dBodyTemplate (dWorldTemplate& world) - { set_id(dBodyCreate(world.id())); } - - void create (dWorldID world) { - destroy(); - set_id(dBodyCreate(world)); - } - void create (dWorldTemplate& world) { - create(world.id()); - } - - dBodyID id() const - { return get_id(); } - operator dBodyID() const - { return get_id(); } - - void setData (void *data) - { dBodySetData (get_id(), data); } - void *getData() const - { return dBodyGetData (get_id()); } - - void setPosition (dReal x, dReal y, dReal z) - { dBodySetPosition (get_id(), x, y, z); } - void setPosition (const dVector3 p) - { setPosition(p[0], p[1], p[2]); } - - void setRotation (const dMatrix3 R) - { dBodySetRotation (get_id(), R); } - void setQuaternion (const dQuaternion q) - { dBodySetQuaternion (get_id(), q); } - void setLinearVel (dReal x, dReal y, dReal z) - { dBodySetLinearVel (get_id(), x, y, z); } - void setLinearVel (const dVector3 v) - { setLinearVel(v[0], v[1], v[2]); } - void setAngularVel (dReal x, dReal y, dReal z) - { dBodySetAngularVel (get_id(), x, y, z); } - void setAngularVel (const dVector3 v) - { setAngularVel (v[0], v[1], v[2]); } - - const dReal * getPosition() const - { return dBodyGetPosition (get_id()); } - const dReal * getRotation() const - { return dBodyGetRotation (get_id()); } - const dReal * getQuaternion() const - { return dBodyGetQuaternion (get_id()); } - const dReal * getLinearVel() const - { return dBodyGetLinearVel (get_id()); } - const dReal * getAngularVel() const - { return dBodyGetAngularVel (get_id()); } - - void setMass (const dMass *mass) - { dBodySetMass (get_id(), mass); } - void setMass (const dMass &mass) - { setMass (&mass); } - dMass getMass () const - { dMass mass; dBodyGetMass (get_id(), &mass); return mass; } - - void addForce (dReal fx, dReal fy, dReal fz) - { dBodyAddForce (get_id(), fx, fy, fz); } - void addForce (const dVector3 f) - { addForce (f[0], f[1], f[2]); } - void addTorque (dReal fx, dReal fy, dReal fz) - { dBodyAddTorque (get_id(), fx, fy, fz); } - void addTorque (const dVector3 t) - { addTorque(t[0], t[1], t[2]); } - - void addRelForce (dReal fx, dReal fy, dReal fz) - { dBodyAddRelForce (get_id(), fx, fy, fz); } - void addRelForce (const dVector3 f) - { addRelForce (f[0], f[1], f[2]); } - void addRelTorque (dReal fx, dReal fy, dReal fz) - { dBodyAddRelTorque (get_id(), fx, fy, fz); } - void addRelTorque (const dVector3 t) - { addRelTorque (t[0], t[1], t[2]); } - - void addForceAtPos (dReal fx, dReal fy, dReal fz, - dReal px, dReal py, dReal pz) - { dBodyAddForceAtPos (get_id(), fx, fy, fz, px, py, pz); } - void addForceAtPos (const dVector3 f, const dVector3 p) - { addForceAtPos (f[0], f[1], f[2], p[0], p[1], p[2]); } - - void addForceAtRelPos (dReal fx, dReal fy, dReal fz, - dReal px, dReal py, dReal pz) - { dBodyAddForceAtRelPos (get_id(), fx, fy, fz, px, py, pz); } - void addForceAtRelPos (const dVector3 f, const dVector3 p) - { addForceAtRelPos (f[0], f[1], f[2], p[0], p[1], p[2]); } - - void addRelForceAtPos (dReal fx, dReal fy, dReal fz, - dReal px, dReal py, dReal pz) - { dBodyAddRelForceAtPos (get_id(), fx, fy, fz, px, py, pz); } - void addRelForceAtPos (const dVector3 f, const dVector3 p) - { addRelForceAtPos (f[0], f[1], f[2], p[0], p[1], p[2]); } - - void addRelForceAtRelPos (dReal fx, dReal fy, dReal fz, - dReal px, dReal py, dReal pz) - { dBodyAddRelForceAtRelPos (get_id(), fx, fy, fz, px, py, pz); } - void addRelForceAtRelPos (const dVector3 f, const dVector3 p) - { addRelForceAtRelPos (f[0], f[1], f[2], p[0], p[1], p[2]); } - - const dReal * getForce() const - { return dBodyGetForce(get_id()); } - const dReal * getTorque() const - { return dBodyGetTorque(get_id()); } - void setForce (dReal x, dReal y, dReal z) - { dBodySetForce (get_id(), x, y, z); } - void setForce (const dVector3 f) - { setForce (f[0], f[1], f[2]); } - void setTorque (dReal x, dReal y, dReal z) - { dBodySetTorque (get_id(), x, y, z); } - void setTorque (const dVector3 t) - { setTorque (t[0], t[1], t[2]); } - - void setDynamic() - { dBodySetDynamic (get_id()); } - void setKinematic() - { dBodySetKinematic (get_id()); } - bool isKinematic() const - { return dBodyIsKinematic (get_id()) != 0; } - - void enable() - { dBodyEnable (get_id()); } - void disable() - { dBodyDisable (get_id()); } - bool isEnabled() const - { return dBodyIsEnabled (get_id()) != 0; } - - void getRelPointPos (dReal px, dReal py, dReal pz, dVector3 result) const - { dBodyGetRelPointPos (get_id(), px, py, pz, result); } - void getRelPointPos (const dVector3 p, dVector3 result) const - { getRelPointPos (p[0], p[1], p[2], result); } - - void getRelPointVel (dReal px, dReal py, dReal pz, dVector3 result) const - { dBodyGetRelPointVel (get_id(), px, py, pz, result); } - void getRelPointVel (const dVector3 p, dVector3 result) const - { getRelPointVel (p[0], p[1], p[2], result); } - - void getPointVel (dReal px, dReal py, dReal pz, dVector3 result) const - { dBodyGetPointVel (get_id(), px, py, pz, result); } - void getPointVel (const dVector3 p, dVector3 result) const - { getPointVel (p[0], p[1], p[2], result); } - - void getPosRelPoint (dReal px, dReal py, dReal pz, dVector3 result) const - { dBodyGetPosRelPoint (get_id(), px, py, pz, result); } - void getPosRelPoint (const dVector3 p, dVector3 result) const - { getPosRelPoint (p[0], p[1], p[2], result); } - - void vectorToWorld (dReal px, dReal py, dReal pz, dVector3 result) const - { dBodyVectorToWorld (get_id(), px, py, pz, result); } - void vectorToWorld (const dVector3 p, dVector3 result) const - { vectorToWorld (p[0], p[1], p[2], result); } - - void vectorFromWorld (dReal px, dReal py, dReal pz, dVector3 result) const - { dBodyVectorFromWorld (get_id(), px, py, pz, result); } - void vectorFromWorld (const dVector3 p, dVector3 result) const - { vectorFromWorld (p[0], p[1], p[2], result); } - - void setFiniteRotationMode (bool mode) - { dBodySetFiniteRotationMode (get_id(), mode); } - - void setFiniteRotationAxis (dReal x, dReal y, dReal z) - { dBodySetFiniteRotationAxis (get_id(), x, y, z); } - void setFiniteRotationAxis (const dVector3 a) - { setFiniteRotationAxis (a[0], a[1], a[2]); } - - bool getFiniteRotationMode() const - { return dBodyGetFiniteRotationMode (get_id()) != 0; } - void getFiniteRotationAxis (dVector3 result) const - { dBodyGetFiniteRotationAxis (get_id(), result); } - - int getNumJoints() const - { return dBodyGetNumJoints (get_id()); } - dJointID getJoint (int index) const - { return dBodyGetJoint (get_id(), index); } - - void setGravityMode (bool mode) - { dBodySetGravityMode (get_id(), mode); } - bool getGravityMode() const - { return dBodyGetGravityMode (get_id()) != 0; } - - bool isConnectedTo (dBodyID body) const - { return dAreConnected (get_id(), body) != 0; } - - void setAutoDisableLinearThreshold (dReal threshold) - { dBodySetAutoDisableLinearThreshold (get_id(), threshold); } - dReal getAutoDisableLinearThreshold() const - { return dBodyGetAutoDisableLinearThreshold (get_id()); } - void setAutoDisableAngularThreshold (dReal threshold) - { dBodySetAutoDisableAngularThreshold (get_id(), threshold); } - dReal getAutoDisableAngularThreshold() const - { return dBodyGetAutoDisableAngularThreshold (get_id()); } - void setAutoDisableSteps (int steps) - { dBodySetAutoDisableSteps (get_id(), steps); } - int getAutoDisableSteps() const - { return dBodyGetAutoDisableSteps (get_id()); } - void setAutoDisableTime (dReal time) - { dBodySetAutoDisableTime (get_id(), time); } - dReal getAutoDisableTime() const - { return dBodyGetAutoDisableTime (get_id()); } - void setAutoDisableFlag (bool do_auto_disable) - { dBodySetAutoDisableFlag (get_id(), do_auto_disable); } - bool getAutoDisableFlag() const - { return dBodyGetAutoDisableFlag (get_id()) != 0; } - - dReal getLinearDamping() const - { return dBodyGetLinearDamping(get_id()); } - void setLinearDamping(dReal scale) - { dBodySetLinearDamping(get_id(), scale); } - dReal getAngularDamping() const - { return dBodyGetAngularDamping(get_id()); } - void setAngularDamping(dReal scale) - { dBodySetAngularDamping(get_id(), scale); } - void setDamping(dReal linear_scale, dReal angular_scale) - { dBodySetDamping(get_id(), linear_scale, angular_scale); } - dReal getLinearDampingThreshold() const - { return dBodyGetLinearDampingThreshold(get_id()); } - void setLinearDampingThreshold(dReal threshold) const - { dBodySetLinearDampingThreshold(get_id(), threshold); } - dReal getAngularDampingThreshold() const - { return dBodyGetAngularDampingThreshold(get_id()); } - void setAngularDampingThreshold(dReal threshold) - { dBodySetAngularDampingThreshold(get_id(), threshold); } - void setDampingDefaults() - { dBodySetDampingDefaults(get_id()); } - - dReal getMaxAngularSpeed() const - { return dBodyGetMaxAngularSpeed(get_id()); } - void setMaxAngularSpeed(dReal max_speed) - { dBodySetMaxAngularSpeed(get_id(), max_speed); } - - bool getGyroscopicMode() const - { return dBodyGetGyroscopicMode(get_id()) != 0; } - void setGyroscopicMode(bool mode) - { dBodySetGyroscopicMode(get_id(), mode); } - -}; - - -class dJointGroupSimpleIDContainer { -protected: - dJointGroupID _id; - - dJointGroupSimpleIDContainer(): _id(0) {} - ~dJointGroupSimpleIDContainer() { destroy(); } - - void destroy() { - if (_id) { - dJointGroupDestroy(_id); - _id = 0; - } - } -}; - -class dJointGroupDynamicIDContainer: public dJointGroupSimpleIDContainer { -protected: - virtual ~dJointGroupDynamicIDContainer() {} -}; - -template -class dJointGroupTemplate: public dJointGroupTemplateBase { - // intentionally undefined, don't use these - dJointGroupTemplate (const dJointGroupTemplate &); - void operator= (const dJointGroupTemplate &); - -protected: - dJointGroupID get_id() const { return dJointGroupTemplateBase::_id; } - void set_id(dJointGroupID value) { dJointGroupTemplateBase::_id = value; } - - void destroy() { dJointGroupTemplateBase::destroy(); } - -public: - dJointGroupTemplate () - { set_id(dJointGroupCreate(0)); } - - void create () { - destroy(); - set_id(dJointGroupCreate(0)); - } - - dJointGroupID id() const - { return get_id(); } - operator dJointGroupID() const - { return get_id(); } - - void empty() - { dJointGroupEmpty (get_id()); } - void clear() - { empty(); } -}; - - -class dJointSimpleIDContainer { -protected: - dJointID _id; - - dJointSimpleIDContainer(): _id(0) {} - ~dJointSimpleIDContainer() { destroy(); } - - void destroy() { - if (_id) { - dJointDestroy (_id); - _id = 0; - } - } -}; - -class dJointDynamicIDContainer: public dJointSimpleIDContainer { -protected: - virtual ~dJointDynamicIDContainer() {} -}; - -template -class dJointTemplate: public dJointTemplateBase { -private: - // intentionally undefined, don't use these - dJointTemplate (const dJointTemplate &) ; - void operator= (const dJointTemplate &); - -protected: - dJointID get_id() const { return dJointTemplateBase::_id; } - void set_id(dJointID value) { dJointTemplateBase::_id = value; } - - void destroy() { dJointTemplateBase::destroy(); } - -protected: - dJointTemplate() // don't let user construct pure dJointTemplate objects - { } - -public: - dJointID id() const - { return get_id(); } - operator dJointID() const - { return get_id(); } - - int getNumBodies() const - { return dJointGetNumBodies(get_id()); } - - void attach (dBodyID body1, dBodyID body2) - { dJointAttach (get_id(), body1, body2); } - void attach (dBodyTemplate& body1, dBodyTemplate& body2) - { attach(body1.id(), body2.id()); } - - void enable() - { dJointEnable (get_id()); } - void disable() - { dJointDisable (get_id()); } - bool isEnabled() const - { return dJointIsEnabled (get_id()) != 0; } - - void setData (void *data) - { dJointSetData (get_id(), data); } - void *getData() const - { return dJointGetData (get_id()); } - - dJointType getType() const - { return dJointGetType (get_id()); } - - dBodyID getBody (int index) const - { return dJointGetBody (get_id(), index); } - - void setFeedback(dJointFeedback *fb) - { dJointSetFeedback(get_id(), fb); } - dJointFeedback *getFeedback() const - { return dJointGetFeedback(get_id()); } - - // If not implemented it will do nothing as describe in the doc - virtual void setParam (int, dReal) {}; - virtual dReal getParam (int) const { return 0; } -}; - - -template -class dBallJointTemplate : public dJointTemplate { -private: - // intentionally undefined, don't use these - dBallJointTemplate (const dBallJointTemplate &); - void operator= (const dBallJointTemplate &); - -protected: - typedef dJointTemplate dBaseTemplate; - - dJointID get_id() const { return dBaseTemplate::get_id(); } - void set_id(dJointID value) { dBaseTemplate::set_id(value); } - - void destroy() { dBaseTemplate::destroy(); } - -public: - dBallJointTemplate() { } - dBallJointTemplate (dWorldID world, dJointGroupID group=0) - { set_id(dJointCreateBall(world, group)); } - dBallJointTemplate (dWorldTemplate& world, dJointGroupID group=0) - { set_id(dJointCreateBall(world.id(), group)); } - - void create (dWorldID world, dJointGroupID group=0) { - destroy(); - set_id(dJointCreateBall(world, group)); - } - void create (dWorldTemplate& world, dJointGroupID group=0) - { create(world.id(), group); } - - void setAnchor (dReal x, dReal y, dReal z) - { dJointSetBallAnchor (get_id(), x, y, z); } - void setAnchor (const dVector3 a) - { setAnchor (a[0], a[1], a[2]); } - void getAnchor (dVector3 result) const - { dJointGetBallAnchor (get_id(), result); } - void getAnchor2 (dVector3 result) const - { dJointGetBallAnchor2 (get_id(), result); } - virtual void setParam (int parameter, dReal value) - { dJointSetBallParam (get_id(), parameter, value); } - virtual dReal getParam (int parameter) const - { return dJointGetBallParam (get_id(), parameter); } - // TODO: expose params through methods -} ; - - -template -class dHingeJointTemplate : public dJointTemplate { -private: - // intentionally undefined, don't use these - dHingeJointTemplate (const dHingeJointTemplate &); - void operator = (const dHingeJointTemplate &); - -protected: - typedef dJointTemplate dBaseTemplate; - - dJointID get_id() const { return dBaseTemplate::get_id(); } - void set_id(dJointID value) { dBaseTemplate::set_id(value); } - - void destroy() { dBaseTemplate::destroy(); } - -public: - dHingeJointTemplate() { } - dHingeJointTemplate (dWorldID world, dJointGroupID group=0) - { set_id(dJointCreateHinge(world, group)); } - dHingeJointTemplate (dWorldTemplate& world, dJointGroupID group=0) - { set_id(dJointCreateHinge(world.id(), group)); } - - void create (dWorldID world, dJointGroupID group=0) { - destroy(); - set_id(dJointCreateHinge (world, group)); - } - void create (dWorldTemplate& world, dJointGroupID group=0) - { create(world.id(), group); } - - void setAnchor (dReal x, dReal y, dReal z) - { dJointSetHingeAnchor (get_id(), x, y, z); } - void setAnchor (const dVector3 a) - { setAnchor (a[0], a[1], a[2]); } - void getAnchor (dVector3 result) const - { dJointGetHingeAnchor (get_id(), result); } - void getAnchor2 (dVector3 result) const - { dJointGetHingeAnchor2 (get_id(), result); } - - void setAxis (dReal x, dReal y, dReal z) - { dJointSetHingeAxis (get_id(), x, y, z); } - void setAxis (const dVector3 a) - { setAxis(a[0], a[1], a[2]); } - void getAxis (dVector3 result) const - { dJointGetHingeAxis (get_id(), result); } - - dReal getAngle() const - { return dJointGetHingeAngle (get_id()); } - dReal getAngleRate() const - { return dJointGetHingeAngleRate (get_id()); } - - virtual void setParam (int parameter, dReal value) - { dJointSetHingeParam (get_id(), parameter, value); } - virtual dReal getParam (int parameter) const - { return dJointGetHingeParam (get_id(), parameter); } - // TODO: expose params through methods - - void addTorque (dReal torque) - { dJointAddHingeTorque(get_id(), torque); } -}; - - -template -class dSliderJointTemplate : public dJointTemplate { -private: - // intentionally undefined, don't use these - dSliderJointTemplate (const dSliderJointTemplate &); - void operator = (const dSliderJointTemplate &); - -protected: - typedef dJointTemplate dBaseTemplate; - - dJointID get_id() const { return dBaseTemplate::get_id(); } - void set_id(dJointID value) { dBaseTemplate::set_id(value); } - - void destroy() { dBaseTemplate::destroy(); } - -public: - dSliderJointTemplate() { } - dSliderJointTemplate (dWorldID world, dJointGroupID group=0) - { set_id(dJointCreateSlider(world, group)); } - dSliderJointTemplate (dWorldTemplate& world, dJointGroupID group=0) - { set_id(dJointCreateSlider(world.id(), group)); } - - void create (dWorldID world, dJointGroupID group=0) { - destroy(); - set_id(dJointCreateSlider(world, group)); - } - void create (dWorldTemplate& world, dJointGroupID group=0) - { create(world.id(), group); } - - void setAxis (dReal x, dReal y, dReal z) - { dJointSetSliderAxis (get_id(), x, y, z); } - void setAxis (const dVector3 a) - { setAxis (a[0], a[1], a[2]); } - void getAxis (dVector3 result) const - { dJointGetSliderAxis (get_id(), result); } - - dReal getPosition() const - { return dJointGetSliderPosition (get_id()); } - dReal getPositionRate() const - { return dJointGetSliderPositionRate (get_id()); } - - virtual void setParam (int parameter, dReal value) - { dJointSetSliderParam (get_id(), parameter, value); } - virtual dReal getParam (int parameter) const - { return dJointGetSliderParam (get_id(), parameter); } - // TODO: expose params through methods - - void addForce (dReal force) - { dJointAddSliderForce(get_id(), force); } -}; - - -template -class dUniversalJointTemplate : public dJointTemplate { -private: - // intentionally undefined, don't use these - dUniversalJointTemplate (const dUniversalJointTemplate &); - void operator = (const dUniversalJointTemplate &); - -protected: - typedef dJointTemplate dBaseTemplate; - - dJointID get_id() const { return dBaseTemplate::get_id(); } - void set_id(dJointID value) { dBaseTemplate::set_id(value); } - - void destroy() { dBaseTemplate::destroy(); } - -public: - dUniversalJointTemplate() { } - dUniversalJointTemplate (dWorldID world, dJointGroupID group=0) - { set_id(dJointCreateUniversal(world, group)); } - dUniversalJointTemplate (dWorldTemplate& world, dJointGroupID group=0) - { set_id(dJointCreateUniversal(world.id(), group)); } - - void create (dWorldID world, dJointGroupID group=0) { - destroy(); - set_id(dJointCreateUniversal(world, group)); - } - void create (dWorldTemplate& world, dJointGroupID group=0) - { create(world.id(), group); } - - void setAnchor (dReal x, dReal y, dReal z) - { dJointSetUniversalAnchor (get_id(), x, y, z); } - void setAnchor (const dVector3 a) - { setAnchor(a[0], a[1], a[2]); } - void setAxis1 (dReal x, dReal y, dReal z) - { dJointSetUniversalAxis1 (get_id(), x, y, z); } - void setAxis1 (const dVector3 a) - { setAxis1 (a[0], a[1], a[2]); } - void setAxis2 (dReal x, dReal y, dReal z) - { dJointSetUniversalAxis2 (get_id(), x, y, z); } - void setAxis2 (const dVector3 a) - { setAxis2 (a[0], a[1], a[2]); } - - void getAnchor (dVector3 result) const - { dJointGetUniversalAnchor (get_id(), result); } - void getAnchor2 (dVector3 result) const - { dJointGetUniversalAnchor2 (get_id(), result); } - void getAxis1 (dVector3 result) const - { dJointGetUniversalAxis1 (get_id(), result); } - void getAxis2 (dVector3 result) const - { dJointGetUniversalAxis2 (get_id(), result); } - - virtual void setParam (int parameter, dReal value) - { dJointSetUniversalParam (get_id(), parameter, value); } - virtual dReal getParam (int parameter) const - { return dJointGetUniversalParam (get_id(), parameter); } - // TODO: expose params through methods - - void getAngles(dReal *angle1, dReal *angle2) const - { dJointGetUniversalAngles (get_id(), angle1, angle2); } - - dReal getAngle1() const - { return dJointGetUniversalAngle1 (get_id()); } - dReal getAngle1Rate() const - { return dJointGetUniversalAngle1Rate (get_id()); } - dReal getAngle2() const - { return dJointGetUniversalAngle2 (get_id()); } - dReal getAngle2Rate() const - { return dJointGetUniversalAngle2Rate (get_id()); } - - void addTorques (dReal torque1, dReal torque2) - { dJointAddUniversalTorques(get_id(), torque1, torque2); } -}; - - -template -class dHinge2JointTemplate : public dJointTemplate { -private: - // intentionally undefined, don't use these - dHinge2JointTemplate (const dHinge2JointTemplate &); - void operator = (const dHinge2JointTemplate &); - -protected: - typedef dJointTemplate dBaseTemplate; - - dJointID get_id() const { return dBaseTemplate::get_id(); } - void set_id(dJointID value) { dBaseTemplate::set_id(value); } - - void destroy() { dBaseTemplate::destroy(); } - -public: - dHinge2JointTemplate() { } - dHinge2JointTemplate (dWorldID world, dJointGroupID group=0) - { set_id(dJointCreateHinge2(world, group)); } - dHinge2JointTemplate (dWorldTemplate& world, dJointGroupID group=0) - { set_id(dJointCreateHinge2(world.id(), group)); } - - void create (dWorldID world, dJointGroupID group=0) { - destroy(); - set_id(dJointCreateHinge2(world, group)); - } - void create (dWorldTemplate& world, dJointGroupID group=0) - { create(world.id(), group); } - - void setAnchor (dReal x, dReal y, dReal z) - { dJointSetHinge2Anchor (get_id(), x, y, z); } - void setAnchor (const dVector3 a) - { setAnchor(a[0], a[1], a[2]); } - void setAxis1 (dReal x, dReal y, dReal z) - { dJointSetHinge2Axis1 (get_id(), x, y, z); } - void setAxis1 (const dVector3 a) - { setAxis1 (a[0], a[1], a[2]); } - void setAxis2 (dReal x, dReal y, dReal z) - { dJointSetHinge2Axis2 (get_id(), x, y, z); } - void setAxis2 (const dVector3 a) - { setAxis2 (a[0], a[1], a[2]); } - - void getAnchor (dVector3 result) const - { dJointGetHinge2Anchor (get_id(), result); } - void getAnchor2 (dVector3 result) const - { dJointGetHinge2Anchor2 (get_id(), result); } - void getAxis1 (dVector3 result) const - { dJointGetHinge2Axis1 (get_id(), result); } - void getAxis2 (dVector3 result) const - { dJointGetHinge2Axis2 (get_id(), result); } - - dReal getAngle1() const - { return dJointGetHinge2Angle1 (get_id()); } - dReal getAngle1Rate() const - { return dJointGetHinge2Angle1Rate (get_id()); } - dReal getAngle2Rate() const - { return dJointGetHinge2Angle2Rate (get_id()); } - - virtual void setParam (int parameter, dReal value) - { dJointSetHinge2Param (get_id(), parameter, value); } - virtual dReal getParam (int parameter) const - { return dJointGetHinge2Param (get_id(), parameter); } - // TODO: expose params through methods - - void addTorques(dReal torque1, dReal torque2) - { dJointAddHinge2Torques(get_id(), torque1, torque2); } -}; - - -template -class dPRJointTemplate : public dJointTemplate { -private: - // intentionally undefined, don't use these - dPRJointTemplate (const dPRJointTemplate &); - void operator = (const dPRJointTemplate &); - -protected: - typedef dJointTemplate dBaseTemplate; - - dJointID get_id() const { return dBaseTemplate::get_id(); } - void set_id(dJointID value) { dBaseTemplate::set_id(value); } - - void destroy() { dBaseTemplate::destroy(); } - -public: - dPRJointTemplate() { } - dPRJointTemplate (dWorldID world, dJointGroupID group=0) - { set_id(dJointCreatePR(world, group)); } - dPRJointTemplate (dWorldTemplate& world, dJointGroupID group=0) - { set_id(dJointCreatePR(world.id(), group)); } - - void create (dWorldID world, dJointGroupID group=0) { - destroy(); - set_id(dJointCreatePR(world, group)); - } - void create (dWorldTemplate& world, dJointGroupID group=0) - { create(world.id(), group); } - - void setAnchor (dReal x, dReal y, dReal z) - { dJointSetPRAnchor (get_id(), x, y, z); } - void setAnchor (const dVector3 a) - { setAnchor (a[0], a[1], a[2]); } - void setAxis1 (dReal x, dReal y, dReal z) - { dJointSetPRAxis1 (get_id(), x, y, z); } - void setAxis1 (const dVector3 a) - { setAxis1(a[0], a[1], a[2]); } - void setAxis2 (dReal x, dReal y, dReal z) - { dJointSetPRAxis2 (get_id(), x, y, z); } - void setAxis2 (const dVector3 a) - { setAxis2(a[0], a[1], a[2]); } - - void getAnchor (dVector3 result) const - { dJointGetPRAnchor (get_id(), result); } - void getAxis1 (dVector3 result) const - { dJointGetPRAxis1 (get_id(), result); } - void getAxis2 (dVector3 result) const - { dJointGetPRAxis2 (get_id(), result); } - - dReal getPosition() const - { return dJointGetPRPosition (get_id()); } - dReal getPositionRate() const - { return dJointGetPRPositionRate (get_id()); } - - dReal getAngle() const - { return dJointGetPRAngle (get_id()); } - dReal getAngleRate() const - { return dJointGetPRAngleRate (get_id()); } - - virtual void setParam (int parameter, dReal value) - { dJointSetPRParam (get_id(), parameter, value); } - virtual dReal getParam (int parameter) const - { return dJointGetPRParam (get_id(), parameter); } -}; - - - -template -class dPUJointTemplate : public dJointTemplate -{ -private: - // intentionally undefined, don't use these - dPUJointTemplate (const dPUJointTemplate &); - void operator = (const dPUJointTemplate &); - -protected: - typedef dJointTemplate dBaseTemplate; - - dJointID get_id() const { return dBaseTemplate::get_id(); } - void set_id(dJointID value) { dBaseTemplate::set_id(value); } - - void destroy() { dBaseTemplate::destroy(); } - -public: - dPUJointTemplate() { } - dPUJointTemplate (dWorldID world, dJointGroupID group=0) - { set_id(dJointCreatePU(world, group)); } - dPUJointTemplate (dWorldTemplate& world, dJointGroupID group=0) - { set_id(dJointCreatePU(world.id(), group)); } - - void create (dWorldID world, dJointGroupID group=0) - { - destroy(); - set_id(dJointCreatePU(world, group)); - } - void create (dWorldTemplate& world, dJointGroupID group=0) - { create(world.id(), group); } - - void setAnchor (dReal x, dReal y, dReal z) - { dJointSetPUAnchor (get_id(), x, y, z); } - void setAnchor (const dVector3 a) - { setAnchor (a[0], a[1], a[2]); } - void setAxis1 (dReal x, dReal y, dReal z) - { dJointSetPUAxis1 (get_id(), x, y, z); } - void setAxis1 (const dVector3 a) - { setAxis1(a[0], a[1], a[2]); } - void setAxis2 (dReal x, dReal y, dReal z) - { dJointSetPUAxis2 (get_id(), x, y, z); } - void setAxis3 (dReal x, dReal y, dReal z) - { dJointSetPUAxis3 (get_id(), x, y, z); } - void setAxis3 (const dVector3 a) - { setAxis3(a[0], a[1], a[2]); } - void setAxisP (dReal x, dReal y, dReal z) - { dJointSetPUAxis3 (get_id(), x, y, z); } - void setAxisP (const dVector3 a) - { setAxisP(a[0], a[1], a[2]); } - - virtual void getAnchor (dVector3 result) const - { dJointGetPUAnchor (get_id(), result); } - void getAxis1 (dVector3 result) const - { dJointGetPUAxis1 (get_id(), result); } - void getAxis2 (dVector3 result) const - { dJointGetPUAxis2 (get_id(), result); } - void getAxis3 (dVector3 result) const - { dJointGetPUAxis3 (get_id(), result); } - void getAxisP (dVector3 result) const - { dJointGetPUAxis3 (get_id(), result); } - - dReal getAngle1() const - { return dJointGetPUAngle1 (get_id()); } - dReal getAngle1Rate() const - { return dJointGetPUAngle1Rate (get_id()); } - dReal getAngle2() const - { return dJointGetPUAngle2 (get_id()); } - dReal getAngle2Rate() const - { return dJointGetPUAngle2Rate (get_id()); } - - dReal getPosition() const - { return dJointGetPUPosition (get_id()); } - dReal getPositionRate() const - { return dJointGetPUPositionRate (get_id()); } - - virtual void setParam (int parameter, dReal value) - { dJointSetPUParam (get_id(), parameter, value); } - virtual dReal getParam (int parameter) const - { return dJointGetPUParam (get_id(), parameter); } - // TODO: expose params through methods -}; - - - - - -template -class dPistonJointTemplate : public dJointTemplate -{ -private: - // intentionally undefined, don't use these - dPistonJointTemplate (const dPistonJointTemplate &); - void operator = (const dPistonJointTemplate &); - -protected: - typedef dJointTemplate dBaseTemplate; - - dJointID get_id() const { return dBaseTemplate::get_id(); } - void set_id(dJointID value) { dBaseTemplate::set_id(value); } - - void destroy() { dBaseTemplate::destroy(); } - -public: - dPistonJointTemplate() { } - dPistonJointTemplate (dWorldID world, dJointGroupID group=0) - { set_id(dJointCreatePiston(world, group)); } - dPistonJointTemplate (dWorldTemplate& world, dJointGroupID group=0) - { set_id(dJointCreatePiston(world, group)); } - - void create (dWorldID world, dJointGroupID group=0) - { - destroy(); - set_id(dJointCreatePiston(world, group)); - } - void create (dWorldTemplate& world, dJointGroupID group=0) - { create(world.id(), group); } - - void setAnchor (dReal x, dReal y, dReal z) - { dJointSetPistonAnchor (get_id(), x, y, z); } - void setAnchor (const dVector3 a) - { setAnchor (a[0], a[1], a[2]); } - void getAnchor (dVector3 result) const - { dJointGetPistonAnchor (get_id(), result); } - void getAnchor2 (dVector3 result) const - { dJointGetPistonAnchor2 (get_id(), result); } - - void setAxis (dReal x, dReal y, dReal z) - { dJointSetPistonAxis (get_id(), x, y, z); } - void setAxis (const dVector3 a) - { setAxis(a[0], a[1], a[2]); } - void getAxis (dVector3 result) const - { dJointGetPistonAxis (get_id(), result); } - - dReal getPosition() const - { return dJointGetPistonPosition (get_id()); } - dReal getPositionRate() const - { return dJointGetPistonPositionRate (get_id()); } - - virtual void setParam (int parameter, dReal value) - { dJointSetPistonParam (get_id(), parameter, value); } - virtual dReal getParam (int parameter) const - { return dJointGetPistonParam (get_id(), parameter); } - // TODO: expose params through methods - - void addForce (dReal force) - { dJointAddPistonForce (get_id(), force); } -}; - - - -template -class dFixedJointTemplate : public dJointTemplate -{ -private: - // intentionally undefined, don't use these - dFixedJointTemplate (const dFixedJointTemplate &); - void operator = (const dFixedJointTemplate &); - -protected: - typedef dJointTemplate dBaseTemplate; - - dJointID get_id() const { return dBaseTemplate::get_id(); } - void set_id(dJointID value) { dBaseTemplate::set_id(value); } - - void destroy() { dBaseTemplate::destroy(); } - -public: - dFixedJointTemplate() { } - dFixedJointTemplate (dWorldID world, dJointGroupID group=0) - { set_id(dJointCreateFixed(world, group)); } - dFixedJointTemplate (dWorldTemplate& world, dJointGroupID group=0) - { set_id(dJointCreateFixed(world, group)); } - - void create (dWorldID world, dJointGroupID group=0) { - destroy(); - set_id(dJointCreateFixed(world, group)); - } - void create (dWorldTemplate& world, dJointGroupID group=0) - { create(world.id(), group); } - - void set() - { dJointSetFixed (get_id()); } - - virtual void setParam (int parameter, dReal value) - { dJointSetFixedParam (get_id(), parameter, value); } - - virtual dReal getParam (int parameter) const - { return dJointGetFixedParam (get_id(), parameter); } - // TODO: expose params through methods -}; - - -template -class dContactJointTemplate : public dJointTemplate { -private: - // intentionally undefined, don't use these - dContactJointTemplate (const dContactJointTemplate &); - void operator = (const dContactJointTemplate &); - -protected: - typedef dJointTemplate dBaseTemplate; - - dJointID get_id() const { return dBaseTemplate::get_id(); } - void set_id(dJointID value) { dBaseTemplate::set_id(value); } - - void destroy() { dBaseTemplate::destroy(); } - -public: - dContactJointTemplate() { } - dContactJointTemplate (dWorldID world, dJointGroupID group, dContact *contact) - { set_id(dJointCreateContact(world, group, contact)); } - dContactJointTemplate (dWorldTemplate& world, dJointGroupID group, dContact *contact) - { set_id(dJointCreateContact(world.id(), group, contact)); } - - void create (dWorldID world, dJointGroupID group, dContact *contact) { - destroy(); - set_id(dJointCreateContact(world, group, contact)); - } - - void create (dWorldTemplate& world, dJointGroupID group, dContact *contact) - { create(world.id(), group, contact); } -}; - - -template -class dNullJointTemplate : public dJointTemplate { -private: - // intentionally undefined, don't use these - dNullJointTemplate (const dNullJointTemplate &); - void operator = (const dNullJointTemplate &); - -protected: - typedef dJointTemplate dBaseTemplate; - - dJointID get_id() const { return dBaseTemplate::get_id(); } - void set_id(dJointID value) { dBaseTemplate::set_id(value); } - - void destroy() { dBaseTemplate::destroy(); } - -public: - dNullJointTemplate() { } - dNullJointTemplate (dWorldID world, dJointGroupID group=0) - { set_id(dJointCreateNull(world, group)); } - dNullJointTemplate (dWorldTemplate& world, dJointGroupID group=0) - { set_id(dJointCreateNull (world.id(), group)); } - - void create (dWorldID world, dJointGroupID group=0) { - destroy(); - set_id(dJointCreateNull(world, group)); - } - void create (dWorldTemplate& world, dJointGroupID group=0) - { create(world.id(), group); } -}; - - -template -class dAMotorJointTemplate : public dJointTemplate { -private: - // intentionally undefined, don't use these - dAMotorJointTemplate (const dAMotorJointTemplate &); - void operator = (const dAMotorJointTemplate &); - -protected: - typedef dJointTemplate dBaseTemplate; - - dJointID get_id() const { return dBaseTemplate::get_id(); } - void set_id(dJointID value) { dBaseTemplate::set_id(value); } - - void destroy() { dBaseTemplate::destroy(); } - -public: - dAMotorJointTemplate() { } - dAMotorJointTemplate (dWorldID world, dJointGroupID group=0) - { set_id(dJointCreateAMotor(world, group)); } - dAMotorJointTemplate (dWorldTemplate& world, dJointGroupID group=0) - { set_id(dJointCreateAMotor(world.id(), group)); } - - void create (dWorldID world, dJointGroupID group=0) { - destroy(); - set_id(dJointCreateAMotor(world, group)); - } - void create (dWorldTemplate& world, dJointGroupID group=0) - { create(world.id(), group); } - - void setMode (int mode) - { dJointSetAMotorMode (get_id(), mode); } - int getMode() const - { return dJointGetAMotorMode (get_id()); } - - void setNumAxes (int num) - { dJointSetAMotorNumAxes (get_id(), num); } - int getNumAxes() const - { return dJointGetAMotorNumAxes (get_id()); } - - void setAxis (int anum, int rel, dReal x, dReal y, dReal z) - { dJointSetAMotorAxis (get_id(), anum, rel, x, y, z); } - void setAxis (int anum, int rel, const dVector3 a) - { setAxis(anum, rel, a[0], a[1], a[2]); } - void getAxis (int anum, dVector3 result) const - { dJointGetAMotorAxis (get_id(), anum, result); } - int getAxisRel (int anum) const - { return dJointGetAMotorAxisRel (get_id(), anum); } - - void setAngle (int anum, dReal angle) - { dJointSetAMotorAngle (get_id(), anum, angle); } - dReal getAngle (int anum) const - { return dJointGetAMotorAngle (get_id(), anum); } - dReal getAngleRate (int anum) - { return dJointGetAMotorAngleRate (get_id(), anum); } - - void setParam (int parameter, dReal value) - { dJointSetAMotorParam (get_id(), parameter, value); } - dReal getParam (int parameter) const - { return dJointGetAMotorParam (get_id(), parameter); } - // TODO: expose params through methods - - void addTorques(dReal torque1, dReal torque2, dReal torque3) - { dJointAddAMotorTorques(get_id(), torque1, torque2, torque3); } -}; - - -template -class dLMotorJointTemplate : public dJointTemplate { -private: - // intentionally undefined, don't use these - dLMotorJointTemplate (const dLMotorJointTemplate &); - void operator = (const dLMotorJointTemplate &); - -protected: - typedef dJointTemplate dBaseTemplate; - - dJointID get_id() const { return dBaseTemplate::get_id(); } - void set_id(dJointID value) { dBaseTemplate::set_id(value); } - - void destroy() { dBaseTemplate::destroy(); } - -public: - dLMotorJointTemplate() { } - dLMotorJointTemplate (dWorldID world, dJointGroupID group=0) - { set_id(dJointCreateLMotor(world, group)); } - dLMotorJointTemplate (dWorldTemplate& world, dJointGroupID group=0) - { set_id(dJointCreateLMotor(world.id(), group)); } - - void create (dWorldID world, dJointGroupID group=0) { - destroy(); - set_id(dJointCreateLMotor(world, group)); - } - void create (dWorldTemplate& world, dJointGroupID group=0) - { create(world.id(), group); } - - void setNumAxes (int num) - { dJointSetLMotorNumAxes (get_id(), num); } - int getNumAxes() const - { return dJointGetLMotorNumAxes (get_id()); } - - void setAxis (int anum, int rel, dReal x, dReal y, dReal z) - { dJointSetLMotorAxis (get_id(), anum, rel, x, y, z); } - void setAxis (int anum, int rel, const dVector3 a) - { setAxis(anum, rel, a[0], a[1], a[2]); } - void getAxis (int anum, dVector3 result) const - { dJointGetLMotorAxis (get_id(), anum, result); } - - void setParam (int parameter, dReal value) - { dJointSetLMotorParam (get_id(), parameter, value); } - dReal getParam (int parameter) const - { return dJointGetLMotorParam (get_id(), parameter); } - // TODO: expose params through methods -}; - -//} - -#if !defined(dODECPP_WORLD_TEMPLATE_BASE) - -#if defined(dODECPP_BODY_TEMPLATE_BASE) || defined(dODECPP_JOINTGROUP_TEMPLATE_BASE) || defined(dODECPP_JOINT_TEMPLATE_BASE) -#error All the odecpp template bases must be defined or not defined together -#endif - -#define dODECPP_WORLD_TEMPLATE_BASE dWorldDynamicIDContainer -#define dODECPP_BODY_TEMPLATE_BASE dBodyDynamicIDContainer -#define dODECPP_JOINTGROUP_TEMPLATE_BASE dJointGroupDynamicIDContainer -#define dODECPP_JOINT_TEMPLATE_BASE dJointDynamicIDContainer - -#else // #if defined(dODECPP_WORLD_TEMPLATE_BASE) - -#if !defined(dODECPP_BODY_TEMPLATE_BASE) || !defined(dODECPP_JOINTGROUP_TEMPLATE_BASE) || !defined(dODECPP_JOINT_TEMPLATE_BASE) -#error All the odecpp template bases must be defined or not defined together -#endif - -#endif // #if defined(dODECPP_WORLD_TEMPLATE_BASE) - - -typedef dWorldTemplate dWorld; -typedef dBodyTemplate dBody; -typedef dJointGroupTemplate dJointGroup; -typedef dJointTemplate dJoint; -typedef dBallJointTemplate dBallJoint; -typedef dHingeJointTemplate dHingeJoint; -typedef dSliderJointTemplate dSliderJoint; -typedef dUniversalJointTemplate dUniversalJoint; -typedef dHinge2JointTemplate dHinge2Joint; -typedef dPRJointTemplate dPRJoint; -typedef dPUJointTemplate dPUJoint; -typedef dPistonJointTemplate dPistonJoint; -typedef dFixedJointTemplate dFixedJoint; -typedef dContactJointTemplate dContactJoint; -typedef dNullJointTemplate dNullJoint; -typedef dAMotorJointTemplate dAMotorJoint; -typedef dLMotorJointTemplate dLMotorJoint; - - -#endif -#endif - -// Local variables: -// mode:c++ -// c-basic-offset:2 -// End: diff --git a/misc/builddeps/linux32/ode/include/ode/odecpp_collision.h b/misc/builddeps/linux32/ode/include/ode/odecpp_collision.h deleted file mode 100644 index 2377a5ef..00000000 --- a/misc/builddeps/linux32/ode/include/ode/odecpp_collision.h +++ /dev/null @@ -1,429 +0,0 @@ -/************************************************************************* - * * - * Open Dynamics Engine, Copyright (C) 2001,2002 Russell L. Smith. * - * All rights reserved. Email: russ@q12.org Web: www.q12.org * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of EITHER: * - * (1) The GNU Lesser General Public License as published by the Free * - * Software Foundation; either version 2.1 of the License, or (at * - * your option) any later version. The text of the GNU Lesser * - * General Public License is included with this library in the * - * file LICENSE.TXT. * - * (2) The BSD-style license that is included with this library in * - * the file LICENSE-BSD.TXT. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files * - * LICENSE.TXT and LICENSE-BSD.TXT for more details. * - * * - *************************************************************************/ - -/* C++ interface for new collision API */ - - -#ifndef _ODE_ODECPP_COLLISION_H_ -#define _ODE_ODECPP_COLLISION_H_ -#ifdef __cplusplus - -//#include - -//namespace ode { - -class dGeom { - // intentionally undefined, don't use these - dGeom (dGeom &); - void operator= (dGeom &); - -protected: - dGeomID _id; - - dGeom() - { _id = 0; } -public: - ~dGeom() - { if (_id) dGeomDestroy (_id); } - - dGeomID id() const - { return _id; } - operator dGeomID() const - { return _id; } - - void destroy() { - if (_id) dGeomDestroy (_id); - _id = 0; - } - - int getClass() const - { return dGeomGetClass (_id); } - - dSpaceID getSpace() const - { return dGeomGetSpace (_id); } - - void setData (void *data) - { dGeomSetData (_id,data); } - void *getData() const - { return dGeomGetData (_id); } - - void setBody (dBodyID b) - { dGeomSetBody (_id,b); } - dBodyID getBody() const - { return dGeomGetBody (_id); } - - void setPosition (dReal x, dReal y, dReal z) - { dGeomSetPosition (_id,x,y,z); } - const dReal * getPosition() const - { return dGeomGetPosition (_id); } - - void setRotation (const dMatrix3 R) - { dGeomSetRotation (_id,R); } - const dReal * getRotation() const - { return dGeomGetRotation (_id); } - - void setQuaternion (const dQuaternion quat) - { dGeomSetQuaternion (_id,quat); } - void getQuaternion (dQuaternion quat) const - { dGeomGetQuaternion (_id,quat); } - - void getAABB (dReal aabb[6]) const - { dGeomGetAABB (_id, aabb); } - - int isSpace() - { return dGeomIsSpace (_id); } - - void setCategoryBits (unsigned long bits) - { dGeomSetCategoryBits (_id, bits); } - void setCollideBits (unsigned long bits) - { dGeomSetCollideBits (_id, bits); } - unsigned long getCategoryBits() - { return dGeomGetCategoryBits (_id); } - unsigned long getCollideBits() - { return dGeomGetCollideBits (_id); } - - void enable() - { dGeomEnable (_id); } - void disable() - { dGeomDisable (_id); } - int isEnabled() - { return dGeomIsEnabled (_id); } - - void getRelPointPos (dReal px, dReal py, dReal pz, dVector3 result) const - { dGeomGetRelPointPos (_id, px, py, pz, result); } - void getRelPointPos (const dVector3 p, dVector3 result) const - { getRelPointPos (p[0], p[1], p[2], result); } - - void getPosRelPoint (dReal px, dReal py, dReal pz, dVector3 result) const - { dGeomGetPosRelPoint (_id, px, py, pz, result); } - void getPosRelPoint (const dVector3 p, dVector3 result) const - { getPosRelPoint (p[0], p[1], p[2], result); } - - void vectorToWorld (dReal px, dReal py, dReal pz, dVector3 result) const - { dGeomVectorToWorld (_id, px, py, pz, result); } - void vectorToWorld (const dVector3 p, dVector3 result) const - { vectorToWorld (p[0], p[1], p[2], result); } - - void vectorFromWorld (dReal px, dReal py, dReal pz, dVector3 result) const - { dGeomVectorFromWorld (_id, px, py, pz, result); } - void vectorFromWorld (const dVector3 p, dVector3 result) const - { vectorFromWorld (p[0], p[1], p[2], result); } - - void collide2 (dGeomID g, void *data, dNearCallback *callback) - { dSpaceCollide2 (_id,g,data,callback); } -}; - - -class dSpace : public dGeom { - // intentionally undefined, don't use these - dSpace (dSpace &); - void operator= (dSpace &); - -protected: - // the default constructor is protected so that you - // can't instance this class. you must instance one - // of its subclasses instead. - dSpace () { _id = 0; } - -public: - dSpaceID id() const - { return (dSpaceID) _id; } - operator dSpaceID() const - { return (dSpaceID) _id; } - - void setCleanup (int mode) - { dSpaceSetCleanup (id(), mode); } - int getCleanup() - { return dSpaceGetCleanup (id()); } - - void add (dGeomID x) - { dSpaceAdd (id(), x); } - void remove (dGeomID x) - { dSpaceRemove (id(), x); } - int query (dGeomID x) - { return dSpaceQuery (id(),x); } - - int getNumGeoms() - { return dSpaceGetNumGeoms (id()); } - dGeomID getGeom (int i) - { return dSpaceGetGeom (id(),i); } - - void collide (void *data, dNearCallback *callback) - { dSpaceCollide (id(),data,callback); } -}; - - -class dSimpleSpace : public dSpace { - // intentionally undefined, don't use these - dSimpleSpace (dSimpleSpace &); - void operator= (dSimpleSpace &); - -public: - dSimpleSpace () - { _id = (dGeomID) dSimpleSpaceCreate (0); } - dSimpleSpace (dSpace &space) - { _id = (dGeomID) dSimpleSpaceCreate (space.id()); } - dSimpleSpace (dSpaceID space) - { _id = (dGeomID) dSimpleSpaceCreate (space); } -}; - - -class dHashSpace : public dSpace { - // intentionally undefined, don't use these - dHashSpace (dHashSpace &); - void operator= (dHashSpace &); - -public: - dHashSpace () - { _id = (dGeomID) dHashSpaceCreate (0); } - dHashSpace (dSpace &space) - { _id = (dGeomID) dHashSpaceCreate (space.id()); } - dHashSpace (dSpaceID space) - { _id = (dGeomID) dHashSpaceCreate (space); } - - void setLevels (int minlevel, int maxlevel) - { dHashSpaceSetLevels (id(),minlevel,maxlevel); } -}; - - -class dQuadTreeSpace : public dSpace { - // intentionally undefined, don't use these - dQuadTreeSpace (dQuadTreeSpace &); - void operator= (dQuadTreeSpace &); - -public: - dQuadTreeSpace (const dVector3 center, const dVector3 extents, int depth) - { _id = (dGeomID) dQuadTreeSpaceCreate (0,center,extents,depth); } - dQuadTreeSpace (dSpace &space, const dVector3 center, const dVector3 extents, int depth) - { _id = (dGeomID) dQuadTreeSpaceCreate (space.id(),center,extents,depth); } - dQuadTreeSpace (dSpaceID space, const dVector3 center, const dVector3 extents, int depth) - { _id = (dGeomID) dQuadTreeSpaceCreate (space,center,extents,depth); } -}; - - -class dSphere : public dGeom { - // intentionally undefined, don't use these - dSphere (dSphere &); - void operator= (dSphere &); - -public: - dSphere () { } - dSphere (dReal radius) - { _id = dCreateSphere (0, radius); } - dSphere (dSpace &space, dReal radius) - { _id = dCreateSphere (space.id(), radius); } - dSphere (dSpaceID space, dReal radius) - { _id = dCreateSphere (space, radius); } - - void create (dSpaceID space, dReal radius) { - if (_id) dGeomDestroy (_id); - _id = dCreateSphere (space, radius); - } - - void setRadius (dReal radius) - { dGeomSphereSetRadius (_id, radius); } - dReal getRadius() const - { return dGeomSphereGetRadius (_id); } -}; - - -class dBox : public dGeom { - // intentionally undefined, don't use these - dBox (dBox &); - void operator= (dBox &); - -public: - dBox () { } - dBox (dReal lx, dReal ly, dReal lz) - { _id = dCreateBox (0,lx,ly,lz); } - dBox (dSpace &space, dReal lx, dReal ly, dReal lz) - { _id = dCreateBox (space,lx,ly,lz); } - dBox (dSpaceID space, dReal lx, dReal ly, dReal lz) - { _id = dCreateBox (space,lx,ly,lz); } - - void create (dSpaceID space, dReal lx, dReal ly, dReal lz) { - if (_id) dGeomDestroy (_id); - _id = dCreateBox (space,lx,ly,lz); - } - - void setLengths (dReal lx, dReal ly, dReal lz) - { dGeomBoxSetLengths (_id, lx, ly, lz); } - void getLengths (dVector3 result) const - { dGeomBoxGetLengths (_id,result); } -}; - - -class dPlane : public dGeom { - // intentionally undefined, don't use these - dPlane (dPlane &); - void operator= (dPlane &); - -public: - dPlane() { } - dPlane (dReal a, dReal b, dReal c, dReal d) - { _id = dCreatePlane (0,a,b,c,d); } - dPlane (dSpace &space, dReal a, dReal b, dReal c, dReal d) - { _id = dCreatePlane (space.id(),a,b,c,d); } - dPlane (dSpaceID space, dReal a, dReal b, dReal c, dReal d) - { _id = dCreatePlane (space,a,b,c,d); } - - void create (dSpaceID space, dReal a, dReal b, dReal c, dReal d) { - if (_id) dGeomDestroy (_id); - _id = dCreatePlane (space,a,b,c,d); - } - - void setParams (dReal a, dReal b, dReal c, dReal d) - { dGeomPlaneSetParams (_id, a, b, c, d); } - void getParams (dVector4 result) const - { dGeomPlaneGetParams (_id,result); } -}; - - -class dCapsule : public dGeom { - // intentionally undefined, don't use these - dCapsule (dCapsule &); - void operator= (dCapsule &); - -public: - dCapsule() { } - dCapsule (dReal radius, dReal length) - { _id = dCreateCapsule (0,radius,length); } - dCapsule (dSpace &space, dReal radius, dReal length) - { _id = dCreateCapsule (space.id(),radius,length); } - dCapsule (dSpaceID space, dReal radius, dReal length) - { _id = dCreateCapsule (space,radius,length); } - - void create (dSpaceID space, dReal radius, dReal length) { - if (_id) dGeomDestroy (_id); - _id = dCreateCapsule (space,radius,length); - } - - void setParams (dReal radius, dReal length) - { dGeomCapsuleSetParams (_id, radius, length); } - void getParams (dReal *radius, dReal *length) const - { dGeomCapsuleGetParams (_id,radius,length); } -}; - - -class dCylinder : public dGeom { - // intentionally undefined, don't use these - dCylinder (dCylinder &); - void operator= (dCylinder &); - -public: - dCylinder() { } - dCylinder (dReal radius, dReal length) - { _id = dCreateCylinder (0,radius,length); } - dCylinder (dSpace &space, dReal radius, dReal length) - { _id = dCreateCylinder (space.id(),radius,length); } - dCylinder (dSpaceID space, dReal radius, dReal length) - { _id = dCreateCylinder (space,radius,length); } - - void create (dSpaceID space, dReal radius, dReal length) { - if (_id) dGeomDestroy (_id); - _id = dCreateCylinder (space,radius,length); - } - - void setParams (dReal radius, dReal length) - { dGeomCylinderSetParams (_id, radius, length); } - void getParams (dReal *radius, dReal *length) const - { dGeomCylinderGetParams (_id,radius,length); } -}; - - -class dRay : public dGeom { - // intentionally undefined, don't use these - dRay (dRay &); - void operator= (dRay &); - -public: - dRay() { } - dRay (dReal length) - { _id = dCreateRay (0,length); } - dRay (dSpace &space, dReal length) - { _id = dCreateRay (space.id(),length); } - dRay (dSpaceID space, dReal length) - { _id = dCreateRay (space,length); } - - void create (dSpaceID space, dReal length) { - if (_id) dGeomDestroy (_id); - _id = dCreateRay (space,length); - } - - void setLength (dReal length) - { dGeomRaySetLength (_id, length); } - dReal getLength() - { return dGeomRayGetLength (_id); } - - void set (dReal px, dReal py, dReal pz, dReal dx, dReal dy, dReal dz) - { dGeomRaySet (_id, px, py, pz, dx, dy, dz); } - void get (dVector3 start, dVector3 dir) - { dGeomRayGet (_id, start, dir); } - - void setParams (int firstContact, int backfaceCull) - { dGeomRaySetParams (_id, firstContact, backfaceCull); } - void getParams (int *firstContact, int *backfaceCull) - { dGeomRayGetParams (_id, firstContact, backfaceCull); } - void setClosestHit (int closestHit) - { dGeomRaySetClosestHit (_id, closestHit); } - int getClosestHit() - { return dGeomRayGetClosestHit (_id); } -}; - - -class dGeomTransform : public dGeom { - // intentionally undefined, don't use these - dGeomTransform (dGeomTransform &); - void operator= (dGeomTransform &); - -public: - dGeomTransform() { } - dGeomTransform (dSpace &space) - { _id = dCreateGeomTransform (space.id()); } - dGeomTransform (dSpaceID space) - { _id = dCreateGeomTransform (space); } - - void create (dSpaceID space=0) { - if (_id) dGeomDestroy (_id); - _id = dCreateGeomTransform (space); - } - - void setGeom (dGeomID geom) - { dGeomTransformSetGeom (_id, geom); } - dGeomID getGeom() const - { return dGeomTransformGetGeom (_id); } - - void setCleanup (int mode) - { dGeomTransformSetCleanup (_id,mode); } - int getCleanup () - { return dGeomTransformGetCleanup (_id); } - - void setInfo (int mode) - { dGeomTransformSetInfo (_id,mode); } - int getInfo() - { return dGeomTransformGetInfo (_id); } -}; - -//} - -#endif -#endif diff --git a/misc/builddeps/linux32/ode/include/ode/odeinit.h b/misc/builddeps/linux32/ode/include/ode/odeinit.h deleted file mode 100644 index bb430c8f..00000000 --- a/misc/builddeps/linux32/ode/include/ode/odeinit.h +++ /dev/null @@ -1,236 +0,0 @@ -/************************************************************************* -* * -* Open Dynamics Engine, Copyright (C) 2001,2002 Russell L. Smith. * -* All rights reserved. Email: russ@q12.org Web: www.q12.org * -* * -* This library is free software; you can redistribute it and/or * -* modify it under the terms of EITHER: * -* (1) The GNU Lesser General Public License as published by the Free * -* Software Foundation; either version 2.1 of the License, or (at * -* your option) any later version. The text of the GNU Lesser * -* General Public License is included with this library in the * -* file LICENSE.TXT. * -* (2) The BSD-style license that is included with this library in * -* the file LICENSE-BSD.TXT. * -* * -* This library is distributed in the hope that it will be useful, * -* but WITHOUT ANY WARRANTY; without even the implied warranty of * -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files * -* LICENSE.TXT and LICENSE-BSD.TXT for more details. * -* * -*************************************************************************/ - -/* Library initialization/finalization functions. */ - -#ifndef _ODE_ODEINIT_H_ -#define _ODE_ODEINIT_H_ - -#include - - -#ifdef __cplusplus -extern "C" { -#endif - - -/* ************************************************************************ */ -/* Library initialization */ - -/** - * @defgroup init Library Initialization - * - * Library initialization functions prepare ODE internal data structures for use - * and release allocated resources after ODE is not needed any more. - */ - - -/** - * @brief Library initialization flags. - * - * These flags define ODE library initialization options. - * - * @c dInitFlagManualThreadCleanup indicates that resources allocated in TLS for threads - * using ODE are to be cleared by library client with explicit call to @c dCleanupODEAllDataForThread. - * If this flag is not specified the automatic resource tracking algorithm is used. - * - * With automatic resource tracking, On Windows, memory allocated for a thread may - * remain not freed for some time after the thread exits. The resources may be - * released when one of other threads calls @c dAllocateODEDataForThread. Ultimately, - * the resources are released when library is closed with @c dCloseODE. On other - * operating systems resources are always released by the thread itself on its exit - * or on library closure with @c dCloseODE. - * - * With manual thread data cleanup mode every collision space object must be - * explicitly switched to manual cleanup mode with @c dSpaceSetManualCleanup - * after creation. See description of the function for more details. - * - * If @c dInitFlagManualThreadCleanup was not specified during initialization, - * calls to @c dCleanupODEAllDataForThread are not allowed. - * - * @see dInitODE2 - * @see dAllocateODEDataForThread - * @see dSpaceSetManualCleanup - * @see dCloseODE - * @ingroup init - */ -enum dInitODEFlags { - dInitFlagManualThreadCleanup = 0x00000001 //@< Thread local data is to be cleared explicitly on @c dCleanupODEAllDataForThread function call -}; - -/** - * @brief Initializes ODE library. - * - * @c dInitODE is obsolete. @c dInitODE2 is to be used for library initialization. - * - * A call to @c dInitODE is equal to the following initialization sequence - * @code - * dInitODE2(0); - * dAllocateODEDataForThread(dAllocateMaskAll); - * @endcode - * - * @see dInitODE2 - * @see dAllocateODEDataForThread - * @ingroup init - */ -ODE_API void dInitODE(void); - -/** - * @brief Initializes ODE library. - * @param uiInitFlags Initialization options bitmask - * @return A nonzero if initialization succeeded and zero otherwise. - * - * This function must be called to initialize ODE library before first use. If - * initialization succeeds the function may not be called again until library is - * closed with a call to @c dCloseODE. - * - * The @a uiInitFlags parameter specifies initialization options to be used. These - * can be combination of zero or more @c dInitODEFlags flags. - * - * @note - * If @c dInitFlagManualThreadCleanup flag is used for initialization, - * @c dSpaceSetManualCleanup must be called to set manual cleanup mode for every - * space object right after creation. Failure to do so may lead to resource leaks. - * - * @see dInitODEFlags - * @see dCloseODE - * @see dSpaceSetManualCleanup - * @ingroup init - */ -ODE_API int dInitODE2(unsigned int uiInitFlags/*=0*/); - - -/** - * @brief ODE data allocation flags. - * - * These flags are used to indicate which data is to be pre-allocated in call to - * @c dAllocateODEDataForThread. - * - * @c dAllocateFlagBasicData tells to allocate the basic data set required for - * normal library operation. This flag is equal to zero and is always implicitly - * included. - * - * @c dAllocateFlagCollisionData tells that collision detection data is to be allocated. - * Collision detection functions may not be called if the data has not be allocated - * in advance. If collision detection is not going to be used, it is not necessary - * to specify this flag. - * - * @c dAllocateMaskAll is a mask that can be used for for allocating all possible - * data in cases when it is not known what exactly features of ODE will be used. - * The mask may not be used in combination with other flags. It is guaranteed to - * include all the current and future legal allocation flags. However, mature - * applications should use explicit flags they need rather than allocating everything. - * - * @see dAllocateODEDataForThread - * @ingroup init - */ -enum dAllocateODEDataFlags { - dAllocateFlagBasicData = 0, //@< Allocate basic data required for library to operate - - dAllocateFlagCollisionData = 0x00000001, //@< Allocate data for collision detection - - dAllocateMaskAll = ~0U //@< Allocate all the possible data that is currently defined or will be defined in the future. -}; - -/** - * @brief Allocate thread local data to allow the thread calling ODE. - * @param uiAllocateFlags Allocation options bitmask. - * @return A nonzero if allocation succeeded and zero otherwise. - * - * The function is required to be called for every thread that is going to use - * ODE. This function allocates the data that is required for accessing ODE from - * current thread along with optional data required for particular ODE subsystems. - * - * @a uiAllocateFlags parameter can contain zero or more flags from @c dAllocateODEDataFlags - * enumerated type. Multiple calls with different allocation flags are allowed. - * The flags that are already allocated are ignored in subsequent calls. If zero - * is passed as the parameter, it means to only allocate the set of most important - * data the library can not operate without. - * - * If the function returns failure status it means that none of the requested - * data has been allocated. The client may retry allocation attempt with the same - * flags when more system resources are available. - * - * @see dAllocateODEDataFlags - * @see dCleanupODEAllDataForThread - * @ingroup init - */ -ODE_API int dAllocateODEDataForThread(unsigned int uiAllocateFlags); - -/** - * @brief Free thread local data that was allocated for current thread. - * - * If library was initialized with @c dInitFlagManualThreadCleanup flag the function - * is required to be called on exit of every thread that was calling @c dAllocateODEDataForThread. - * Failure to call @c dCleanupODEAllDataForThread may result in some resources remaining - * not freed until program exit. The function may also be called when ODE is still - * being used to release resources allocated for all the current subsystems and - * possibly proceed with data pre-allocation for other subsystems. - * - * The function can safely be called several times in a row. The function can be - * called without prior invocation of @c dAllocateODEDataForThread. The function - * may not be called before ODE is initialized with @c dInitODE2 or after library - * has been closed with @c dCloseODE. A call to @c dCloseODE implicitly releases - * all the thread local resources that might be allocated for all the threads that - * were using ODE. - * - * If library was initialized without @c dInitFlagManualThreadCleanup flag - * @c dCleanupODEAllDataForThread must not be called. - * - * @see dAllocateODEDataForThread - * @see dInitODE2 - * @see dCloseODE - * @ingroup init - */ -ODE_API void dCleanupODEAllDataForThread(); - - -/** - * @brief Close ODE after it is not needed any more. - * - * The function is required to be called when program does not need ODE features any more. - * The call to @c dCloseODE releases all the resources allocated for library - * including all the thread local data that might be allocated for all the threads - * that were using ODE. - * - * @c dCloseODE is a paired function for @c dInitODE2 and must only be called - * after successful library initialization. - * - * @note Important! - * Make sure that all the threads that were using ODE have already terminated - * before calling @c dCloseODE. In particular it is not allowed to call - * @c dCleanupODEAllDataForThread after @c dCloseODE. - * - * @see dInitODE2 - * @see dCleanupODEAllDataForThread - * @ingroup init - */ -ODE_API void dCloseODE(void); - - - -#ifdef __cplusplus -} // extern "C" -#endif - - -#endif // _ODE_ODEINIT_H_ diff --git a/misc/builddeps/linux32/ode/include/ode/odemath.h b/misc/builddeps/linux32/ode/include/ode/odemath.h deleted file mode 100644 index 2e689dbf..00000000 --- a/misc/builddeps/linux32/ode/include/ode/odemath.h +++ /dev/null @@ -1,473 +0,0 @@ -/************************************************************************* - * * - * Open Dynamics Engine, Copyright (C) 2001,2002 Russell L. Smith. * - * All rights reserved. Email: russ@q12.org Web: www.q12.org * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of EITHER: * - * (1) The GNU Lesser General Public License as published by the Free * - * Software Foundation; either version 2.1 of the License, or (at * - * your option) any later version. The text of the GNU Lesser * - * General Public License is included with this library in the * - * file LICENSE.TXT. * - * (2) The BSD-style license that is included with this library in * - * the file LICENSE-BSD.TXT. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files * - * LICENSE.TXT and LICENSE-BSD.TXT for more details. * - * * - *************************************************************************/ - -#ifndef _ODE_ODEMATH_H_ -#define _ODE_ODEMATH_H_ - -#include - -/* - * macro to access elements i,j in an NxM matrix A, independent of the - * matrix storage convention. - */ -#define dACCESS33(A,i,j) ((A)[(i)*4+(j)]) - -/* - * Macro to test for valid floating point values - */ -#define dVALIDVEC3(v) (!(dIsNan(v[0]) || dIsNan(v[1]) || dIsNan(v[2]))) -#define dVALIDVEC4(v) (!(dIsNan(v[0]) || dIsNan(v[1]) || dIsNan(v[2]) || dIsNan(v[3]))) -#define dVALIDMAT3(m) (!(dIsNan(m[0]) || dIsNan(m[1]) || dIsNan(m[2]) || dIsNan(m[3]) || dIsNan(m[4]) || dIsNan(m[5]) || dIsNan(m[6]) || dIsNan(m[7]) || dIsNan(m[8]) || dIsNan(m[9]) || dIsNan(m[10]) || dIsNan(m[11]))) -#define dVALIDMAT4(m) (!(dIsNan(m[0]) || dIsNan(m[1]) || dIsNan(m[2]) || dIsNan(m[3]) || dIsNan(m[4]) || dIsNan(m[5]) || dIsNan(m[6]) || dIsNan(m[7]) || dIsNan(m[8]) || dIsNan(m[9]) || dIsNan(m[10]) || dIsNan(m[11]) || dIsNan(m[12]) || dIsNan(m[13]) || dIsNan(m[14]) || dIsNan(m[15]) )) - - - -// Some vector math -PURE_INLINE void dAddVectors3(dReal *res, const dReal *a, const dReal *b) -{ - dReal res_0, res_1, res_2; - res_0 = a[0] + b[0]; - res_1 = a[1] + b[1]; - res_2 = a[2] + b[2]; - // Only assign after all the calculations are over to avoid incurring memory aliasing - res[0] = res_0; res[1] = res_1; res[2] = res_2; -} - -PURE_INLINE void dSubtractVectors3(dReal *res, const dReal *a, const dReal *b) -{ - dReal res_0, res_1, res_2; - res_0 = a[0] - b[0]; - res_1 = a[1] - b[1]; - res_2 = a[2] - b[2]; - // Only assign after all the calculations are over to avoid incurring memory aliasing - res[0] = res_0; res[1] = res_1; res[2] = res_2; -} - -PURE_INLINE void dAddScaledVectors3(dReal *res, const dReal *a, const dReal *b, dReal a_scale, dReal b_scale) -{ - dReal res_0, res_1, res_2; - res_0 = a_scale * a[0] + b_scale * b[0]; - res_1 = a_scale * a[1] + b_scale * b[1]; - res_2 = a_scale * a[2] + b_scale * b[2]; - // Only assign after all the calculations are over to avoid incurring memory aliasing - res[0] = res_0; res[1] = res_1; res[2] = res_2; -} - -PURE_INLINE void dScaleVector3(dReal *res, dReal nScale) -{ - res[0] *= nScale ; - res[1] *= nScale ; - res[2] *= nScale ; -} - -PURE_INLINE void dNegateVector3(dReal *res) -{ - res[0] = -res[0]; - res[1] = -res[1]; - res[2] = -res[2]; -} - -PURE_INLINE void dCopyVector3(dReal *res, const dReal *a) -{ - dReal res_0, res_1, res_2; - res_0 = a[0]; - res_1 = a[1]; - res_2 = a[2]; - // Only assign after all the calculations are over to avoid incurring memory aliasing - res[0] = res_0; res[1] = res_1; res[2] = res_2; -} - -PURE_INLINE void dCopyScaledVector3(dReal *res, const dReal *a, dReal nScale) -{ - dReal res_0, res_1, res_2; - res_0 = a[0] * nScale; - res_1 = a[1] * nScale; - res_2 = a[2] * nScale; - // Only assign after all the calculations are over to avoid incurring memory aliasing - res[0] = res_0; res[1] = res_1; res[2] = res_2; -} - -PURE_INLINE void dCopyNegatedVector3(dReal *res, const dReal *a) -{ - dReal res_0, res_1, res_2; - res_0 = -a[0]; - res_1 = -a[1]; - res_2 = -a[2]; - // Only assign after all the calculations are over to avoid incurring memory aliasing - res[0] = res_0; res[1] = res_1; res[2] = res_2; -} - -PURE_INLINE void dCopyVector4(dReal *res, const dReal *a) -{ - dReal res_0, res_1, res_2, res_3; - res_0 = a[0]; - res_1 = a[1]; - res_2 = a[2]; - res_3 = a[3]; - // Only assign after all the calculations are over to avoid incurring memory aliasing - res[0] = res_0; res[1] = res_1; res[2] = res_2; res[3] = res_3; -} - -PURE_INLINE void dCopyMatrix4x4(dReal *res, const dReal *a) -{ - dCopyVector4(res + 0, a + 0); - dCopyVector4(res + 4, a + 4); - dCopyVector4(res + 8, a + 8); -} - -PURE_INLINE void dCopyMatrix4x3(dReal *res, const dReal *a) -{ - dCopyVector3(res + 0, a + 0); - dCopyVector3(res + 4, a + 4); - dCopyVector3(res + 8, a + 8); -} - -PURE_INLINE void dGetMatrixColumn3(dReal *res, const dReal *a, unsigned n) -{ - dReal res_0, res_1, res_2; - res_0 = a[n + 0]; - res_1 = a[n + 4]; - res_2 = a[n + 8]; - // Only assign after all the calculations are over to avoid incurring memory aliasing - res[0] = res_0; res[1] = res_1; res[2] = res_2; -} - -PURE_INLINE dReal dCalcVectorLength3(const dReal *a) -{ - return dSqrt(a[0] * a[0] + a[1] * a[1] + a[2] * a[2]); -} - -PURE_INLINE dReal dCalcVectorLengthSquare3(const dReal *a) -{ - return (a[0] * a[0] + a[1] * a[1] + a[2] * a[2]); -} - -PURE_INLINE dReal dCalcPointDepth3(const dReal *test_p, const dReal *plane_p, const dReal *plane_n) -{ - return (plane_p[0] - test_p[0]) * plane_n[0] + (plane_p[1] - test_p[1]) * plane_n[1] + (plane_p[2] - test_p[2]) * plane_n[2]; -} - - -/* -* 3-way dot product. _dCalcVectorDot3 means that elements of `a' and `b' are spaced -* step_a and step_b indexes apart respectively. dCalcVectorDot3() means dDot311. -*/ - -PURE_INLINE dReal _dCalcVectorDot3(const dReal *a, const dReal *b, unsigned step_a, unsigned step_b) -{ - return a[0] * b[0] + a[step_a] * b[step_b] + a[2 * step_a] * b[2 * step_b]; -} - - -PURE_INLINE dReal dCalcVectorDot3 (const dReal *a, const dReal *b) { return _dCalcVectorDot3(a,b,1,1); } -PURE_INLINE dReal dCalcVectorDot3_13 (const dReal *a, const dReal *b) { return _dCalcVectorDot3(a,b,1,3); } -PURE_INLINE dReal dCalcVectorDot3_31 (const dReal *a, const dReal *b) { return _dCalcVectorDot3(a,b,3,1); } -PURE_INLINE dReal dCalcVectorDot3_33 (const dReal *a, const dReal *b) { return _dCalcVectorDot3(a,b,3,3); } -PURE_INLINE dReal dCalcVectorDot3_14 (const dReal *a, const dReal *b) { return _dCalcVectorDot3(a,b,1,4); } -PURE_INLINE dReal dCalcVectorDot3_41 (const dReal *a, const dReal *b) { return _dCalcVectorDot3(a,b,4,1); } -PURE_INLINE dReal dCalcVectorDot3_44 (const dReal *a, const dReal *b) { return _dCalcVectorDot3(a,b,4,4); } - - -/* - * cross product, set res = a x b. _dCalcVectorCross3 means that elements of `res', `a' - * and `b' are spaced step_res, step_a and step_b indexes apart respectively. - * dCalcVectorCross3() means dCross3111. - */ - -PURE_INLINE void _dCalcVectorCross3(dReal *res, const dReal *a, const dReal *b, unsigned step_res, unsigned step_a, unsigned step_b) -{ - dReal res_0, res_1, res_2; - res_0 = a[ step_a]*b[2*step_b] - a[2*step_a]*b[ step_b]; - res_1 = a[2*step_a]*b[ 0] - a[ 0]*b[2*step_b]; - res_2 = a[ 0]*b[ step_b] - a[ step_a]*b[ 0]; - // Only assign after all the calculations are over to avoid incurring memory aliasing - res[ 0] = res_0; - res[ step_res] = res_1; - res[2*step_res] = res_2; -} - -PURE_INLINE void dCalcVectorCross3 (dReal *res, const dReal *a, const dReal *b) { _dCalcVectorCross3(res, a, b, 1, 1, 1); } -PURE_INLINE void dCalcVectorCross3_114(dReal *res, const dReal *a, const dReal *b) { _dCalcVectorCross3(res, a, b, 1, 1, 4); } -PURE_INLINE void dCalcVectorCross3_141(dReal *res, const dReal *a, const dReal *b) { _dCalcVectorCross3(res, a, b, 1, 4, 1); } -PURE_INLINE void dCalcVectorCross3_144(dReal *res, const dReal *a, const dReal *b) { _dCalcVectorCross3(res, a, b, 1, 4, 4); } -PURE_INLINE void dCalcVectorCross3_411(dReal *res, const dReal *a, const dReal *b) { _dCalcVectorCross3(res, a, b, 4, 1, 1); } -PURE_INLINE void dCalcVectorCross3_414(dReal *res, const dReal *a, const dReal *b) { _dCalcVectorCross3(res, a, b, 4, 1, 4); } -PURE_INLINE void dCalcVectorCross3_441(dReal *res, const dReal *a, const dReal *b) { _dCalcVectorCross3(res, a, b, 4, 4, 1); } -PURE_INLINE void dCalcVectorCross3_444(dReal *res, const dReal *a, const dReal *b) { _dCalcVectorCross3(res, a, b, 4, 4, 4); } - -PURE_INLINE void dAddVectorCross3(dReal *res, const dReal *a, const dReal *b) -{ - dReal tmp[3]; - dCalcVectorCross3(tmp, a, b); - dAddVectors3(res, res, tmp); -} - -PURE_INLINE void dSubtractVectorCross3(dReal *res, const dReal *a, const dReal *b) -{ - dReal tmp[3]; - dCalcVectorCross3(tmp, a, b); - dSubtractVectors3(res, res, tmp); -} - - -/* - * set a 3x3 submatrix of A to a matrix such that submatrix(A)*b = a x b. - * A is stored by rows, and has `skip' elements per row. the matrix is - * assumed to be already zero, so this does not write zero elements! - * if (plus,minus) is (+,-) then a positive version will be written. - * if (plus,minus) is (-,+) then a negative version will be written. - */ - -PURE_INLINE void dSetCrossMatrixPlus(dReal *res, const dReal *a, unsigned skip) -{ - const dReal a_0 = a[0], a_1 = a[1], a_2 = a[2]; - res[1] = -a_2; - res[2] = +a_1; - res[skip+0] = +a_2; - res[skip+2] = -a_0; - res[2*skip+0] = -a_1; - res[2*skip+1] = +a_0; -} - -PURE_INLINE void dSetCrossMatrixMinus(dReal *res, const dReal *a, unsigned skip) -{ - const dReal a_0 = a[0], a_1 = a[1], a_2 = a[2]; - res[1] = +a_2; - res[2] = -a_1; - res[skip+0] = -a_2; - res[skip+2] = +a_0; - res[2*skip+0] = +a_1; - res[2*skip+1] = -a_0; -} - - -/* - * compute the distance between two 3D-vectors - */ - -PURE_INLINE dReal dCalcPointsDistance3(const dReal *a, const dReal *b) -{ - dReal res; - dReal tmp[3]; - dSubtractVectors3(tmp, a, b); - res = dCalcVectorLength3(tmp); - return res; -} - -/* - * special case matrix multiplication, with operator selection - */ - -PURE_INLINE void dMultiplyHelper0_331(dReal *res, const dReal *a, const dReal *b) -{ - dReal res_0, res_1, res_2; - res_0 = dCalcVectorDot3(a, b); - res_1 = dCalcVectorDot3(a + 4, b); - res_2 = dCalcVectorDot3(a + 8, b); - // Only assign after all the calculations are over to avoid incurring memory aliasing - res[0] = res_0; res[1] = res_1; res[2] = res_2; -} - -PURE_INLINE void dMultiplyHelper1_331(dReal *res, const dReal *a, const dReal *b) -{ - dReal res_0, res_1, res_2; - res_0 = dCalcVectorDot3_41(a, b); - res_1 = dCalcVectorDot3_41(a + 1, b); - res_2 = dCalcVectorDot3_41(a + 2, b); - // Only assign after all the calculations are over to avoid incurring memory aliasing - res[0] = res_0; res[1] = res_1; res[2] = res_2; -} - -PURE_INLINE void dMultiplyHelper0_133(dReal *res, const dReal *a, const dReal *b) -{ - dMultiplyHelper1_331(res, b, a); -} - -PURE_INLINE void dMultiplyHelper1_133(dReal *res, const dReal *a, const dReal *b) -{ - dReal res_0, res_1, res_2; - res_0 = dCalcVectorDot3_44(a, b); - res_1 = dCalcVectorDot3_44(a + 1, b); - res_2 = dCalcVectorDot3_44(a + 2, b); - // Only assign after all the calculations are over to avoid incurring memory aliasing - res[0] = res_0; res[1] = res_1; res[2] = res_2; -} - -/* -Note: NEVER call any of these functions/macros with the same variable for A and C, -it is not equivalent to A*=B. -*/ - -PURE_INLINE void dMultiply0_331(dReal *res, const dReal *a, const dReal *b) -{ - dMultiplyHelper0_331(res, a, b); -} - -PURE_INLINE void dMultiply1_331(dReal *res, const dReal *a, const dReal *b) -{ - dMultiplyHelper1_331(res, a, b); -} - -PURE_INLINE void dMultiply0_133(dReal *res, const dReal *a, const dReal *b) -{ - dMultiplyHelper0_133(res, a, b); -} - -PURE_INLINE void dMultiply0_333(dReal *res, const dReal *a, const dReal *b) -{ - dMultiplyHelper0_133(res + 0, a + 0, b); - dMultiplyHelper0_133(res + 4, a + 4, b); - dMultiplyHelper0_133(res + 8, a + 8, b); -} - -PURE_INLINE void dMultiply1_333(dReal *res, const dReal *a, const dReal *b) -{ - dMultiplyHelper1_133(res + 0, b, a + 0); - dMultiplyHelper1_133(res + 4, b, a + 1); - dMultiplyHelper1_133(res + 8, b, a + 2); -} - -PURE_INLINE void dMultiply2_333(dReal *res, const dReal *a, const dReal *b) -{ - dMultiplyHelper0_331(res + 0, b, a + 0); - dMultiplyHelper0_331(res + 4, b, a + 4); - dMultiplyHelper0_331(res + 8, b, a + 8); -} - -PURE_INLINE void dMultiplyAdd0_331(dReal *res, const dReal *a, const dReal *b) -{ - dReal tmp[3]; - dMultiplyHelper0_331(tmp, a, b); - dAddVectors3(res, res, tmp); -} - -PURE_INLINE void dMultiplyAdd1_331(dReal *res, const dReal *a, const dReal *b) -{ - dReal tmp[3]; - dMultiplyHelper1_331(tmp, a, b); - dAddVectors3(res, res, tmp); -} - -PURE_INLINE void dMultiplyAdd0_133(dReal *res, const dReal *a, const dReal *b) -{ - dReal tmp[3]; - dMultiplyHelper0_133(tmp, a, b); - dAddVectors3(res, res, tmp); -} - -PURE_INLINE void dMultiplyAdd0_333(dReal *res, const dReal *a, const dReal *b) -{ - dReal tmp[3]; - dMultiplyHelper0_133(tmp, a + 0, b); - dAddVectors3(res+ 0, res + 0, tmp); - dMultiplyHelper0_133(tmp, a + 4, b); - dAddVectors3(res + 4, res + 4, tmp); - dMultiplyHelper0_133(tmp, a + 8, b); - dAddVectors3(res + 8, res + 8, tmp); -} - -PURE_INLINE void dMultiplyAdd1_333(dReal *res, const dReal *a, const dReal *b) -{ - dReal tmp[3]; - dMultiplyHelper1_133(tmp, b, a + 0); - dAddVectors3(res + 0, res + 0, tmp); - dMultiplyHelper1_133(tmp, b, a + 1); - dAddVectors3(res + 4, res + 4, tmp); - dMultiplyHelper1_133(tmp, b, a + 2); - dAddVectors3(res + 8, res + 8, tmp); -} - -PURE_INLINE void dMultiplyAdd2_333(dReal *res, const dReal *a, const dReal *b) -{ - dReal tmp[3]; - dMultiplyHelper0_331(tmp, b, a + 0); - dAddVectors3(res + 0, res + 0, tmp); - dMultiplyHelper0_331(tmp, b, a + 4); - dAddVectors3(res + 4, res + 4, tmp); - dMultiplyHelper0_331(tmp, b, a + 8); - dAddVectors3(res + 8, res + 8, tmp); -} - - -// Include legacy macros here -#include - - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * normalize 3x1 and 4x1 vectors (i.e. scale them to unit length) - */ - -// For DLL export -ODE_API int dSafeNormalize3 (dVector3 a); -ODE_API int dSafeNormalize4 (dVector4 a); -ODE_API void dNormalize3 (dVector3 a); // Potentially asserts on zero vec -ODE_API void dNormalize4 (dVector4 a); // Potentially asserts on zero vec - -#if defined(__ODE__) - -int _dSafeNormalize3 (dVector3 a); -int _dSafeNormalize4 (dVector4 a); - -PURE_INLINE void _dNormalize3(dVector3 a) -{ - int bNormalizationResult = _dSafeNormalize3(a); - dIVERIFY(bNormalizationResult); -} - -PURE_INLINE void _dNormalize4(dVector4 a) -{ - int bNormalizationResult = _dSafeNormalize4(a); - dIVERIFY(bNormalizationResult); -} - -// For internal use -#define dSafeNormalize3(a) _dSafeNormalize3(a) -#define dSafeNormalize4(a) _dSafeNormalize4(a) -#define dNormalize3(a) _dNormalize3(a) -#define dNormalize4(a) _dNormalize4(a) - -#endif // defined(__ODE__) - -/* - * given a unit length "normal" vector n, generate vectors p and q vectors - * that are an orthonormal basis for the plane space perpendicular to n. - * i.e. this makes p,q such that n,p,q are all perpendicular to each other. - * q will equal n x p. if n is not unit length then p will be unit length but - * q wont be. - */ - -ODE_API void dPlaneSpace (const dVector3 n, dVector3 p, dVector3 q); -/* Makes sure the matrix is a proper rotation */ -ODE_API void dOrthogonalizeR(dMatrix3 m); - - - -#ifdef __cplusplus -} -#endif - - -#endif diff --git a/misc/builddeps/linux32/ode/include/ode/odemath_legacy.h b/misc/builddeps/linux32/ode/include/ode/odemath_legacy.h deleted file mode 100644 index b7426380..00000000 --- a/misc/builddeps/linux32/ode/include/ode/odemath_legacy.h +++ /dev/null @@ -1,181 +0,0 @@ -/************************************************************************* - * * - * Open Dynamics Engine, Copyright (C) 2001,2002 Russell L. Smith. * - * All rights reserved. Email: russ@q12.org Web: www.q12.org * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of EITHER: * - * (1) The GNU Lesser General Public License as published by the Free * - * Software Foundation; either version 2.1 of the License, or (at * - * your option) any later version. The text of the GNU Lesser * - * General Public License is included with this library in the * - * file LICENSE.TXT. * - * (2) The BSD-style license that is included with this library in * - * the file LICENSE-BSD.TXT. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files * - * LICENSE.TXT and LICENSE-BSD.TXT for more details. * - * * - *************************************************************************/ - -#ifndef _ODE_ODEMATH_LEGACY_H_ -#define _ODE_ODEMATH_LEGACY_H_ - - -/////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// -/* -* These macros are not used any more inside of ODE -* They are kept for backward compatibility with external code that -* might still be using them. -*/ -/////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// - -/* -* General purpose vector operations with other vectors or constants. -*/ - -#define dOP(a,op,b,c) do { \ - (a)[0] = ((b)[0]) op ((c)[0]); \ - (a)[1] = ((b)[1]) op ((c)[1]); \ - (a)[2] = ((b)[2]) op ((c)[2]); \ -} while (0) -#define dOPC(a,op,b,c) do { \ - (a)[0] = ((b)[0]) op (c); \ - (a)[1] = ((b)[1]) op (c); \ - (a)[2] = ((b)[2]) op (c); \ -} while (0) -#define dOPE(a,op,b) do {\ - (a)[0] op ((b)[0]); \ - (a)[1] op ((b)[1]); \ - (a)[2] op ((b)[2]); \ -} while (0) -#define dOPEC(a,op,c) do { \ - (a)[0] op (c); \ - (a)[1] op (c); \ - (a)[2] op (c); \ -} while (0) - -/// Define an equation with operators -/// For example this function can be used to replace -///
-/// for (int i=0; i<3; ++i)
-///   a[i] += b[i] + c[i];
-/// 
-#define dOPE2(a,op1,b,op2,c) do { \ - (a)[0] op1 ((b)[0]) op2 ((c)[0]); \ - (a)[1] op1 ((b)[1]) op2 ((c)[1]); \ - (a)[2] op1 ((b)[2]) op2 ((c)[2]); \ -} while (0) - - -#define dLENGTHSQUARED(a) dCalcVectorLengthSquare3(a) -#define dLENGTH(a) dCalcVectorLength3(a) -#define dDISTANCE(a, b) dCalcPointsDistance3(a, b) - - -#define dDOT(a, b) dCalcVectorDot3(a, b) -#define dDOT13(a, b) dCalcVectorDot3_13(a, b) -#define dDOT31(a, b) dCalcVectorDot3_31(a, b) -#define dDOT33(a, b) dCalcVectorDot3_33(a, b) -#define dDOT14(a, b) dCalcVectorDot3_14(a, b) -#define dDOT41(a, b) dCalcVectorDot3_41(a, b) -#define dDOT44(a, b) dCalcVectorDot3_44(a, b) - - -/* -* cross product, set a = b x c. dCROSSpqr means that elements of `a', `b' -* and `c' are spaced p, q and r indexes apart respectively. -* dCROSS() means dCROSS111. `op' is normally `=', but you can set it to -* +=, -= etc to get other effects. -*/ - -#define dCROSS(a,op,b,c) \ - do { \ - (a)[0] op ((b)[1]*(c)[2] - (b)[2]*(c)[1]); \ - (a)[1] op ((b)[2]*(c)[0] - (b)[0]*(c)[2]); \ - (a)[2] op ((b)[0]*(c)[1] - (b)[1]*(c)[0]); \ - } while(0) -#define dCROSSpqr(a,op,b,c,p,q,r) \ - do { \ - (a)[ 0] op ((b)[ q]*(c)[2*r] - (b)[2*q]*(c)[ r]); \ - (a)[ p] op ((b)[2*q]*(c)[ 0] - (b)[ 0]*(c)[2*r]); \ - (a)[2*p] op ((b)[ 0]*(c)[ r] - (b)[ q]*(c)[ 0]); \ - } while(0) -#define dCROSS114(a,op,b,c) dCROSSpqr(a,op,b,c,1,1,4) -#define dCROSS141(a,op,b,c) dCROSSpqr(a,op,b,c,1,4,1) -#define dCROSS144(a,op,b,c) dCROSSpqr(a,op,b,c,1,4,4) -#define dCROSS411(a,op,b,c) dCROSSpqr(a,op,b,c,4,1,1) -#define dCROSS414(a,op,b,c) dCROSSpqr(a,op,b,c,4,1,4) -#define dCROSS441(a,op,b,c) dCROSSpqr(a,op,b,c,4,4,1) -#define dCROSS444(a,op,b,c) dCROSSpqr(a,op,b,c,4,4,4) - - -/* -* set a 3x3 submatrix of A to a matrix such that submatrix(A)*b = a x b. -* A is stored by rows, and has `skip' elements per row. the matrix is -* assumed to be already zero, so this does not write zero elements! -* if (plus,minus) is (+,-) then a positive version will be written. -* if (plus,minus) is (-,+) then a negative version will be written. -*/ - -#define dCROSSMAT(A,a,skip,plus,minus) \ - do { \ - (A)[1] = minus (a)[2]; \ - (A)[2] = plus (a)[1]; \ - (A)[(skip)+0] = plus (a)[2]; \ - (A)[(skip)+2] = minus (a)[0]; \ - (A)[2*(skip)+0] = minus (a)[1]; \ - (A)[2*(skip)+1] = plus (a)[0]; \ - } while(0) - - - - -/* -Note: NEVER call any of these functions/macros with the same variable for A and C, -it is not equivalent to A*=B. -*/ - -#define dMULTIPLY0_331(A, B, C) dMultiply0_331(A, B, C) -#define dMULTIPLY1_331(A, B, C) dMultiply1_331(A, B, C) -#define dMULTIPLY0_133(A, B, C) dMultiply0_133(A, B, C) -#define dMULTIPLY0_333(A, B, C) dMultiply0_333(A, B, C) -#define dMULTIPLY1_333(A, B, C) dMultiply1_333(A, B, C) -#define dMULTIPLY2_333(A, B, C) dMultiply2_333(A, B, C) - -#define dMULTIPLYADD0_331(A, B, C) dMultiplyAdd0_331(A, B, C) -#define dMULTIPLYADD1_331(A, B, C) dMultiplyAdd1_331(A, B, C) -#define dMULTIPLYADD0_133(A, B, C) dMultiplyAdd0_133(A, B, C) -#define dMULTIPLYADD0_333(A, B, C) dMultiplyAdd0_333(A, B, C) -#define dMULTIPLYADD1_333(A, B, C) dMultiplyAdd1_333(A, B, C) -#define dMULTIPLYADD2_333(A, B, C) dMultiplyAdd2_333(A, B, C) - - -/////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// -/* -* These macros are not used any more inside of ODE -* They are kept for backward compatibility with external code that -* might still be using them. -*/ -/////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// - - -#endif // #ifndef _ODE_ODEMATH_LEGACY_H_ diff --git a/misc/builddeps/linux32/ode/include/ode/rotation.h b/misc/builddeps/linux32/ode/include/ode/rotation.h deleted file mode 100644 index a72be27f..00000000 --- a/misc/builddeps/linux32/ode/include/ode/rotation.h +++ /dev/null @@ -1,70 +0,0 @@ -/************************************************************************* - * * - * Open Dynamics Engine, Copyright (C) 2001,2002 Russell L. Smith. * - * All rights reserved. Email: russ@q12.org Web: www.q12.org * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of EITHER: * - * (1) The GNU Lesser General Public License as published by the Free * - * Software Foundation; either version 2.1 of the License, or (at * - * your option) any later version. The text of the GNU Lesser * - * General Public License is included with this library in the * - * file LICENSE.TXT. * - * (2) The BSD-style license that is included with this library in * - * the file LICENSE-BSD.TXT. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files * - * LICENSE.TXT and LICENSE-BSD.TXT for more details. * - * * - *************************************************************************/ - -#ifndef _ODE_ROTATION_H_ -#define _ODE_ROTATION_H_ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -ODE_API void dRSetIdentity (dMatrix3 R); - -ODE_API void dRFromAxisAndAngle (dMatrix3 R, dReal ax, dReal ay, dReal az, - dReal angle); - -ODE_API void dRFromEulerAngles (dMatrix3 R, dReal phi, dReal theta, dReal psi); - -ODE_API void dRFrom2Axes (dMatrix3 R, dReal ax, dReal ay, dReal az, - dReal bx, dReal by, dReal bz); - -ODE_API void dRFromZAxis (dMatrix3 R, dReal ax, dReal ay, dReal az); - -ODE_API void dQSetIdentity (dQuaternion q); - -ODE_API void dQFromAxisAndAngle (dQuaternion q, dReal ax, dReal ay, dReal az, - dReal angle); - -/* Quaternion multiplication, analogous to the matrix multiplication routines. */ -/* qa = rotate by qc, then qb */ -ODE_API void dQMultiply0 (dQuaternion qa, const dQuaternion qb, const dQuaternion qc); -/* qa = rotate by qc, then by inverse of qb */ -ODE_API void dQMultiply1 (dQuaternion qa, const dQuaternion qb, const dQuaternion qc); -/* qa = rotate by inverse of qc, then by qb */ -ODE_API void dQMultiply2 (dQuaternion qa, const dQuaternion qb, const dQuaternion qc); -/* qa = rotate by inverse of qc, then by inverse of qb */ -ODE_API void dQMultiply3 (dQuaternion qa, const dQuaternion qb, const dQuaternion qc); - -ODE_API void dRfromQ (dMatrix3 R, const dQuaternion q); -ODE_API void dQfromR (dQuaternion q, const dMatrix3 R); -ODE_API void dDQfromW (dReal dq[4], const dVector3 w, const dQuaternion q); - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/misc/builddeps/linux32/ode/include/ode/timer.h b/misc/builddeps/linux32/ode/include/ode/timer.h deleted file mode 100644 index fe1483f7..00000000 --- a/misc/builddeps/linux32/ode/include/ode/timer.h +++ /dev/null @@ -1,76 +0,0 @@ -/************************************************************************* - * * - * Open Dynamics Engine, Copyright (C) 2001,2002 Russell L. Smith. * - * All rights reserved. Email: russ@q12.org Web: www.q12.org * - * * - * This library is free software; you can redistribute it and/or * - * modify it under the terms of EITHER: * - * (1) The GNU Lesser General Public License as published by the Free * - * Software Foundation; either version 2.1 of the License, or (at * - * your option) any later version. The text of the GNU Lesser * - * General Public License is included with this library in the * - * file LICENSE.TXT. * - * (2) The BSD-style license that is included with this library in * - * the file LICENSE-BSD.TXT. * - * * - * This library is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the files * - * LICENSE.TXT and LICENSE-BSD.TXT for more details. * - * * - *************************************************************************/ - -#ifndef _ODE_TIMER_H_ -#define _ODE_TIMER_H_ - -#include - -#ifdef __cplusplus -extern "C" { -#endif - - -/* stop watch objects */ - -typedef struct dStopwatch { - double time; /* total clock count */ - unsigned long cc[2]; /* clock count since last `start' */ -} dStopwatch; - -ODE_API void dStopwatchReset (dStopwatch *); -ODE_API void dStopwatchStart (dStopwatch *); -ODE_API void dStopwatchStop (dStopwatch *); -ODE_API double dStopwatchTime (dStopwatch *); /* returns total time in secs */ - - -/* code timers */ - -ODE_API void dTimerStart (const char *description); /* pass a static string here */ -ODE_API void dTimerNow (const char *description); /* pass a static string here */ -ODE_API void dTimerEnd(void); - -/* print out a timer report. if `average' is nonzero, print out the average - * time for each slot (this is only meaningful if the same start-now-end - * calls are being made repeatedly. - */ -ODE_API void dTimerReport (FILE *fout, int average); - - -/* resolution */ - -/* returns the timer ticks per second implied by the timing hardware or API. - * the actual timer resolution may not be this great. - */ -ODE_API double dTimerTicksPerSecond(void); - -/* returns an estimate of the actual timer resolution, in seconds. this may - * be greater than 1/ticks_per_second. - */ -ODE_API double dTimerResolution(void); - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/misc/builddeps/linux32/ode/lib/libode.a b/misc/builddeps/linux32/ode/lib/libode.a deleted file mode 100644 index 71abaddf05c94fc8bcbefa19b75464f950f2ed18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5305756 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
?xCLM&xNd`V#n-jjj}WwE~i;}e{`xjyTa zmXUJJ#OT2d9|1+j*q?wUP8u;VB|Y1itDbN*Di9M8sQ)}niH=K8j!D7)Y$GGFpeQ>h zKhJ>A#H-k1BUhU?HgB#mcWhokNwM{sDp+$U@5Lw`ii)buO)Z?`D>UX7K(?XP#(?77 z0=_`*9~BuL!@z(d98Po=gX=#%OPq`5l$nPY#i-XpmF4KM;}ZkdCn3LJzLA@fG0Im^ zoD~%aMH}*tG74Ak%$B3Cigl6DmP+#Mx#Xtg;<4PMd|b7Z(NiWSOdfmX#FP{xJt-$O zPa2zkF>R!$Bu<)?GG#<^a^j@PXSULm=;(oldfjYK8?(qpp zhI&sOXjCedmjR8=Q1z0VGB>e+#Ro(id3fnOcH*eSNh!&RmrqEXIN563s*a4gQ|CqT z51Ku$A6q{ADjGYMi$Z=>c18vf6)+|>CnFhsxrrB;>aD8P2xFA4LSJfnNjRG`b+MJP&raX7V>>}yP#aVcao>G!mQshg=rAxV? z1Q(9Q2=so{_8T3EhBne{(MePCbJBHnq$l6#^A(K9OHV2+$@AH&mUcudYhsLo9MzkC zY1yzElma7@E?&ceT4hR^{JDFvzN=&uA`FMvc2w5UNwI-0Z9&{B$ELtv;t z$FL7P<9&IV#aYR?;DuOqV3ox-T#T4DHrdKt_fKmiU}Kt_m|UD%h<<4G`yz}N(HNW4 zeJntr@hMK;NbOxt7k@;0y48qzR%uEuZV38bZKTdsw`;sDNtr9HR9$(wq}C`qR*$k` zoxLQ7b!z1XlWopmR`{E3}mVo9#b3)i{HmshHa)TAR@ z<;8(om(OYfsv`tCn2|EKI2HXnFw9(qVQX@s&pyJ)1;bH?I+TW{#r8O&urPIgw4Fdt zvcFbLAD>$9K49yW)=dzXSl!`N+3U4HWEQa8sCo1dFs zQsnjJmE;by`oe7VD6E9b%ZHZ0dN(z6QzkvTs5mtb)8xh*#=xd(m-8kzL2tdzfE#Uo z37SN5c5XqAz210Ttywbf-@0DvPsLzgroKLBjwu*TSb@PC-sKagcoX{e^{QQF(KhnZ|_mQ+1aUimRSEGeMDZJ{>h&vjs;1R496n1mI)8j zLtU;_4*a4ryi9~k;GYq#J&7xwt=yNFn*8M!3!emkztc(^$+R)0uA5EkHR-j8HV}Ty zVN1WV)P1w-7A3z3(Od)bH+bq+^5cW)_aK@JQO@OS9-TfmnEouHxddcqb6dJiz82A3 zi?NK4kF~s{vur=Y^AXh^U?3f3^MdRIoB85B+HN~!N8jukeGAHDL>A4@MZW}-&YoT9n`=ap#fr(!%gDFW*yG~^oljBfj*g73 zPY%?i#>ljy;vsed9F}g(LJ=Rxs-R?cUTQAJ4qF`FsN<#{u&+La>~U@rHW2ZyADNe5 z?2AP6>yNI3-*rlfFDoUZ5IRvIzs~VV1*?>olrA3L{&QD9;l$Gd!}e6&s6b;_hIYbu z%CpJf?S{c$`lNYD=z8?AQ2!+#U0-2EExV3qJ}HLkNeELEJQ3{ju%o z`rC=HP28xv!7#icL(pl@A#B$-3;L*s*MoJS^&LW3%OGfkpz@N)C{Cvx0nKof#7|$2 zp~+S;Orx(8)O>f}iZioBhM@Vrkg!gA8hmy~KDuTIFs!fdR`3nciHK)8=(s`BUfu$f zHwp19FUM3}UcNEVeGNh5v)`j$Z2EMNsPiP>sypxpf?WXg)W>RKo_2k!*1~3O6w

V^bqh`X*i_ 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 D;PM89 diff --git a/misc/builddeps/linux32/jpeg/bin/djpeg b/misc/builddeps/linux32/jpeg/bin/djpeg deleted file mode 100755 index 536a162a0711a1ba8b0fa31cfd032e223ed7d9de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 528873 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̏D8wAI~E zqr8`Pa>j5hO5J`KAb$d*UQSCa(_8t{fJ%u;x;Pf)?+hI2EX2$ZtA(}IM@`|@AAAp9 zeJ?b8EKRc-Be_m0L9=lWQbSj8Df&T9Hp*u(2>bc${`<)>=P+qeNf9kPH8Z zeSch^qd9SW*g~HURdUBDKTa`kO+_#3N);6))b?{ffCW*FTu{kyR>ta$vpY#-hN^hB z#6e%w)6}BMn&tcY^|~T%NRE{@b82eS*|G{aWXNnXY%rX~(mbBQuj0^Q49#D0R|oVE z|AXYmsjL%A4<-lNhv|ArI?m6ZgGb&++PHL8m4#MkpLLjw9{d|EsW@x*1UvR(BV~N} zL=&SG+-$RE`|U5pWxafDAe$e(yQ=%8Ml$0R|1|p9!GM!0K%gurE6lGh&o}14);b2o zk3$j_g}mn{slvT)U!q#mFvaM$fJLYY016h8xgczc2~8#~KpvgDd`} zR%QM&_E<;W63&%N zQTe#+go{JEff>?3t^kK)UvL>EqQsOLAU@(qiO8j3Hs=7JT_O4l^Q8uHrKn?Z{n!_$`#(X!I@==T7n$j2%Aw9b z-4?DU-va?2qR5W5B|clKLLBR%xsLU%V_6@cfT`wMoMP(lsnitldPUFR*&>7!2RZu-o1Lxg2hCkerET|>78>%PEl1} z&lxqvB}I5iLnIO()U&Xv#=@a&c*vx1ubjNTmc4it3U%Z>TGBGDm8JcYu2s*<1 zj@8JqH%iVUy)RjfUiMZ&M|s~d@<4l~L>}u=GA0eN9}sl1cUCIUa|}Ao`-q{#Of{x^ zRZKg=eoV5u%nGRU05xEbHB1g5XloK%7r{iBob*^|COS9iaot`kG!2tp(stck6?*G* zU{C4(^N`UcNEcA-=VVrtS)O(q9`v0GkL2g$eS2H(3ut6u&{#xp^HE-)Xg0x3=)FL> z_&$u%11kjF90a(I)N(IH`vMP>q21P~P~cNm!QF^nc1O2oK8gjoi;#~yrl)u`#nUZD zI(OV)fXRH5>8pq&^*h^gAxABD{KXRYbjBSR!ec^-crbFK^>{3EFADvfq4~s|bStzS z#B?Jb{n8iPR`O;*U&Q763@GZ(tb}jMK|EU8?wrsvXpr4fqRe3d3o1Vu~wy^OF}V=DAM#)-Q` zV_s-DD}SxVl0%bQ09&fD#-W!%>jG4H)|{$ z`aA$^gO1rbv02~5C`5VZKB%$5q1KG~3ylp6{Sr*#{!(M3LN`K$xLY+gHgqRsru!JF+* zJMyJB;7zV+$foTjC!ivs@5%Zvb3i!hUg!Y3?zb9C4*e+`*elG*NpFmd-$iJX5}?X` zBlS9DYNeK=Tsw6$`pQY|PP(LaMI@E_OH?gjxks4ayJsUwlba;n{?uy_%S!z{QrM}D z&;yR;x+K(rd5pDPVtt4eZq*!0~ z0YSswaaMJZtI6BhyA@S*&opTnoe4XMJ8~&P8(-Ju~Es;~x5;-+3kyFzWIW^7aRPV)3D7l3_62|~e zdQ0yMl00a@V|8~khAyP5SZGx#^Q z_gj`?4A&bUm4_x7f!7ztQ#1VtxVnJ!87%@TB=;L8bgVatod2dlCwfiD3=jaI zxsyKGo6Wv>+vXz2NuTCjOVYn%LZ^GrGVQyjMVEQU*@X8^Xpwh_=m!R!?S0Q)g6NQ( zOT1-l!a+lv3U4(Bz#)THdv{V0e`0c;?>UTo*q{r&Pubqj1?8&1YeSCu&ft)y#f*N; z?o7r>UtxRiQ(6Qa&Mt2HO53YoGeTxnaii_^X8L3k4(WRx|wdn8aQ1rX$kk%sXyE_#2ZaSp3Nc$cJhqRVyrkBYd(pP4ZJ`QIRHyy<9 z#@6?BNGdlS(pRKcKZApWBF+079MV^2kAaS!Js^E$_84SvNK2VL&NMirok;7m9Zr#M zI;5A)P9J9SgY**VJi^h^8PZFn^GJi=<7nwT%Ha1pS~`z*v~=F&Xz4u0;6HV|3QCM~ zP5zr9ElIzzCjAyj97@;mCLGf7VbXiD!}UMtXQcHdhF*}4BCRhq_)|t&UuN)~Mp_pb ze7BL-g{J@ZINs?T0woT&&zK#J^sX}T_ZjJ3?P%%!x{==VO!@;xde1lbK_k7dH0eJz z()%h$OYb9EdS7FL*SjLUee_OOq_>Z51PbZxqmXtYy_cHAn_VrvmpNK`Z*jHsUT(s- zLK>5|>kR&=tEKsk&a1+!+l@3|>rmtAraxt*_f5_r!FRgeR`$is&ewwPcD*ee#p@g! zt9LhjkCE=TIHw7|*GTJIomPVHbG>&tmTq%01b^N2swqL%J9&b?WoCm74i%{2ZP#nT zPQKk4E%<)dYRVYWPx#cY<4O6mB8r?9#A}jNam`FV?lgVkkPI1 zXu!Q~GP{_=*3W?5l7ZR@-T+Z|F)DppJOD!2IIV$4i!@BhfPY8WMu!1@pYYQt4)7<0 zZ-9^k{0-qrAOm0rozfx~H38g+@L<#daBITdbpBlc2NWyUl+)77pk!N2QQoJd#&?b- z8z0NNP();uk|Rmy@0}JB>Ujkeu*aQjL6f~D9KVndf;RU0bOCC+`GTf-H5^8ctJAhb z;r&o^^~&+ zkd@45wBAWp@+#n){2rZPwdQ8fZZis8jy5r{HFtd4rwtRr`)+!3CvCiW%nR?w;1f`< z;n{#k!>!4;cAJZIR&N1mOV*Vc()axY9sv~ur5o@pqcw?ax8WuY-XS1u*+)8w@ofi> z*6b=BuMM}Hh}@fz*=4cFes#ydx7qU?_s!fZ00-1OJX`#h^lP@8q8 zqvRBOAkX8B&ds~M=*L9QLCm(?&BxVK%8Ayq4a-5smoO$b`f-(&B2I{TJt76vgGkln z2tegrmf9E;v{L^<4oq!_6_b6_!ITfj+KyxegbdH$Ro)`x>T`B_KIMv@FR-=hn(NA_3hE`*AIajk>9E60P$C!4m zVGDR{_AbK~Ys?Fsi`qC#G?p9+fyhjvob-Mnt`Z${-a076MWVA#=Q237mATxav0)Z<%WkW|atjR)@rkvfWGlk0CC~Q+xG?hO?$2fZm5TV^sB(QUBs-7CJ)as}9 z&m!P13hIbWzYE~9(2x%73A=zjF%75{ei_=@0~|Mc&v_Z*jb5j`xr}=++F{S97`T^c zKZ?Bhtn4nLoj?J5KGT0q^kH;>y?~)<$gV>k<>mtR++d&`Ut$q*tj#l=PS7M<_A*Kz zF8Vtj=M1r&kyjwojyy!OuVd(Dpy~LvI^TqHP-&}U6B6MdWyc-_b}F20*@q|wj{~zh zKZ$6$05T+6Gn?@`Am1*G*W6~rvw>P&r?HIRu*iTL?hZSZfMS7}YjIv+b7N^&+Olq+ z2x?HVN7YC-A;A^me=l*N!4)=%@GS7|8%eP$n_E41?Y_C)HxsY6d4T1vee}xi_me6$ zHjfJ3wFj>5{zpWN;`PGVh9cq66PD~r> z#I&JKOdIO_TN?_=^KWfv`v2qFP@}1&S?fQkseA_ujV3vg?guoLO%b8#J$TgDL0-%C zXiNurA*K;-tc?zGyP*H94w8A+*FkpYS}mr793p5`2dP7&I>>1f8r4DS&{OFk_jBC` z4bqR&L0&33pGpU*Lw|%0l9X&pTGiJL6*M%ySB(gUk>#s)L*?XjBKe zRM4mnQWGJngM3gzqdLgn3mVlyYVt;PkUH%@)5u=q4sw#D|DVx87E0bnPpN|x<$Zcg2PtaU^q3BE zrKFGPAlC~X(?M<$Jf?$`!|ga7ISqJwNoAyWU;+T33{ z#i@0T%oWj7>pC;(nNw>W%2R7f!^Bf-j@bB9>rTMw%ptTnwdOcXIJG_t9{SXpT}qMR zpIWmUc%%?LwJv5<`uL~TW$^G%t*<0(POYyaY)-9jB5Y2r|AVkOwZ5OQIkkR_usOAU zhOjxc{w-jAYTfdCfU)CQV)}Tt5eQ@@^BJuwj%V8g-{e;v$FrQO>^4th8bN*xY|Y6~ z`}pUbx%B2D!+3L>j@TpN6HrBX>f>23LgH+>0N*W>L++6 zo}6wI|0n6MPfoci&?l#?X2QwoE(EpZGC`k6#=?27<)55>$Vgl~=)=g9M+zdmEteGb zT0|Fu=#qFA6FW5Z^X$RsTyoey|1r@oVsx%S;_4~oMC<9FoYpcXmnU(Rl_E}v`3NHE zlhbxI$h3Ro2*jRb3%z;3k-I^8Z{onCy_}bgx7h^_R=*wOlxw`)TAlzrTv%+`ljZQH z<2^js(Xdlf(($M9=xiKnCqNP&31e3G0-hQc8yK`B>XM8l)#WY3{Z@`ry8(mCD zin$%QZfr=3c^7#42TT|eA~|b4U1}4*)XuMUMrf*_?XkF%qMJsG&RCAbzhwrkB+7mi znsx_1j)tgR=BLBI`FrS;*+9GUV6Sxs#>rY>R>r4Dbpbo5yY3&PdI65#n${`1GUdla zA7BApnV>a#tjl<&>iPxH{y-()9?X{~gL@H@r}rI$=%AU zU{c|=yUA*I63yi~-`$iKdw_Q1x!_io>elQn?4HGp9%9A^5!n4LW+`YxoZoeqb_?1Y zsBY=QY~Cb>j$qnHIKA*QhCN;aR$s0XHOn+2Fwv> zPabgw{3A|&+}*LdqmjzK2u!{fFE`)|5Rj8)uR^l;BhESSR7vg_{si3N`0)bnB*ygI z$MNGNxicA-cw6fLnkcFGcQ_N4t_6j@Oz0$4KGot;Uy|Hyd3)u z^th9*2fx?Lj95MRy+oykm#Eb65|tWW;^6m2*bhn0m-&N#6Q~hT4p6V5@TniU)PDV)>=UjRlxY>+iit zWhP*;{8HojBAtL5!nm~jQWNHj2P3;T;--x{zg9e$ve7nx%ak?+Q~AVjjw_~HD&jJQ zn1VeA=+AKlJrh7SGuOa3B>;)o(pK6OOqCL44m1T*<;?`sreLZ@=SNd8`v1|-52j!l z@whPsQ*-wr|3;-KYMRofU@E~BOfA-9QJaFPB^uMFVCq_pX;UyI!U`9B#S}~>n1ZQV z9aEcvshf_XTD~cmx>;k|6ijWMN_e#VCTreNv;or^XF zQ(H8qO~F)xDVRzy1yc#8U@E~BOg%;_`KDkh&J>ItC#GQPiCoaQ(eDwjv(lzuYNsw+ zn}Vrb48uBxreNwB9VDh;J|d=I>RBBkreHo2wvzvZ#0(KuG^Su`H!c6g6in^;JHUW) zA^4M~;vuGBN}GbIm%czCxuzkPPoS)GN$Mn}X3OsYxxT74=V; zf~j|>BS{mQ+9`EP1&caBv!y0)NUT$uf~hZ`K!m2FFsX?eMj2Bu6|i{4WklG!PKvu`z2?shJm2cwa}(uD$x{7z2Rg^ z&RPwl5>3I>+a^@2VN{|i7!3NDv&fu)A|;!WR-%SsGieH@+PDpIyM)c88b-APu@^RL2xd zQ!q8i)#TM`7B}4FqLQurV>rT zRJNI<)_|)Rr{7i6#R>Qzwj3}@@N#ImmK|;hRr=}%x zYN8qjX%jd#(G(1O8NPkUSHoaGV#KT%QK$|E)uv$Bo@oBkreLb0&2jCkVN|-YveIf8 zY(Tg^gme`niYTg0!BkI^vo-}&xdzpyU@FlROeLCvVYi~o)oK`ZrhSDpL91cZV0)gR zS`CA}j255T6b!qS>m^jHVbn-LqiPs6#=Z-|QByE=uEC8OMvXPNQNyTureJD<{h*{b zY8W*|h#xftQ&SCYOu^Iz27g_ff~jc+hcN<8!PJEYhcN<8!Bjm{Fm6TVCv7btx#55^+exIoo21yl7*!Bjm{Ftx(uZ`3fVo++4GXK$DOFlrce zn~85s!PI(#8&fb<&lF7EVegUjS`DLo>n?2y7DcrwSQOQ!U{TbVf~k6@VCr6D+GW%* zs-7vB+HCj5q7byx#sli-_AJ4T8b;l3-zK9-B7X&wI7`4ULm;H?zMm=cr&UMrj zO#Q-sKyagmQNOg`5!|R@)KGc5 zzm{S<5~bLVL@Bl-QHmv+f~g(CIKC+uP&40(DVTc7z7ti8O0iwitG+3idd8sI6ig+W zf~nn6DMnK;^^!r26!UGrv?-YKQEdvQUNIt1n}VrVO(nG{nEIVTwJDf-UB;?!3Z~vL zq1qHoy=hQw3Z~vNs5S*tZ`)kt_@-d$9TTce!BnCtn0nuYYEv-vfkCw?nA&epZ3?Ci z8scbEFm=eF+7wJBnu4iBQ!rJ}6in4K1yjdt*%O~!o++5><8UU4nu4jm z4yVqjDVXYK@cr5pO!YUoF$Gft9X)#(Q!q8i;Kme8ooR4LJDP&2dZu7%n90wWg5fw# zOJ_*0FEE#?kp?%WU}}`XjVYKK?P%$2Ou^I`gBw#YoSfY0M6%gicqr#1ys^-RH3q3ORp+7wKcINV@IO~F(>Q!rKSXz6WC z!PGpH-k5@^`366zO~F(>Q!sUvqoubt1yjCtmo^29qS_QJifU7^C<SpJD!FOv@FtyG} z#eqZA6inUXtPp&!HU(3+I@<*|reNwe=b+%m6ilsmx?rmS-qxmIYJQ;DWv>I>&=*;#0%y86=Af0;NCWwUCd$YXTWaBz-SSireL)2 z5~X@m&Zjg7OT*k6`V8F>?5Qhmh5i6y1#>l~LX9yI2J=j#La#Hdk6uM5haN(9!PCu} z8rky&w@o=S)40sTEFBuboCi#iO^FqH6Q``ffeQswh<_%cHs#DsRlbK=T*p7hkN-Qy zAG#$Pzm)Mgvs2ygVV2kN$NTa3v$P2>MC0GZ_?-E9C7>-<0io*{W1-*Dtq2b;@>{x> zVORStUCDM|qp{==Et-OhHP$#pBcI^XEl@SlJmoVmXK?wmg3X3TSTR|rM*N2upQ{;eqmr?*(eZ0)B!(5@TQP%kZ#1Pz@6XeDv9u47 zI-tmGO}Wev(>^RY#I#R+=Ugnzu1)*Yu>{jT^}SPRMg~p$)NyBp85uO~Q+Qo~pxU%g z+3pj9YSTXDxH>J#n}KqZIoU-yo2GsD!lNn03eEeHA!0(~Naj^KofYCcK!d9_rb5ez zt&I_JJ5y5#(IC)+K+;6H_lO~iFz!#9;5~uZX`-}m7@tClMuTY(SfQq5g8Ti_Zte~2 zfj<}`c4ycY9p;7JN7~?nS&~CfT{^WDI*-`%ev3;HJGduVSlkOe%&?brUdf^RiT&0u zXAon)!mi{{>dAiD*H8GJb&SH)?O__x zslV}4%Rv9@foN%2h}x7>3r#^AW17+NzyD5RSfR7o`r~cG!eyQeJ;&CWc^(aKgRVi7 zQ956j++q(N6V($=%VJAC=@4s)lhLP~w*Xnmd`3qJZYmuFz6k*`A55@X@hHh|9f5p7 zehh5I^CImdH!a}(H+u6N&UpU^BE!20d;%&5&j!?Rw4#WxThG&3^#;<06Q8WFec$2m z2&e))8}KBw6fQ%mxele8 zxqAV_!WqxDF+)<-+&v)vpU_{fL$%>yot$Y3EhMYfS-Pkrh}DM2b+Ues3+M8^H6JLV zF~ZyM5YH|JC!8YE>5RmqJ$onejEh8ulAK}>&HZ|Wpthe#?@2GiPjUJ z6qCwsXG|Uw##L5|I3eaA5wqFTU`jRKW!E(6k5nqyBy}?w-%724h_F+~VF)^@6&P4J zQKuzqutiHmYsEQPGem19LyLyddv45|8=}_4eKN8F0d+B>an3iX6Qi}}{g;GP*CJ{g z&iOHBlSs(wVP?gNHa;uKK-$Wofmkmy7N=JeD;6ONA=a0O<^G!Oo7EX{1FAcotvIim zWL$W)mda9#73)jgy5u58hcj!jR-A85O4Bin(S{RmTtlc9Ls?hBw-whLCIxHWnqm@R zw=#^YkGL>+KMbEXl*e*B;19DG8JTm58BnHccx$E=r#IuBNOR=&4I;GRoE6K>Cvpq; z1{67{6$PcqA+eh@UE=$?AELIQ;Eo%@rm?f(>-M3ferGknfLe!VD++Csw@~_O5?SiW zzO<5eBYY{GPhX1N__|1sOMKJqOwfv=*Tgct@Cm)!hNIq+BtD&uuqGGd@h=!wcVZq( zB#$33te%Mojh@7`95bwDxlYuunpMVv#28j<%r~som~U9EG2gJ7wBU5B4XarXoEI6x zY8~bqR_id|uv&-thSfUEH>}oSzG1ZvJGo)CUhMdW)jFMTSgkSNuv%ljVYSA7*s$7| zRIfynntTY#{h&$p^N7%{S0{Wn67tMG+qHSg<1pMeSOvDfqB}g#av9zUYpeF_931LW~B z#Q82yga3rMScSh3ARiqA-bwB$z8D~XWJ0lNrSmf#_Cbt3J1J=IL#Z2ng74lSsJ)mx z2ZEfMZze7#&w(K4{7->*JdEUaFi5iV9w_yswio2FNefiMO230SzYPg$|2bf9M6S&? z=`Z5woIedP=c$O=UUK?0z?{|t?_6rxpG%XhjB`3;sm0n&w(TxbqX|sbMJh9ab?HK* ze0w4Z)P)xL1{8zq^T>N$#Mb(Jf?elu4x7TbU4O#<)ZksLq=1>c$t#x)yMDk@HTW$1 z_yW%LU1u?s27k{8(K^n|tgP!4R)^!t$(qJvS z@mY%BuAgHAVL)m8Zr%9CT`a4Tbh*lJd`+zJHL=FemBvep=f#@2FxE^B@_iV#2Fqih zG*f(~ZE^*SZ4*GZO@q($MDnYpZO<_IHB$8#VqjN>3S|(tU+ne65XIST`lV- zHt0LQLEpq0^i8Zmf0YIa(`iuJb~M(T-%2xOv>%gZE@N+MPeejN zvU-ws=i0Wd--0m0CNcCI5JuRfMt2#4Bjx+U;}HW3rB;c~ z!0L7$X3lnG>}#StGB=J#=Em{Jyf_{)uuy7#9FHu}JR&l1vE~t>j)8?D1{R7KSSYeY z#}|rdSSX@(t)z&7KoJdTiWpcZVql@j(m38Ruux=K9Pb!dD6-t}&hF|f#*woXje7+9#*E{=~3EL3Z6_=sNyyNSYiUzCqth~uLd;`nG! z93L52sPOl5&fU~dSqXLhd2p*3hX7)w&nt(^o`G}df z7Etb;c)Y>Zs-$v!R{M!h`UK_|R1)MVjj~xilz5qb> zSUh^}M0g%wvXsl4pYJf^)d2oZfVVjF!1=kG08Aplo0T;H@^%2oeFl%)=>0N)Z3Nx| z@Oy@T#PHAX_=MQE#1z(JO?hNv_1cWZ5SM31fY`SLvL^%19*sxNS$Ld|NIAU$TmT?D zlVR=f=-JptR{4N(FUMm60&{Bs+(BS5fL{@)1MmTXTLJu?z&!vu;P^1_0RXv=;xP(X z?ymsMB(Mj-3IeYI;O)KK_W|rB@Cg75M+&*$0BBFZ!5VB3fkpuC1c26*=2{j->qOMg z{&^t#RlwQL;gPcgkEanS=RpAb0c799uv_rxxreQJ4^ZwQJor_v+^+$2CSXJ4j396t zfY}6E0l0xc27oODasj+SU;uzL91G?-pb_Cbv=nW+3=2?uLm)c>IQv38a>n5?2$6Dz0Js!D_UR1khDT4nJ}dVMK#Sp@ zy9mI&1Zn~7CU6UYj|toZz{9A|+X5i>F+B2sb$q7=VYBUta*I@|UPG7lM2*mwi_tJ0EcNBs_9P;&CA&yJkVbi}0pxbU<4nq?UI6j|ph=JR!l(s04VAR-31rs- z&R&E^&J}npL8P1rfS&-!zK~(#@aVZ1vGZ;LlzR^z&ml1PK>&XuumeB?$d26S08q;1 zz6xL*f%gEE1IRlFAomMA*3^*G0H`F;3&1)8X8|Aw z=8geCe#@N-AQ|12I|IP!1j+#1Lf}dO%|Q|Tb!*xOgAgLc9*;MU>7B+n#ksA6SP4!L z^Gq)141{UeK-?*4utO#@FtE(36aNo;?*X4xk@b(?nR{6csxvtFD5pu3hX{up;&qJ8Q4_|9;Pzd!OeC8^vAS z|L=X@wUhaR9jCp&;4_J*9_$Dmet~M_8C5ZRHT~ zIAJ*iRLe`g4F*sT0X1?67!A1FL{R4u<3kX=_CCDycL=**3b4(6uagjXg@H2> zI0`R4G~)LU1kp77+U>}Z=_d@OrzEN7wE>9vfZaL{R%J0ti_xWzJr+boc*AJ79^ms^ zZ)3v3%{x%Id4B|4%{yE(-sjn>x(7$=AfGha6_cQb?*?8wnREyHoODIlLEF_vNS`2F zzixyNPABm10argrS`#I`dJj%a7p6ZTbBM;%8;}e4=UhM3#}f9AV0Jnma&R?W54o^6 zfbMXQBkj+uGt`h81S z^rgR$kB8RSL%o_4K;1MWl@jgC8jz+6-2fzO-xW*W?L)Ylh{Zn1-Nftzsg_rG7B!)a z8A!Ff!m}0dT4LC&M`?(_*ygAX9EQ`WIC6Q0-Z~qq<@vvwTHY^r!j@Ib`=9N3EmtQO zp4U`g?YHo}maCHs&uh6lx&NW(wFWx53o%_{&ufWJZsK_@S0}eHPbW9m^I8L)T#}S~ zC*D>iI=M-#Q^*Ul3VA_RAuq@(`WG3ZE$C*-`YN1{39Y z7F~kJbgTMzb}vHK>EGG?e_;8de|IC|6Jsx+dmrAX_5j}LHUAio*2b#-ot;RK6sUh^ z4_zye>fhPPN{{+?jHkhAsVDUBim>-5u+zV@M=b?b5e=!2v8sP(^YriRH1-(p$haHY zlN3_@JA1N1s()ws6$VVzzq5JzcQ#M|&YnXr1F`;{Jy#*szq9;uLz?Q}**yI_dzoUY z{++#CA=SULSF_=<{+-R!zq5;!rt06>JpDVHr+;Vj^zUq*{++#zy%g);*&O{l4xH%U z**nV7$3^!5uf0|MJ1h4C94tDvv-dI$y-EE$%a2e1qJI|yqJL-a*A&sei-8(1y&RdD zA|vYb@9YByA~p=@9I&Ja=c&N{0^K;f@(tuJ=_mOb)s3@nmjj{nYCJ^i%{r|&8=4t- zFQRp#^#+jk;m|xWJ_wL@ZDI##0I!$!s@5Ao9Wm8<1IU)4Hy|YinrEU&@nC zz1bC(T57gVwcc#L)|-9VrK;AO&DVOfd0KDm$x`-}XuYwS)Oxd({++Iw)Oxd34pgl- zTkXFgsjBs6+xZ3Dlj>CK&DQ(<1yrp!+tuGsK-GG)y?yOK)q1mi{IeugwchMNe~Eyq z^=60o+P$jvW{0}Gs`X~`wcc#5*4tTVL@CEywBFb(YQ5RFlF_5qo6XmHv-w(Ya44el zKpmjjT&=hLL0PokY+8)zguyWMqiDU^4Gql>LI?}bmh(`IYP}&|^hIo0{!E3M8xWJ3 zT9!Xk^R?cPH*coqYrWZ4MlA-a12o%K99qTtBDUIrs`X}T+$>kEH(P7CVq>j0TW7vw z2i2**h|Sk}OF-3nvppSU)q1nN9H?4vHec(_=4-v#!LD4@db2}~S{qcYH#^)!IH}Wh z5FMb|O^t3^s`X|^nAVc2T5ons0TZn^yN&6A&=dFu+w_8yE@ouz1ap@Z+17s%`Y)NXd7s~*#=r~ z_CQC^X}#HThVRrw>&=dLu+w_8hd9`2z1c&ZLp11d&;gpA!uEdb16*-fRP{H`_q#&CYQ2oz|N@S7xYR2fYzGK(lj15eu4I>O#j} z;P9Q+o1N=mr}btVXua8s&8{+@s`X~`wcZj?wcZj?wcZlYX}#G7T5tApLnC+4AXMXn zwt?20y~e09K&SO)uQgu_zSDZM*BOdzpzqX$j=kQ{q8xOJ)J2Y6WS$h*X}#GS49))} zT5tA7GXz5j_e<&k&E8}t2<)`p>|%4Bz)tJU{>3a7*lE4l9IdxfZX%*5fel6UBg25a~&qp99B%xbyv9^dA{^Wf zAHUe*flt$fr5tO~lfbwu{$?>g^(4aIjZW~_5}$KH^dvAZ6n|ulPd$ln)Wih82T)5n zS42+&^G5U}!V}__QcohB61S9k65)w)OQ|OjPE|t5Ye`G+P4w%(tIXU4(U!wnf)EuvSBy#%DD(#PB$3D zsN`zQX$V;uD61B+<=li^4%R#to*u$9Zb><5$T9{oRm&N@G5CsRnjxR@Mf^7H3!bHz zG@QzXG?Cz3qD*By&Hz{qChSQp!i=stmnkRnRYi7r&1D2n;hSm&K(DGl`NP!FFprwo zLHy_^gXl9-lmeEqfa-n#MUrwEX$~WJ6>~gtASUy{1X~CQrmJ@&z#8td<}o(uZGc|Y z2`uD8a(iDh(@?-$_V+BGqF7dQ~@*Ocjgzz^nlY`&1Au zL`toYd7otLY-e)xeNwTr1Fw!Q{>&lFRcK5xvW&-XIkL5vYz2n-z6T6>A-qS7N7Q*{ z60lBR9z-3%me+b-OvIf4);w4Pl=+;3GXZ*4RPQqnFyBNo3wbWYZyr*#ViR1&ysG_) zcO&ukHVc4rEq==qys-%$HQdY}iC1G51BYDZ&w;1)s3u+wx~1({1WYwsx-G#`%u$WY z2=6F>^_T>;OuGy~ha!;ZiC;avuA4sO5BweRHT0`)`jV^g3_wT-k@sETOwx5E@4LX6 zq)XHN8tHZNI!{AM;i;w!F~&6e4%PMg;WpZOhk~6Jn2Yd^_-ZArRiZ!=HG{#qpO5a! zb;#4i8OI_l%r{t9m~XJIFyCNZVZOn-!hCC$O`LJeuR0!lM$2pH224D$R+$`SxDhvT z#?dWJobl;cdrh4230@Ot-21=78UG93_2h*(&bWdJXZ(3dO*rG<37BxkyWs3kb3bcv zo&{%oR{7E5f58nh3DPjG;zj5&a5WRxIs5GamM*k<<~WF#=R!a z`2TC1@ip=qi#g-1@M-+hobec6IpbR<_>FPKV|?X|?~~yFww&=T!KKM^#`hFx{W;?^ zl3K1GXZ%LR|2H|~)Ckl*Z;UfuEcK5$<6Q;%U&R@Z+2K4&gu$_R=Ci|3m-yL?S9Um0 zd5y5cFF;Zyk9|38W-@rPtWOkiJCS%8%;7MvgS3)JJR%yh1b>#lZGc(HBcz$SKIpxO z&NF3BJ*6CB0?Wg3VD};>kDED_l_J)`oC&0o=kQn$cK9toE9dHT3|eMG&yXu#UVS3#TR9+SBN|L!%JTk-Eclc6{E`%UIe{Cm)3 z?!&)_Oy*s%B_B4Ka{w(fnMd&N5tI2Ck&l|pm-zRX$*je{CrpOsXr45gBK&*GWG+PH z113|6e~+6C4G=9infH+WX*iO?zh_J)!oO!traAsSXEH7EZ-vQJ;otKn(;oj`FqyF+ z_M*uYg33!KvpFJPHknHSy<#%&gXT(;>59l#P3Bxgt}>aqfL=2h+VOeaWOl>9H%w+I zBHuKbeE_{>GUM^@ZIhXVfA5&g(fIcdlQ|Lp-Zhz1@o%-soPmGunan}R_rA$of`1>F z3{4$%pZy;P2LB_26%;vugcVI$YuV>L4@Rv=U+*1xA!q%K9!lw9`(o-2FzP^ z7#_Qj`k{s_;M|rbY|ON5VDQub;WcR z-WQ-(yDNCz9hq&8VdN}id;HlT+L5?&kuaNCrw|+o=8~CBtiJ$kCpR$XiR2?ZpbcQV z&u8LtB-VjRe*uBF0kppcG6OYK1~ZG;k6$4U?R*p^k7hgXG|N%q4bKJ91{=qv-oa7_ z5R_8yAg$90u4IloxD+1+sP{g1@!n@OK~WgFo5&@DwH5-@1MuqWT4OdadzCSZQQ8qJ zpxc2Ibpuu@7bg1=mMy%}uy4-<+>yfnZKZn_0PG~X2Gt@Mbqipxo+jC7x6mvzW*Ue- zf#1_4BpvvW5dML%+%`QVl==<XOr&%cO3w%- z+y!-!DfEmG;$=|RdytO?0x|Q9=_be%1=;KR3X-ZhIOiluvoxuG({d=PvEKhM=5>@b z;RQHcW4(mHJA(BF;7(HScTEMR*r1_MA?bpQEOHqJ*8J1-coJc+Co6yJ^Fg!^$e2$| zk6Re)b=@7vBUpjGk_znMD)2m#C;(x8G-eWVwS6gwwnG70fwh8l3}6`nPsIP01MDS} zO<_BEQm4*T+Ax-rf-dEBfUM3^X{=w9KYw$4dN>HZNYEG;EmX4 zkECxnQbUrYjU{OSC=Znp9dP7+*&zHgY3x8La1)t!Uj1nxL17Uy%$geX+M}-o(T!-U z_S`0xjd>YxFB!VwmP2PJZ`TopY%2X&IV|p|&7`A70q#!YavYPI5R|vJJ>EjN{cr#q z(H@_jz57Pr$p7sI1!%@G$TFxo0;e<38iBtffL(2SkYSe`f{LAspV`Cq*bK1On;kQj z#P_y6_CUD(EC7SXBlHZi4n6{bK_}v|h7@Na;14H7ul^>Gq&SQ@*qY^N>l^shB25>@ zLDF6<46puOAkw0!Io6srKspKcb=w0`JLVWcJQgr};yCGvn*e!3syJMa^Krg4vyh1w zeNP}sOE@nsVW4#A1=6A3(A-1^0$GQ&{j9snJkhCQprqpAuofeOlaD+3k69Pj8IJx>_?^ z2rjL|IjtE=uR!Js&!Us@$ZE|H;z?}@2GZ`&Pa@TtIS28Hlwxu>NP8L0pTQ$XYla{x zsMZXf>)EvViIf2&s7-^-#oVW8VZwt;gJ;RzxvrHq?svr%+N~K+uYa*f-7> z5VRsRHPMQoCqAkR9EBl!2dT2$kCyUuv4YeYU6Z*;B zkAlhF&!v)@-2FV@n%Rv1>;2CJOzwW#VQ)rvM&*$5fL4TdLZTJ1ounprKSv3e-2G_x zCR!1i_vf`DMq}WLIpz(uB9wp^{byPcok2M>4>J*35p-b%|6AzCMBtb6xAZ~8Q-rc? zyay3VLS-UCxdI_C%_pasOnHbmiRw1UKl{FIn=U1qqKnwXPL9lDl$0BIVLI3r*juu-HdiNtwgdf|~niMxVO%058zQKEAmnXT3b z{TrflV&&9R%1P?klI4JKCm^-voXe@K6tNEGXdsm@CgwFf-nKP7bZm{^H^affk&|u} z$E$u*a4`Z@Kn1P5@|T!rI`fP$I{^P!{0;=Zh= zt!kdI!q}DQ7#t6+*B7fbFk|uk{?_}D%mP8=^31($f6EhAlg{$tn3qkGS(t!Ll37^Y z+0&Pt?V5C!;U+Nk3103^I?J1mON6nSbe8|G=`1%%W;N+7H|Z>sAJL?<9F6CNT9eMQ zU)Q9wjET^sv&^G1xOw=xZ%k)7mYkxCtZ;CXWEOg1mnO+92#}B`hI#W}(OGVi%#!Y| zXp+nVFHmH`5^<~l{gPQ#vnjB(7nq4qR3<;0491SDf~e(YkVVg zkCB%c(+gNXyb(laA*n{#qVwgR{|>^J5NW=c+G+bcNa4uc{-tuazZh^kN}Mc^0=L|p zlv`3rqMp?_(HQT|AUYGj{gI@UrwHZQM6LTXP)Cvc=a6y%b95FkZ^N(W7Qh~XHwgqb z7{41}F|__qDd!M?^)NkVJ{8dHSijT$F#uL>J-*{z5(G}_Hw9l;5#f%;t1H3Hd^6V0 zw?g|Kl-K$#T)rn|dX{D0K=?&U9IEifTXCUAZsN_3?OCV;MxcHyRl)88qF4oY1t`4~ zNY3d1y}A=njmKDx7FvxORAD-P7a&!eUMkhNpRiP;RB~^)r7KFo8Uaz1f_(u>Q7r{| zGC;3d2JAeR)eGVRC}Z+Jf@lVkbU=EFxWKJ|Yo(mt+PN>vj~biv~p%%PH;;c_KoZhW!nIxOsNs$4r2gz6|=y#?*X|pCVD#(>C_pLC8ll@ z1g8T9ReGCM8Yn>unRV$4aUwI2r5#C*7{RFs63uSJYYQndwD2h0jC_k$>fEf7&7#A$ znAPa~YFX~P1M0=j>GfU^&BD(NFukXX{8ksX$h0H5v1S@5@t);S;A_9{7WbL-^lsWq zf!BMVKchElLm6xOaID1E(gvT$nAnYE_xbxjTy*g8f2LMJp;LKAai~Eo=6Pj z9)nmv;3Qb~6@rjW!?SRQ0vOlF_Eu(>r4FP>)MFnanzM$&pZ0Oi3{)hw7C80^zI|{F zoO+wFPb!p7(T#z9ijyykosIr$CMxp4; zU+{#MLkfp)``N8PD5YpkER?1OP$7lJvs2bo@3#UbLTNPq_RCH6l4e7pw2$!uMmf<) zcIqM@YU+9jrLiYV*;fsP(gKJP zvzg8yfr5!pT4za3gwjR|m>49OB48qvMz1(ILTTCwiBQ_}l9~vmc{uyv<~jNi;|x>1 z+P#TTn&$m^p)?xhE9ICs6iQP9|EW-#2g(?R5sl~s_LrLK<+{!>)k|%n|H`$OmYbOBJy^<3O!d+kMvkdo z-98h81Sd&qVyc&5uBqM&1fFA}T5f&Y8ili_dKGTmRPWW2|G#(b#VxYQRBz*^dT*BT z`1eiq-Y5Bg8&kc{2<^sA_4dZ0(67sy>fKx5tf}7F0%uM2-Yam{RPR9Wh5Wj#sonzx zp5sTdU)*S}6gX?DcZI-NQ@y450)&}kKdRy3@h_%a;D2GNx5ZT(0HMhIPIxL?JIm5MT>$ZxP8~k74Qn!nCVkMt< z;0{p<&sr}!aOY?oEBUhFA;;E@i9}NV6_>hubU*X1bS)Yi{m3S)a;f`8?-6{>f#agJ z9HrMCI3b$OCaiXyGbuWY$HDg;cw{t>C#d%wDOVm{wrJF#p>>k-FhfbUR@phfQc&DI^{+C>Lt@G<(DE&p!-^jtQn`k8KJIKLro9I-I!(gj#ht=-wF~q?z zZ2m0UGt|K|Z1gvtV20U&m?tonZ6m`$-`vrIq4AlVA|v1;K~|uRKIMek(!rP6=v1`8e!xb{*nj)F@mpr2 z{%qd_ONTQsWRLoAmLK8pmpeo2M_S#zpL2%Rk9PUrw$WPF=NJdCw$VJ+SM}Qbx({u1 zH~aH=tGo9aTSn(1Qyuxaei_*92{_L$qp)6_x&R;ysl_06yWKc^jGg;QDE`2c!r*m$f?%-Sf=&x+sEc?F9)g^v3iM#1+TLCtsUw5Z7w0@2~Qs8_1 zXfgZlT)R-<2mELe$99fQgY5@_8fS?8JbSXhkNeS`q<_98)6uV6?nf&*H!iSm3jCZO z9m({$wg%P4-1ehQ2w!M-5O}2@wc^-aWG@l;b>A!Hk+7lRb^W4i%<%dk`Lc*2XLx;- z`-GXoQTg0zDsTMxR!H=io3P3nI-^Rl=8`;q@C3(Ttlw znnTQG8x!EL)MK>>OvCGRu&svI`95u6cwMU&8(vo^HoWc{^)rUoUj_M6zL^^sULPeN zC9!##qXeSi^?^Vw<(u1JnnYQ{>oLBXm$@pzKalu*vo|oj9^FTUc1il`dtFiyv)NamFJ5FhSxQBY)-^6PcT*mEo8HIfmEc+-i7zq~=ELt|vZEGYt%{ zA1WBJd6_@E(u#o{9<8)!fAkf?0Vi82j~P#3xwpZQBl?iD`#bx4ne1M)D_w;)YuG+PBf?FBli{M8~I}Ox0JBj?7j;Wxi%D&dH6Na-`MlI8n3~~P3I(a@gl5Y{g$VE8%-r0BM&Vr- zVM9`D^q0TyIz^;!u1Mhm1kFKdYlzQHY6aR|X3w#yQUKv~acSrF1$6zht`oa3ZIPx$ zDc+BTH*^qM=@gwChKsui#9g5VxTW0g-p9@tVe8YH{57u0o*aPNc28<@9PzmwK8T&U zHMYi7MLS@euVs6wEif6w3*vT5E$7BH`HC_{7b=uaolpyCp7u#`YA$OzU!gM8>pGUh zZMF?YtBpO+rq;41_iAo0wIiX2;ug~yLb!}(N5~bsnQ2cbt#s--LQlr!3?b%I97-;w zo*b9u0|nw(XHZ}%H}gHvO%XPB?Tr<2sZTNY^Ss*BahXAUZuT3Y_qt)@SNu0({5CB6 zts4{kCB)~;Umq#5^|mg(e`?LS7*;bkUmaUvjz)NmXznlL+;YqJ z)vBa4-bj`5)zTWJ72`Fd_-nrq3@AQeXtNZZC zdOskf-VdHZ$V>B?tP-g1y$N_B66AdV?+4`On2NoyzknVS%gHa&m{_pmb4HU7=b|qG zGO$yK!NoD2>ivLQgsC`8Np%NM$rqoTujANZhzJ9ks1WZ5PaNB_RJlinNt!cRMsw4Op|tU zD#`jY&#VvnDMTkPFsGhUPEyavdRe6y9bu_h1(-S#tAz2ZW+O0bz6VsM?8ojOR>V4RvLLH+YYB*lR=6RMtYg6e95TM-y*D(KUBEQfEPyZ8^ z@X`$kh5^y4SjhIw{+gkv!hRnF(Z$}!fM#C5oX;J-sxHXzBE#RB zNyxAmzju;M-!N0jcA&v_n{PN_wggxsG`=GZuXe|Fp0_)Tg{>QQBT4-3W9SY8v7MA% zY)I!^z;zWYs@QOXKsu+r(8(AQ@+Z%j+Wr+5Q!1<%fASeq+wVa1G6&C^+I};_EgU>& zYWoz+ZK>Rr$#bXHQ*2JbTTohutB9`fD!}dAXJLQxf~oDrDRi8D;nenFZu&J-J8nd{ zl@!lFJPT%AbAf)DAZgwZd?$HrXCUi+ot6;cVRzu$SH&8R>XO zM$-2>MRmwfNh+I}9nf80t_h;UfTzV-&uhictPNsI2MTy90u~ zEAi;ViXQ?RAK_>I(tA5549BDIi@@wR2BAM9Z~y%e=r;+EV*v4QK(1)efIQKlw&j=s z-e0il1G6{6H+>aEy--DFGlMb8^DPj@A95t#mVRh3Kbl-+<4!%_uuqdi5FW*wTxGlc z5XN~%an<~ktL!GxAokGzLf_eZ!>osBkQ3861=wLQ6VJkxc;t)eP@IQnv0o~tLrPgO zo#N*BM2DD8$!Qy6k(L}9U}G=2rU)n{UBGVlOFCjCf|8rS`VT#S4Tojro1jqKU-G?P zLeson$qUF~N{Yzv_k5qc=C><=P`sO9eNrM~Iwc~eQ<5j9GaLw+C-I2IbV{A=D3*xk zl{(u|r;#Q&Y$OPCQ11xXnC&PY&5~=wtnH`_X*LwoiNG78{E8FPsTMHtsI94qn9cx6 zO~iCGwJ|Xrdf;1c+fhS=a$~lmG<7}1bl8&__EkeMoiAN8otTb-iI|Q$qfEqfhVxT6 z>rwkq0TVHuO9V`8M`)6u*?FQ)TX3|xj|-cU?O3H+yG zI%j}#nX?`B6~bX~0Q#}aU2r$UAq+-u@oe!Jrg?I~tuuA0$(yN5P2Nmhnm<$5^Mbq7 zU2rdMt~2Q0x!~ryrkIYq;8t)wFSyxE8V_8r3vO-%|Lz61tmdW*ZfsZZG@V>H9EvoZX!GY_cLU9V%DI6~v*Wp#;#};kdK`ZQ=CyM_M98&shFf>TOG9-Z(%7Zp zp7Mr{B6n$cq&sT3OT*IzOfC(t5-_M@wVaIplS{*HC@{kX(%{lCE>$lLX}(`C4e2^N!v)mf(lEx?OT$_) zq!s@e;&XvDxHOFM_0rJw_Bxk_78x^Kjtwpi)sZ8-6{TpL^(juVXd(r~8Y z$CrjmEV(pPke7y(eQLQ94_+F!5__M7T8X{S4-xXxd?u>|mxkX1CZ|GH^C+)1&z7eA z1DppzkBO~$dexY6W<+!mVp{X7z(rr8(e;Q4gU#@iOGEYgA(w%zSw&O+gHjz0pn@x1 zxXE$seu!wz1+RGJn<&xah|GnbMUJa68?j~1sOS=e!Su(o@<|`aWi+4wqoQ<`9R^&h zm2w$a!EXS$43stssq$`G)Jh~(h;wXS2;`)b$zRR~NPSNvek#cQS|docNUz`rgjodi z93+0D38m}T7#PWnf`8ouz zBth;7IdjO}My)`syN&t|LHK}2>soU+aJ2d6E9Y&Ll9gGI?v3;{KzFae)?ClIb&>9s zYPc1{46V7Q9hMuPKQNk$+eJ&3+1t<8&g+)3{Kk;bU`)g!o)+EyRX4w181MD;(I zK3jqV7<&$bZENt zsFu}(9dN_a2f5D%y{|*W_crzONV`KZK8HHet;z3z)A1Gr&Sc$%op6C7WX6#U)Y!dlXA^HE zY3*Sa0Owl#c24kiPw)z{1kDGe2dC=5;eEt3;Ayq0iMNPg)~Wgn1hY=n?asJC!Tn1u z>)0JYhfWx;9_mn?AM(Qy*EQ= zB5K8KX4AUg@`mJ>yFT!LFqr#2mY{BhG=~2Tz&Zc3y&x<=GbpKlIR3*6!c_wHi+*1W z@K^PMut+Fx8GVL6gBOH51>7q74s+%|^n!4okQ$3kX-91It!5#=VOD;~}5rHk; zAG>cl@ra;p_fliPv@KYoO%GBp_6L;X5rIy$Je>;lb_k~FuHaQ5$;%|U zC*e(U7;H-1!IZBY#dlB`5V>d}9$AfPLS%`nbA&QL)Kl=%w<5GQhwgpYvF!mTBDVSG zc;skI6C?%Im=;;G% z>gyW20MQXEj=JK=mg795lr$S&fDFLbea;2Q_5vmsAex$7fb1u!$pwg}Hg*B>AxnpT z)_!Q6y;pQ2Y~8r%1@xzV#PX}g)=h}|kmL$`kWg;y0z^~S;{t>|S<1d@cmeXR&`W!N;L}y zyK)mfk^A;YshMAgi-C{0my9x-Oa82$GCLp4R;Ssvi&1#FiDvUX`v(U@Q%*F+#yA)k z3D@-3&LsU!te1<*zZS2{+F09qZS9Zd4O)yo0|mstI?9 zgTFMY33sUBJKnFu#YA^5x=9ZH)Ko;45#^as)J`a&9~DWJjZFi&2aP^*Ha!P;v{1LuJ2QJ>@e5p6*A3GDyG9 z%oRARr@T<$Gn^*dB146@Ts`GG1g+gy}<>9TmL8ce;xC@C&{}a(QLawz;xs^+ccHzXzqr|y}~{qmF9}& zVaA;!(meq4=io5lQ8CSRn4BM}*|rTLn(+*h=8$sBhzW2Q>f?h6uNWp1l`*ZT)n>xr zI7GCf9vZ@@F-#pZgwJ7^`eO)R!Z3Bi5WbFKYHT5V8^gV@Y7oAU;o+zQ!cQ_xy(xrW zMi_iUB($ce3Hhnz!cQesF8tIAguFDLNmap5?E-jVT=h|21z%OB@=;I)JtkK0WvDTg z%!ueAjOHQ3MLT}#PKW_d7tdyYKy52H1g3JOl9~*l4aZ2T{* zWu=I9F#isuqBfX5ZA`UFg4b~B^F!&$cF5n3X;f9R}_2EV>wvPNusO?GY2*y$)!-$e|$7H<_t7F>w?~okFM&zmy>~t_Akh0&7xB znAVR2X6xFch(EIU^BLKH6J+;0lI}oyLl1+?@T~d_k3G3WHZ^40yocWb;P|NY?QqU7 zu&1iUY4K*=fqM?wK~)vl;eH_1QDzNte1YGUNv@GDmsd3sXc?CHSL1yRf3NsGouJ+7 z(9|RHZHqwMjP`2hAdjKsu6fYZAj4t!{eVo$1AKs)I{zLOlx}}Ox_x$_6?}*l+zW|b zEp7RkdsxHw%`{Lr^qU|$94Sg=HK|-eQ2O~j_VaTDrK8_tM{lqT7^%|i4_LF!0D5(s zfYo&{iJl+}Z4!tUd>ce#k*I`^C*d;y)|^SSDKZd~C$+zU(1{!*r8$)}?-QEGf+qEc z%|xMD40=c5_j*Ee0%@lI5NADvjT{KjtNJ^#az{1`%`{{o<82!xXjQIYwxg14S2ElE z1P8KjuVT$UB$aw{_QJEsI{^n+U2ZAheNcwc_kIA!F)(LBLFj=Wf~W?CAeU#}0h#&8 z^xMcjH*xmh-}EAOZ>l>4i2_LNCD7Q4-Mm^5L)cUK-yk8RB7 z>1nHDo}M;(U7p^)$me)^tZwp_W$f;VNI#w%``hsJ+WRbx1v#Exe~I9oO+&MYF91mn zGzm{{Z^0!O(DC$m2?bS8Jc};DBg@kx#21b7^yuSId3rY@^mPth<>`?%*qr8Ab9j0L zNkMsfYXyp}ASylb^ceq9ObkKvIo>a0@Jv8Xdg1)Q+;ut-Qs zD(d_u@)WNH_zOjyX-BNMJr2}?{RvU$W{nw zr|&L7Zj95Xsq4Y%V^3z-R}DFRN8?@3W;#)41rtu+JV{MBefJ8OaQfB=m~i^4agZWA z%DKtaPDnU?TT5!f={rKegwvJx2R{4O5p~X+sY^}XOkHa7X6ibk&UrI6vE>zuI$w%!n}pMMuhGpa zvE`*;W464wu5(146xkb66 z&g2N?+VXly;H;?gI|64#o&PCt)|S@~0%t{?o8i5fYs;&Jz*$k}T7k2+yvXFn+)iwH z4H7t4)R~;fG?xs|VlhYYUBLV$EJ>bp(;O&HCW&qCrP=XZOmQxDRy{sq1STJ{4iPHq z%&nV!k!v4m8R}y34*u8nkzSM3MAZ2U0TcU3Y4;9x_K`XYn20)SUNVM<0(fEEzpz-t zx4o%&8E;~=iHYSrPiRbR0)|Y%a-P#%v}2ZDg_tn7AJ1kgQ1T>$JOP)p^GpTr_<_Mo zqe}L@cw~=b-$6t5dZr2ga)< z8lKA35)Ip!XNhJHBvta5CZ-dl4>X;dMFk)15+d>Nrp8^eL~@ZR@Lb6wogx1xhZ46* zp_F}q=EFqikwWu}KAPpc1pEyl!*&+Z}w0>&rR&`i(Akio0!j~rK#%*JLou(!Z((1Qw%rgs+XC;0YBA;^f zE@r+53BJON7gKy-4Zu37Ga9@F3h^`8sH3wvuKon<$I+~#5DX6HqYwhz{J%RMrl24w z9F7)<^kPAe=mgyN7pCRH59=hl4;@!nVz?RdD|#(@wJ_trDC&#PtHM$TrlUJ?-(Ohf zz~YDu^}-eoEQ?m4^@S}R*yII<{k*yB=iQ?t*pnm7^%x0THx?Vq2!yiS&BDcnGZ7)& z&BEJK2Vg`CZ)XhmGD<8KE;(BuzxUy1)Ix0%18FM}pi4>(WNW%-})Vxs5rKNZgM zKYx()EdO(*z*+vMrf2z|yioi#`JbFzFjtW9KY2|2DgI}ZsfR58v&qy$Y#*LF;M6wY zH@^MRHko>;Yclol)Ar%JVWu>hdXPoq?8ECCYBKfEWaB^wE12SX5l~@cqXJd5V&i3lhtYi zK6iWCsqW8~js{dOHns=Q1jqhlf_L~DRBj@XKfwZZN69)}Y&djcz8S)$tv#Fw8t!x? z?O(WfAvV*Hn%7~o){tu_;_8IbyID%_DWzwK;KGvoeaT&WE^ZCX2Zmw>Ue)WML>o$G z18WwbRi_t*(J`oPXQ^H@>5hefyIc(i{zlO() zfVzKxz=nIE46i2}K9~8@wrc_CbX&}P8H5G^p?ehqJ2TK3fg=&<(H{Z)^(q3_b~>B! zj4{2XM$6gPeb`^mvY-1(!=95~={FtNDPs4s(gU;57G8Zme*P1O>EbX5bpLhYy34rKeD10C7r&f)Nx?0or!_Db|%u- z0*jU0$Qv{beIA}_Xg|rAW|!dKpw37NPcx6^M73blpUkT{QEW&!!>q}P`Up)7XBwZw z=xDvfs6U&QIZ-1Sb-L-Cjq>h5l=bLfAu!EqJ@1OXVdNFzhd*;Q3Tk*=6f{`|$DK!$ zWpKQs|6jN+vRMNcHf!L*W({1}8I;-gufbZib9Q2oUM%dDazD8z?py860~uQpAowAY zJbwZ7ko~RO=HDFo+w_zO;S})Z$lrFjM2P6rco6cp-w_dMio`d(Ir2wN5Zn=XilDqd zYKlY|W4dYS7ldlqAQBiW;a{ehDmm|8u8>O3 z`&YB!vE;m;XAQ&8vxed4S;O%2tYP?h)-e3VTKaaWc~vO=Huh31IqxsMUV3R~9BVjm zB02Bh(I0&*lJowuvw$52bMP#r#R-v|_m`y(WT!sHYbACubv6CRIV!Q_y#EBJFWtAi z&2D^Bp>*oq?tq>mr5q#SwB;T6zraYizw#qcDCP@3@Eet!_usAuLNSdk2Y#cH^ZsYs z0wMDf9wIsK2Sz04;c(&(%nme9BiS8U6~Z21HeI-hbYaIx^~puJ&JcsVX_|zv5C)h?b+@ z{FMTV=1dr{Co}9Tk(_5US8|nA`UYQ4=uVNG_p2PJlJkDG-$7DUa^7#}Z!4fm&inN~ zC1GfDeGS{y)xTCim7Mo```UpjIq&!JpOsXVoc9O%KM1Ij^ZpQDyH_RW{h=TIxK)pHg^SxmE4;ZfNSaRNf%z-L7 z@5gSh)eCk4suyhkDZ^&QlJox4u97M_??2-}m7MpVGu#Mb$$5W;OI68v|9Jc2y!d z?{DN_CpqsAaP+?u>F1A__>=Se}d&PF}XSN8+gI?kF@2|pH6b#KicJYlJovC4qmO2^L_&_*#7ah zv*cIFc|Ue+J=dp^@C2Oa(@1y%E&wUH%I;)+nYzi*hsj4p1oRNCpqt*Z(k7D z8433?G&?i|qXZ=St4=-Z0H2#Iu+jY~iNbXS4Bh zFpOB>6qe>dCC6Pz&a>mWnBrXQta`k&1g7NtFhr>2JhyIUX+}t zenW;sHJ6RYusP4dn$L5dg%yg8gzJV%AF(emHwRXXgkzA^=j-L;z**x7l!h|HD`pBr zBjMC;$Z+7rNH`{e^DG>frbfbdRD5S7T+?DB;R_`#zB#&1Aik)#AZ1P=F%pjHq&4|# zToW}C{&G^2ONq}ZCPueXdnvAaDh+*A;MzO-dGWrsz$=U zNP6Q2;&TCsk#H;~#eXBlS0mxwzy!rf8?Abk_*`IOBpi!P@mI(AY9!qCwlfm0HRr6^ z5E(OEj$2_njIcB{_m^>QH4?siQrfn}=W-Pz;aIwgzxD{hh>e8LQT*6QxDrc@ge%CK zqvJuS<-2(7;ER!P|8JHMjD-7l+OH7u(tIYX1bP~Un8pj^)eIxyJlLA@FL5>mJtns1 z=~ZKdPmSnuM)Rw{MPCABME63BvkXpg<}et82sIMUDw^^Lr%6Qb0ic2_U5+ntEV+ZN zx!@HqHWGd+k-6}*$Z<91Ay)J>{1*QG2#3KVc;*-h_gng}NcRok!5v?sg&4EBL8ksNvrTQa2)rC_PmGa*#Mtgi`i_YVSyNeqflV z)(3qW(fP%ZQ%@-;sb@LM0pXj7$&Zno%1ROIV7>$-F%s^N^f@%ew7I<=M#7r|EeuGm zf(u=~I^z-D6cMetNx2avNg)4$(cCv(G!K^Lg8|1~d0E;XP(s;J!Zs2J1%~yU33lOqwsh1vt zblMbmufWz^&$)Gx?iGA4HBe=S)?CvL%Z<-IjOOBY(UK)M-?2z5Dg={gk=adej&|q% z$M?@FkT!eie%dBg(-F{EV%oZz)J`1$?W-J+v8h5r`?Zp^{ZijE-+_7>Txe4B2#zDF zUv~{m%My)5rD=HkcLdB-2m418|DcOdFMmWE1Sbpy0<^{Otm=*{fP0w!Pw8l~&)1ZM z(TY9eORA5#1DL%4b_O59e9Ug>PjDaR5^zs~TM+z&seb}k{T@2qd`eNJ8tCtQhD7gf z#MkhqL!hSt)yi$h=Nzve0JbY>vu?E>m+ssW6@sLp#%N79>l61fr~aYbgQy3S`7rfzM5#+ z+OmBClLv*HHZq}x5^lkZheIs;^%}wvNAD2J7QPF((_+^BNP!FY!~M+I(lELaKds-H zmh~Hf1k{0EOlyh$cWZV)`CVIt(XL3+IxLksoJv^guvF@BBVnn-9a4wK0e6u)+#zMc zMpRd^IDU^LcRHT*HT*tMJ1xz^KLGAVj-5-#{ZRd+q|cs^nilWRns)yNHGP>mU$!zm zdZDJbw+y2?Bx`M7l-iC0+)0M~6{*dkfO|l3Y^5ayJA2Re81`4CX3L0r4{0j=55V1I z;8$54`Q1Co$gh%PXxjsTE;5g^g`~NGFZH|!b^LRA z7;SoBT+hho$W8>@jeJOx@_FTIC-2@#7FXKm>N*q2on&=w=yRZ7AWYVzQMlzez%nRB zJ}1UV!qV*KJ}1IegrzOTKHKs#VQEaU&w2bcVQEaU&&ISHkITfjQ1>HSh0zK4b*k)$ z!nTvj`~itx{oF!i*$f&&rnOXQ8e_fg<0?Jx=6b{)sSTcm#vWV|M)x6E2j*~T@W+6) zhLfd+MF#F0z+U&~P#SsMW|o#V2_>CYiCqGzTH4uC znmL$v#_)XL1KFzqq-C8WWeq1RWt}5s?MYb5I!DSn0Whv2u|x6PX=Vg6l(SGypEhB1 z5mL3RKLs4hhlt&45AJ6@Ir1+k`f#A0R~1I36Jqq|1$`LdXNdT`Yy@)wcaoX#qQFZ4 zcm0a#FA3~*m;=&lxz9HX%>qz-3%@sjrFQhsJFnba`uecxYhdlk{EYpu~EEhZ^38A8KauVz+ zZ?pb}uQRRm0AY-3r3V=909xq*rW%iCC?@d|l;Mpb*> zqwKU3@~VAYPPL~QWgEv$`&XkyS?{T?cUPYq+1t zt9&kYn!E1D{{O;|7t{4ro&~-%>RzRGFDS2>ONN*dvYv!A?KQP~V+6+R)kZS}3{ z*1*>CD%DxIoxDc10^7@bQwtg???|0dBjp9DGis!~9KG(P?LAN2-@N6^IJ}O9ORNz@I#K%FwY09F3Tv6Bu(el8%w2Ia4;7E`eE7hR#A@Gb9b2hrmq;p!iErJf~D^ zYzt;cFys-0>xTmvwgRD{Z{V@w7z92-;4=okL14kL2!!a0caQV%H+XOzwo>%OBob*C z4EY^<ad#HnL6aK>~Bqrc%d^x7KF z`+y09|A}bsHe-Nq`UFGvM!4=#M9v_AiGbDuZ|&)YC5C5P5JitnpOMCAJPWl`eJN8LpvgLfgpIB*;Mg0CcP1s z26hPVci!esdT9h=AaT?k|2B8hOS|SoIq9VdIZ<3wkY1Xa6ZH|okX{n$HAl-yFHvDV zChw$|mSm&60jK4=uf-xuzl{SQ_EIdeWOGE8=mW_a`{ZSrGxo{v z{Vdb@{N5SBcx(upSdDSHcw>9=7}uXr${MBWQj_#ztGs{o1jokcjm!Q8T+Kn zL@^zg2ewg>CHvWMAY`7zqoJ|SJa6$~zPI==-&=gX$P)bc=s2!x?2|Mb8vCU8Qt&;a zksIRwB3mtBV(e2>6JwtPBsDSisi}<_`@9=FWh}Dvvu=GxhJ*<6vOGe9{u_W2dUVL(}$*w|+?9EV}g49^yi;nQ^;W1o35 zb!q-gU79~r^F@~I()^j4FS2CsG<1#~i!9lD<=e1H**$s>=V|+z>$=3)r>=PwS+c8L zUo|Pad$ymYrUrb!n~1j~cAyi9S!vXr&qfY@Ju&vlt`v7fr((afgY8<$??jgD5C=Pv zB|Fr?PGre85LvRDJNj8;pL|#48v9f@YwT0uCS`YZXVgGs$sTXpVq5U*ej8(-J%sl9 z8~Y53S(hb#GzljdJKOdX_)b51s|N5nmhSESSY*kbYw468uD1M$x7~eN!dLyExQEYC{4=lIASy@yO+}}Q#s|M zq%SZn{%0$@xA|*JTo-o)?|ENis^s=`AL=HztsVpRx;dd9EKBhCtMLvoyAZ9XxfG2j z$C{k$>rRGDi{$FTT+ah+$J_H>{le&I{OU%uL!OODrS23w+EZb^6V557PyIXuI}As- z<24BF!(^o8a`HRna`L_N@wsTd&B03#%t4)SQ#CM*dZ7-?W^O{==3|EbHk|Wc?iDL* zCiZ`}llz(M)2u73T+aEg>*PL{b6$|oIsXrx+&5+>7LM)Nx_l>C+TPd+mNs`?Cs?DA z?^iGrOI_X|tIHc?b$RX9WTWO;f%UQRgn?Kkqw22Rp1u^*6hUmLx@$+O-Y=agIv-bA zz2Bl65gT&`o9}=4;q=mdHW;Mf*fnJ}QL(X6i z63lW2w-7Ml3~Fk^8Qfh`6V9NfHpUrzTk5!;Zh-a?%8hXbHFZ7Q0I?^F*jEkR0Nw7I z>D&M*n79F2DXEDYAVZEoUE&6)mw<^IpuGf4+yH4OByNCaN^0T;=oSGJH$d9Gi5noz z`}1yq&cnbJam*WX29>~n>IP^6C>PH|*V(jr0by8g2HERy&oY(+!uu1Gvn{8xQp7r#X9KC#k9hDhz?@|G!afea^G|`8g&Z8Fak%aycv?rG zOye*G({aAy-egYZHnImmuT=-U>5n3n6=oVJ%*F3CBvc5M=ST%|d0ypcpqZmdYPIZZ z3xMYj2&0>U+eT=d^W1$IX^zI4JOp zv|B=DMBGU=YK)(+H)Cpe$_kylM9o>aeGX@7N}BHNS#_a4)vKMw`u3TFSQGjSHYkXi z9geW~dWgRFC{Y`jd7W`-xe??aQ8JP|vqh(MPiFR4v&iy)_hfb=#wF)uHeJBq!b$0$ zg>vGgRNaLBDo#ol2<5R}vot0Uj$>?+JC1E|09Jaz?b=9h16u7bSfXtVHh8f=pgS?$ z&;eBC+7kKnIF@4VxE|6MaPlFR(>Jv^H?~o${W-_61(??U)?Aojz|3Na-`|FAio$@K zocI~_x2GilG2B6O{Zghgyzh_XhhiAe*SdSRZMZvPOfi;&nQAsc<+wyn!S7F4phbJ* zV~dg4!-^n6@4|t%;knH992edU$u$c(Zs8BPnj_b#%=H>cAe#VocHk91!fd;;u$AT> zpudjaT40s*W!y{GYf&W~1>%cJa&3ryHit8AnPHA^@ays?6k{LuC_N9DeB0o}mD}cN0>) zmbwjcS{c()w?PF`Z=w;zlQA9TwW92p8SpuqhMg~65Vd{=;Z(CQ2W>bU*CUVlT_s|H z_WFiE`-W(}a?$#Fttew=Ms22OUUQ(;Ae{O`E?OtA6-ANEuHzN$b)s!av=ejDs=Zc} zMKk-%QnUrdKs$tJSLUL%_F7Rs&5XZY(P~P7b{^3l&qXWsT8$*yq*aQxfM|Cj>@_3* z*xMdm8<@FWJa5)kVKf#aizLr9L&R_Q_5I7`*8Cp~c8DHJP`5(5?f75duLb6glIAx38d?)>oA!q&;opZIIh_Qw8Nw7Kj0 zYuN+&oHy!tkC(FwV|PJXnp*@5lGydx`6NZG+&P=BMnsyQ z+}werpv3#i#)8W)b@w5@twa#HXek~IKg2IW={XO61yW8dqO*g5$%nY6CLiJlN^0^UuBnZEh<_q=T+a`2eqGRh{?U}m z$hRs4e-xU!9v|ZD$s+bu!w>OIusxCA;6B6^Og_Z-mDJ=ze1?F@hxqLRCLiMTSexUI zS34p35HH4gfpR1pbNmMS8w;3xh->#IAL5$#=Rd?3fLIa7yy1tq68KL)#E%B$_(PoX zXIPf#$M{2hLkvy!L!6L)h*u%xrTMInmlZz5y8~Vr!}t(q4NckepbD}~EM*^PO#C4} zjM1E1E}Gw0z}^KhVQ>VV&A4^PAL7#``pmmh-~!)8?KG3LACE14L*yqJyfM>Hi2#^PDj z9uthLglV>=Yt_}{+9j>JMr#nHR_b*P9fK->lJdXTBML`)eQ={R^6zOYt>D8 zty-Mds=ws5>Shi>(yCkHR<+;)Qzi(9K932)=C$C869>yOH8h=7i1`Ye6N&54u<4B; zjVBUUr(xgbAhC)X@o<(%7Uc*ZNEc#tU=W@=er<9Y_vyA0{FdgBw;7ZS_tQ4^h zW=kOX>CVVBli%l9Xm}Pb#N%y5?hwvQ{T=_qGao<<$NP57m2kE~L241^Sa{wmk`|?& zW7?H(2$W8BX1=T56{y%NWfr%ZsJ2peJt|tp?*nL{NHoNO$ z*uw&11KX0)p7Pa!Wx5;j_fjZ=(H|!6cO+25;5a;6&d1{!M5dt{FU1_p7%gUk7PA}? zX>*_!GmeEO#f;A@=AgKk^1&(3+u0mhA+9bbbFXEVTUq!qOrzBD#)OXDR-hrNXP#oLpsUBT!X5vvbIt@)j zX1mpzY0NVyjLMLrCa7<=%s3oy^`s*)ZZ})DYA>dL%S<;zwA1s>1zd9g3IA10)z!{t zvow4&(rUXCSK)^UKf6H!zeMRZ&YImxepnQYWAGdPScLyFe% zS*ha_fVGa#TK4saOqV)7D|M_n9py+JpO-ogBP{h)cqhVAPlXR8EcI0QIKom-h1URv zezsAl{0!8y?iR2jXr|EkMmDz^)bqF@Vbl$&T32J(pJNCg-x-L8UvAzpglBgVxEtWb zfZOwm#RTSn6lU1uakW@mXIl zZ=Ehy=Jf1z{T3`M28-+E-P+ZqmbH^c_ONW^b)Z#qJz1nZWdOap*NX6JXLmNYvV*fm z)9|~CwUB9@l3Kk-SZbvv>&niKYn4iBC2#n2eyw8A)oR21S`|yJhJlvWszj!~*I@#V zpk_De{lKs~%Qp$5(LmEG1p!C+M8Mj(f`E;?6>!H-x*}&`AZvf}q?&+Di$t5eW-S*$ zvw(x&X$fR>w1;X&F4PC=M%nKl&QZ2 z+?npCYlel<7WmcnX5wRlTn28r*O_j>$0FrarhZ7$FA3?6Ozkoov8-rqAscy%&n;zR zq}0AoI=A{Q!V8Cs+X2rIFMN-c@g|IM{6uyG+8?5NIu*3-- z6yVyOWV8f-({lm8!1NsjJ|A#bx?G--Lc%vhoG1oCA4P)KrDRiZNAT0FX{L1WYNmK~ z{~vqb0cKTowSD$E`@+F{foZ_Zz%b>`48u@nC<+QHC{|Dq8!AQ=i4BzqD2ZJ$!6Ygu z7Az54#DZYQ5=Cs-F;>JN28>?Y4F~=iOzq zBJ9;g{h4olnPLFZi_gIS@%#CwUDmhpI53li7B+EmxGza}92j9@g%g#U!_(o;M zXn(j6V#f``aR(PgIoL<~!!3!$LidsWa6e+{5BHHyY!9UoF4;B=%#8CHDIy_Vb9P7rP$^lz85K z#L|r^UIE-wI<5yLHPzB-EtWV6FF{KB;Y<_rkm0*~9kIMKED>GX6Nj`8#rptr6j5{p zP?ea-!}0~!%NCSi?=m~)bB)-*B&2`nj`$J`NzKD=BoDU}OCEkBd3b?X`n=ytyz7Z2 z4~i@2M0q$bk%yTQ$KLSMJj{}%{6`Q=9?lnCzao}AD83Y!c~CSTNb_)k=Aq&);+-5PS+!n*N={hQFc?Dbro0+wF8I;y8}wG+ajO&54WIktjZbcs(1F;(5ST z^^_l>Gmx6x^V^h_u4XrBAKwv6SF^heG)dSz z%to)@F$rIND6U?SbM385k@)G!nBKY+NrA_EpM7r;5^Bwu-e{-0X#NoqUK|nMj~_$- zqnB6z_%W29H%NmeFR%XbVzOE4e9D{k~LRAKxv z^lkBtKZa&7Sxc-+8YD3O7<#0@cvVu1kD;^0H~tvJ6$I$#$NtdG% zQ}$~7x>ZT6a2f3Z$ z!mmR5K~7QhLGB>&i$2Ir5EOloJ4z5f$T5if)bj5zDx&(jYG2hXJOS|y(5Hx-1VoL2IFQ&6>=?J1-6@{g36DZ@A zb!Y?6d34*)%!Rf)@ONIUao(~D+hsfM2n#ZAQ839YdFK`|Y&phVy@S5w0hu2JRIQ1NZaIU{%a^wDrt|a?24<%hU z%EMoaI<&cqux#!kEIWHoq*yM(ve&W42@+z zi`YR<;6eep_a?)$NVs+^(z}Em^iR)*Yy0*1DK);{d*vTZNDVw*&p)<3GUmH`ul%X1 z5AQx1x^tzJ=)=8Nl}YUGz4DLerA_Vrrw@?{Bm;Wym4AVvO*uqHC8I-R6h()~FysF# z4v}g1JSwi%e=t1*hUzcoOvp!N@fI=vA^M>cE7%hY)|aSPNx_~IVo+Lu8!!Ba)u&6r z(1|gq@-lBCFny#(125p2dj2CkkOub~pr#8eF;~K&GDW{cTwc+!sBlv>4`0&#qDJ(C zK~Xmd*&-gCk@A9%0sPlLMd-pEB;2Z^Qz3=Z_z}VswL>TDdqKcVtZ9Tm@gn?ehmSd> zzBMIoQ^*`9A?ua!`wdU#A{Jzi*N4rOJMx^rNtYsMbWT-e=W+DsJLR*dCRpZ zs^DK;i*h_PcW|3R-o$gta=l0gzAX7|&1d5B4SqY$hxuQQdBDvE?rNzeCeKn!@-4N* z6jMmQtGt24$Hi1SSQT=aykF(Q z)`orAys8abEN{5#isbrPlMz*V!ZEYAQA zbP){;Z(zJzIkma-Gr+7wH?qr!KYsv)LK;9lVl{7y2|Xs2~(cqhl3 z9Zh%fof2-%9&IOqL3X+c<=B#4&9?9kvbZU#8eNM&+~I3Y_ySwn2#0a=(=9aT-6dr> zn!;2zPA)UZX$BWr0nDHG84{Xa`tujMHAl1bd7Ns$FAJSyzS>O zj$JvN^835^R+;cQ#(#ie=O@Rm+}8#85GnK^i(^;hq_6Q#{sR+cSnP*6eIJ|fY~sTW z$JikIxd}f-=jk8e@E0b$fayQR;V(`2tPIzNV|%b%FE8u`wkqzu9JgsgJpScog+r?BsD1)%T455{K{5o1XkjUHC3KjbmH{?+CeqWfz< zJezS{|nM!83zURt3&CdQ;TwAl#32dyCl(RTyM13BrSE3k%H2f-euk`x!sZFBUvE2&*_d zxz#)*7&livz;=I|OYgkED`qFM7h)?xhZ4R@OIYiFzyil;@C^U|SdQ`K;QA9z_&)W= zviP%McpP;4pZUiL%!DV?_jBjV`-a#Xx&?bFdo)yK*nm0ZbMuJImcaaTIAu9i%&;BC z^T+m3v^N~ua1N4Tm9oo-6tEiVVEux5hZIe%4PA;^12>^CN>Cf=k2;~(ZqkH%>E)PY zrf|V=Pt)&|D5t+=zE4$@NmtPCG(`pJ^+acm zLGH1tH2qO2&{@X{;x$>vGFDpTo-mitpYKw+w}!?CDVE_rbK+FKMR{6mGa7aV)~ls( zU?fkQPW|LTmDj6~#%q~#{|qn0DyDr8fd%x0t!wCGqR^`mE;Y%M)Ugcrq&)4vJ8D0J zwxIG;t3?8rm*fA`@q<-fYySk*#n{e7z?7x2b$SbrTx41*yFH0YWw+-Sc=9s*rJ;%G zVUcMHHE?Z&M|x$PdYE#)_d_2&%Q(4FmvRP#b0<1;(&(Ijr_R0MlCs0`+h#|USQ%4i z%HLL1qX0Uy%}IY8xgG+C4sKWIbUdf5Sj4kv{iees2#Ix@my7$=`0XOQLOXMoCo>L7 zrX;GI-**st9=tlgO@F?HCj0|J{y=Ccg)->S%(RUQeMq4}B7~=eCf2ZM%KboR5hObw zN%5JRB0iMjoKq&!IgJ71be1z7D4s+~9?_UctVFSa!+N-5ZT9cuE{w|ArePL$4K>FtTMKK7dl_8d=N`0 z8LBr#JG1rY>RyDPiU;GAvB@P>i2})=Gq|5qiVe+4|N zj4jLsV;5X5iREX8L|HQ~FT(`{k0OZcmCM-jTu4_Ll<3SRn8?VP42v6p;9AC>$Aw_Z z%Lm{Ge%sNH{ZPUW&Od=myRFgHEi;`8WW{7Do3Wqu3UCoZIrlYVPF;ZQXr1-BpkOjQ zx+o|q_ys_Pg3^NVQ}8*Kk@B!v+0a_0s4Be@jl8P$6%uGh^tgde*b7I>m}QynX)V+df^$tdg<%b?Z5)NATZ;QoF(`x zoQn@8QX1z6Ow-oDb(}$&*@0X*HmV+LOfC$l2KT6R8;x#YM|K56u<{Mz8%CwV!($!W zijLXDh7oNW(Au8_ZV;VAMdy3K-N!@icA_@C3UJCH$erQ_;0C$0WBY*3Y%H+X?OsIs zJd1OPG0ljy&mOp&2R@qkZ4DDYk9a6rt=U$lch6IkMr@dwwZIy&c(=V8dDV#YEo|x} zukjBE&hgPK@TFxAK|HPY!EI0w*0^r*8P~qVtC`7Le74&Ys7&Ho=rb;V>JZJutv)mH zIJ_H6Xs{T&VWUnK_wJi#7B!u}WdKaicuFbg1=S1?6-=nA-r^Aw;WzI%w5fmW%lg6aN zHSpCU*jqCFmPbpLClN}X_LPLqAx54Q%@>3` zDSS%dvJ@;FDs{w-ciT z6+JEpC8%%(Axi8i5nU??R-y2Ko8SqnP;?!T7U$FQmY2GjdAbms*5%C8QJSZZkstC} zW$@KJ9VvO*fmrf%q~vJ=u;yu^%hTAN(h!c8JW0_WBl&p-l3JF>N+S20k5sXrPMy$KW}IcG-vNu@UUimKkQbWfyJZ9IlMsF_WqI0D-9R5K_Ax1aeZCFf_8wV4pxOj z*~67PSR1~d0qpD`K5ZJnE)Mn#_r@^Qx~oYZZ1v-n5HP?j-_1s&Bpr{(yDQMs>#T^b z+>MvvIR~+;&bU_~DLSnbEn;xOVr6B1`5^csx6jH;bk$ zg@c(GQtjw-#epH)-HXTRR*5}(5D_N3LhRWIylPB|y(jU+H6>9*OHxqt)7fxs&s(xe zja6dL9!*FMB=+pFWGo|M&rVf+B=+de)heP7#2#-hh_NH~?C~!_e>+}DHO8Kp=0(=_ zRE`x?e|1}+(-hhCO1!7p(-np39a;mOp(vBy3lkoDrlNxMGlmpac@RGMCa z_GHiJK4?zZkJ=3A0!2#f**Pj%o1Tt#X)jgOAm?J(t5i~nJ$tnxCHCy~%y>lX*_$-n z!1MsdezT&%=|(hPJ73X|bU9B}pC?qVrLw?o*( z?GUUuxgEmZyE)3Z9j|bxwMy*S#j3-V=0keDgAjXmiFygK7Xcym?8E9K#9jodybM3| z(I zz1iPhpb~rb7U!$P9?n?VUwoC=v$s26CHCwhnF?|D^`odZ`v?Eeu#kw@1I@3gI6Nd# zYM+pm;(m5w*q8S3l0Qx~E3s$uH<{bloUamlc7;=QQn-wz`?^4B=_$*SEM{2=vBzw3 zPnhi-@EUSvlf<5_a8QXoTN(KHPQg#P+_GS6f^GtJlew)6_7SMWp6wBwB~Xby+b7Th zRASHe4Hk&65_@()uw0-Ldv>u)!OViDK6I zr$}H4vvoI{*y_0Ucn^flzX!tR-vfa|3AF|?;Z3kio4g0&bZ8c0&t?oa%wks~%29|t z+tz$9E*67(N0yHgdvF(G&z9s{YDvDOmgHM%KCy?ed6t?_?AcDH5It2y?AfmF=7TQb zPg$jv4l1!{tDKc9v1h9dTWmz^*{ta#s+8EX5tFCHUJRAkvrSI35_`7UK_&KVKCx%> zi9I{W#jC`g-P&}Oc$L_*LrkqeCHCx4qn(x#dv-_DUwoC=vpWfli9Nfk*%jU~v1f-n z?1()(!eK}3*%ri}9qEW9N9@_XrSM~7&+g-}BlhgR4m)Dcj&ax#dv-sE9kFLy5PS9j z!_F@z_G}Ac&$b};>|suyBlhg!vf(8r_UsW3J7UisDO=gN@p$+tcJR1VnSl?Hx#8yF>64GJ=BIH_B7!Uv8N~^_FSeMv8VlRMC`d< z80u$2X))_kh&|M+l15u~!Dnm~m?QSK7etcjJ<7ALh1f&AtNeD6yb^mkqOKgG#k2(> z_Fxw(zk4LF#NN5F{#_|gTM-%ucH@Y>D5py7MLAVsFUqMBdx|1rPf1)FCzB#Re4A3sV>IGi%D=S291pq zwAi?|^*VVl^ifubK8sgKAP{}_e!l=uU^DO=OM~dE0=_mfO%Q#Y2buC!m@Gg)Jq}=&BAqk7Xj6I@xZv(7{K~PeWlXIp|5Q~S1<;voQ2OV{^<+2*(PujZSK=8* zyyLgavzU4+(PujbcZ>TU=&nQ`CxJ@zF`0Qp-^1|g%xR$EYpP^J{rN6b&L2dvnnIi$ z8m>0oh)@Xs&YUuu3m~2lVvUQY+z)j2qBy6N=B7;%A4_r0F%#*Oc;a-HGae}Z4JA4K zOe9vK*g*152o-v;&P^ct-hgZwTdUSjIfEgxH2y2wI_E5fNE{U%BgJXI6cgf3>ajdu ztegvg%afsYfqZB72D!QyA*d1xk4?}eL{y0a$sa8hQnMK$8=jNO3B*s3x)%bD=zAZJ zDf5J-DAAcsGLaE}*g#xD=CLPo zaWUl)(RU!6%h)d^{1D{laA|)xe!P@vOmEg3{yhlULyv3%>iIYjrZ%CM;nM&}O4`Fzb53 zbI_j|I*m_uzcqU(@i>~@3`4JE;`X9uyq_vNxG$6AXKR%m9HW{W(oZm+1E_^(7VXJ! zV-*cfUqf_IwfK!lA4aa!)BFTQGhqj(#~s3lIlM zwTFsRH49Z<&}j?6)Aod#ia+6}E9C5mp=N7nI#@yCW=275Ep*joX{c1HZ z(!-=waq&w5b#ygmF2b(C-|KY3frilGgVjqX`7Gkv+LtpgFglZYT=A3$|KsyqIYK^IpLO;Z^)N6#aIK-Zbwp$}S_#twLNX`F6a;UpUQI`7@EWM3DxVKuprMIuA)N69U<$iyozz)u->4~TdY*=LgfDLgR#vD ziPeq#^CfYe7Xl0EGT*Xu83f!@s&0X0)qzN=6nb%?L~<&;dy!dDcm-gk5TUnP_ILLK z_h#V_MB$hvwy6GbZli7BYRsMk_tP+Q?uBi70Z7oV9ipe zR?Lza)e9LYZN+AM92NDw2&~)JEUatH5GdGe0!~7KM?a~=tEl5v!h-bM(EA9l#90%_rfo7KXfn0I3nMlmG;wfYx_- z-WF91C2;e}kyIT#`o9=^Yy~)=JyUl5<%lwv_5R5N1~&uFn=f$9)c(?xZWw^*MnV`3 zm&wS`o1OZ=i}B;3hk5`G6p9?G27tpln-SfdG6g7;&ksw5hd_fC?oBBc%(=wUo!*4g z*g*sXSBm}2PqDDq0E@xgl45@SI{}4?Q`{R^4QN4%26PCpSJeuOdhce$?^@#>o(hK_ znF`N^k4F5C81B8qQpoREmhx-Fr7VYcq(yxT+;cjWyl<(`pEbPaKJ@;;b_5J&J#s?N zPl!Ksc=55l#`p2eN7|U~VzNOBDmLUm!2T z_~LiBDlgLwn1vA)boGI77{au?uicf=p71^G31wZvd(ySlvFUxFyC6stoz84oGf}gg@mv_t1Zr+&@#wR5Iv0yfb~rq7^di%!9ndB6%noRd zKA{70Pe_n^Vpnvj29mDmvVd=*UPWCMYJ%zfM$EM3vp z0lT92fVJIz8_<-3sq0SZDMQ3}0f!!c*3Q~Bt&>R4ScH;i`6!$VsFwBDfR^<-aDApL z?i@g2&tUgdV4JSQ^ICW`U4Vxk_n<@i6&{*S#Lr$t$Ks)3DZ8he@H7)n&3EIW`CAhTrlagr7lAjyVU=t^P`30F}2Pd;`ixR6ap3ZRb`t8oXWm&x-+lNe&9M!p6hGNOj zfs-WQZahHca)e(-PnP^=bgS=Br7FLs%GIj!*Guy9Q(EBEJqCACSN|~8HSA0es=8iq zkCUM5lqTpIi!+02r0?8cr%lpv@1K|h>Gx8d1N|g12RcZ)1epUJr@ez$)utM^YV?NM zdyN@|<~DkAD(v?NnwZ3}NMbmMcnyUX35`C3Sf(8JNUYZb_pU?wCLzt{LDOwGp1WJpR*f<^!sYl_wkj|5UwgTe69=jqj-!PsV;yljNJpO^2=SiY#3`;?u zYwKi`m~YroVMv%zgN>F{@U$`GkdtSpVq-kCYi^zrUFQK;%H-)8(YJ_La-;YI;QG6f z5*E!;#`~)2)`aJ#EPgVNAy=L7;B8rk$oMIvaWLTKaIbFz7nVZ03yBuW7l8uDZt~U0fk7y7q&U=sE!p z(6uVkwMcN)SI||@qB$N1NuyY5PDq7s!b|(ssWMErT^jYJC&;kuPu*Gi%4sqxZx3G` zl@*T%*1q%SGAdsUoE_B_QT!ss*n0k~8P6xC{)%UR*4UmQ>+K{5M__`%0Xfq)i_Q-H zxO=y$Ivu#4k~kZy8EI@k4J!$uS*!3Isltzd2eF_BLEszwne$p2-QdWpI}4hV^6~gT z^8`xf>!@Tl2jah~ClTikOl)6k3J~A(_}denS~h)TCUGjTPFecNl=n_x9cTK>D-OmP zud28f7QsUHe6tElF8+Bce1VFjHLaJ#uP2t#dcD|RzbD;@WQ0aL4$!N31BzsE*&1I) z?YU6Y`$SAQ;j5`y?aPdlSVqIuK1ajnfi;zH`5X=Z3ao?nUqrhOg-Y0UehLwDshJXX zTLNa~CFEV7-y-UtV;ZV3G8G|1-}o(C^*}hQMNMU52jtZkf3Zo~m z7DlBM#w22C`BhRF=Mu{-M)4A2=?SXE-+u;JUTbOucLbL9ps+t7%P%Xw2LfvO)k^tk z)2Q<~tvDNg^=V{-^*W8^xwqeqjjHJzI9w0kZoI|8s~-&+miZ-=*?)sFUl^773Ivfd zx6h))mqsN%3<&=kR?(pd`VWCa{amN?Ybw1;yQS0MAzjG@c+hUCv>1WdTK)tlQQqY_ z(Ke7CtkA)Ny^8e>ZUtwt&eg`DGDc6wDo*%og%rtL?Q&wV&LWws-4Co4QX+G;&xxf% zI>_X#Xc@3sIgNeoVy9BiTQ-OQV=?&!-!5<6w9`M1*^-p!vF<}&n z1IIw-#)PXN?Z$*&D4A(2E{+Kg!o9u%F09d+4CTgzKfyx^|6_*i2j7N848+23`lBoS z@pxcW(qj@lt`uCqH}r92`kML<51KeKErpkiPDL+7DXBll#amSZxrsr`);k2w65k*M zk;?uB9x$rSMYwVFWSqCrtzjA=Gqet{{-Y>ERO~X;{zaFe8a!x*7BUbsbOM|tf>-bW zZOiCE<;5=%dlij6+-laT+PufXlDG!)6!@z(O_An(Be7W16lva10;@G0FU{M38Cb08 z1Zj{}#L~PKk0F-kJx%Sev3nL^L10EB;kNnvcS-0o8m?^!fJE{0gv` z&q>nscL%Qjw!2o;JIF6qd*{sM82CDK8QX~NwSz0&-!jw)xX@f0;2M?gmGBUAxs4(F z(RXJC+80lMfs>SO`Ku^PuYqgBrF2INuAdHlG?&w;?|xs*<(Kdhb9odGnv!~+PtSPg zQEu@D9naz@zHbmj;@f^XVtX};Z6Of;ZCQ@G{Fsh3m(*)+UKn=FWhM(p$;=jb(9AT$ zTQYMMoJ9GTc)-7gG4!FW^j<-{wJx#M+sU@pCAJE@?&TQey~~ zwYf#KfAcV$zjXo*m&hho&icEO#7bFCwA~3fWU1VdIC=sO7sh7x!B5MTv;OWJ5>u8N z*xU&?dL#~o+x-qdxf5`RNY3a9IONM@`CR4}xVKy=>;IIS8ry$_pTr3`gw&uX;CwHr zQ1wk!eOxF@_xNKO7Rt7>2^^n*BNxN$lfpt-Ul+>yc?)Iz(=bCqWV%q+KV6Y7l=aV0 zqzh&JGZpDVSwC-~te>|~)<0j_t>^?CMVoR0j!H%+;3$etz+uLtg|dF$LRmj=p{$>` zP}a{|DC_4fl=br#%KCS)l%j>Qeqy04D^3>5`uCQhjN2`S+{RA8p&v@~pF06(83Na# zI^27pI|1h~xVnY1?OLI4|Hn?ic@v=vdEu+|H@Z;PUsDEw;_LC#@&ue2t(l+r1ROo_ zFFpb1fsno%I{`;)Y{L_9sI%n>IQ)o!c%l<*p_&_460X`Y-uh*t+rCnACR@PQYPF%8`aGPr$j=Wz(I2 zqcA=J=VkGYPr&)kWs^4r_;o=evxjW*Is?B)z)xOW4_wCl^$E0y;uCPr6yNv+ocRLd z6L7S6;}dW+?B72D=UgPDm~}1-WqGbD7s~ppT@C!JC*Vwg=I8{RWq3|m-j5WWfb(Z@ zc?Z88FGsy^Z~{)ArIwgHOD!>ZmYTm%)-RE@fbmhe`3q%nV8s_Sv)lO`2{@|XEtJIxIIP!rp{#$p%iq861RT}x7Rvf97RurT9A1$U zWOFCrsC@1O9K{CioaVZi<45m7Mwc)htx;%1e`H~b0^?D zD>!!o&i8_IC*TZ5=bAhLXQJTT2{<30uI0D2iYGw0f(K4ER;>0fU^Q)GY35` zq}lKU93IWV!PT9BbFdo?+zB}9%Z0M+4dWAV#zIwwEtZoRH;>4Wx#C~Ec7{{M4BKHm zf8;`0ev59yIY@?8$}S^Pz-p+ACMH}cdn`riQp_4?aRQDeEm|n6C|W4%GUXP^vMF%o zlAeI0h*{!^V8yJ<7AN5F#0yT0c~nGdP$&Fit_AsLDK9h^+Ir#yoJd|5%I*})e@}VZ zLW>h{BKcLFpnv2cv3zfc7SmQ*oPZPMR2RxdIenU;Pl3uP5W3uP5W3uSl0*OA;p zS)Mb2(FVEt31g*2wm1PtLq`i`XT+&|k@B?I7AN3D^14v=7L|7kWwp%t%4QL;nD#vc z7LYgrCkm|#W!J{Bai&;I`)_dqPJyI9S}4nEl^jwd z`J<&m>TpW2p*g9XK>P$LF1>XNV|iLm%JMjyGPW=mj9qZKQk$Zl{cJQY9IbSxUy z2LXyM!>=j&5^gw5b$5dDLjl??$4{;4qRUk)SyzH zhVA)Y;7YD|QM$4H>mWQQp+~CbL3+meYoMrRM;3g_=didv1fcroP|ai9%u3%hL+zpX zI~ZPBS?=~HpQ>@lyjO8M1dm}FKJd*X2z`dXb0DZ`cwYqX0j`nwK9u;@GLDKyq+&rW zLiX^D_nTChItQ0X{V59BAR)H|melu@uk?oiRv*VOiYuoajRjZwd_4SWWSL0IPI#c;4W4ejw3VL>Xj1{0&5xSO|~(w-b2Et5kDMhUP8@Y<8AP0Pfh#a`oSI&=V+<_YN^|O z4ePeLC+m5Pyr@;b$}UBpdonf7`6aAliJp5>p%cLwkGLFwDeg&P#699{$M_Nah`LsL z47a~wnyMG`d8}E&=R^2>pjnD%FGCj=g=@koSv8kg30Fp6s5oG{{5QZm zh|zWk*hqq@(~oMJkA%<+=F$|ZgXZh-fAgjIsal1fJ`3?vgK&NB#lxw5coYv;;Gyp_ zJoH_GAFKjh0xh(Wosn6yrulQaHtmi?vU(4vV_neP4*yqOf}cL+_<4-V>haKi6(0KH zVK^VQ!NafkunQhW{uvK@$i@|IU1=ia1#?9F>^hc$(_;l4)_M)+s8>iZ*E^q)9! zMQ;-L@%{w95wyIzYYe)Z|BLr0$hj;2Xdal7vb=er-C{iE=p-V(^R~QDVHw;vyinm% zxVA5_d2|vXH7K1_B`Bhk+Cd&WgFz?JJw6Z@bW(E?$8^#P$hYHe-2X{BDL|yrxhwxY z7b>uneuz$D#W^}@5Xv|+2Xg4xqmM0tWd$w07Ops&0>7_U0#cXbrbfQ7W zpYn63vlLNhOVX)3W`Zcjh;$kvFeaVUHzu9-72lY2Qs0e{PJA)lWYXzC(Yu0tX zNGFzL5zDG2>C_1mH)hk3P6}hvNjEmfq|?D7tf#YpbebtJCY>G>7?Vy~2r=pOuK32J zQ!(C($c*qBXMb>@#T%1O8uss#PA{Y4idg3@NhekCuaZvlQD7zR+J#cYlCr--a!YqH)y~pHP>OCgUQtvT&mU>U#IYRzDCeKpukr_K)i;E{8 zH{SE_H_x+aN2Jq3atwWZ?ZOfVtMvMVhh5lOz5d`4!*)&5>GU-If675eIz3~wOK8?> z7b4g{T+IIBIm2xF*@59`v~B-+m&hUEa`q~Jba0qnF7TpZN8o374wqpuk^hqO9TD!y z_WQDfqryUFT`Q2wHNwuQ zYX3Wjr{lT;im#Icpt(&oT*)r1mCvDxC+vokm<_$9J;=^9VLyh?IDe33zodMTyugD{ zFyT5TuGslsZo)U&HFxpfMp=Q3G0N0+^S?oLfKb5o56pR^&tu_(EXcL3(X0AB9Dc;; zy%>F+evoCQOmBbxGYJo}tUGf*z}N8}WZA1Mx`7U_a@S96>F^q(*If+qDp!`JrK@4|Do(-GW>vv7^tiO30>9X;3>ke3h@)N$l+K z)xKUQv5T+QNnGpebrQQe{Chu~#2$9I(?1W_J1~7CT=<)DMFQ=3cjpf>>o%76UOq=o zl%Km^;y_nki`?}RKXLeecfG_ohZp;Ly~M!|KjN;J81L$DsUL36CNRS z?BtiZ>n5i7O;VmOy6YxRaN*au>n5f-{EoYBLYG=x6DRsSi$BPI>=)xxgnz12 ze@Re`&k-@aJSgUM6Or#+KwLKwL6B1i(00yrf#(H!-NbZ%r0Bjm(Ca47a{dc(eFSa$ zHxAzs==Bpb{W_R*kX_`ipP1$EE%<(S-NgC+0>O)ea3SmB0{;!cj|Ab(wB_0UPMl<9 zm%8gHF7$bp1j^1`FL9C2L*0YyvLJk&ZRuja0#zPlUkt)2>_IN^4-ovSyS`$M&odc< z?CU|;iMDX5zg+ODAjgiK0*?%v5a(v{T_x}`Wx)J%IAuBW&9I{4=`c>nX2G*DMWI+& zb+BQezV}ZR-!K%8Z@qt^ zn`)en3}Ci&v%rF|e?6cH9v4^=PUTF;4>W8kQm{Yb%&-HA)3q&UdT=OWRb9f&`!oIY zZuowXI!D8KY5A0Tt|FVBjv+iXONS=%G#@fFD|RIMkIv1SopCV(sW8$v4QV^NA z9uO^J#lM7nm-y%V>0*2yN!=L5c0oU&n+{X?G&en`ZdSiA%?~cA`S*%nCcPd?QVY50 zR%fgSP%}-4r{aV#Cr!znQA&P-4@jxIxbPNpMWp0T%G1Oig|(N$+|uPWkhn2* zGIep3Z%O4PQA)l-5vS%T%A`-?I^N6OaGmDYsMHmTN)QjPY$%drP*7W4{0sf`_e{w{ z8rnt&e^-K^`~kg*~* zkOL8Y=wIYYRR+B}*A~wgJVWXix$A$hf3N3ece05wL+rgA)b1g+| z1!%e&+xKUSgqPlyxnIxn;d_8^iM~-~Vd%3W0|zsReHIjT{40LQDt3~4HHbRNy&7#% zwb*fm-?){4RV3qcZPc1adZnCOnz9V~9q6NHDQBYPB!fg0C;V2om!L`I) z%CQ{JV8!s;`B{{_DIuW~(NO z$AbixvIRN~^el@tlx?8!F)Cz_kg%aMRpFQL3i`t`k6*&Hg4xEL6YIlgI~L$=y&foox14N z8|=^gtk(r+nYgPr!Y;Y1H!@wu}rx>I}uhghkRI7*PWVK`Mua{`l zGb+3T=_MN76iw4RG#dASA0|CG1%gjQ(5xl~d>=H!IHy-ZL0C;B6*7*1H(eaf)Se;;2h$7s9T9K5IEH7n zKLAuMyNLvTP0z_Vvf)@3>@n}alb@9oUJdBgJc`7bx0$iO_+}=Ob;#AJa5cP?GJVTu z+SaCeFH=Mt$u^-wt@LZ{gNdq{%pqgH$XaIG+r zC(0|-dBBZ_9DFD)4DuHsh90DWYK118BdNKM0rq2J6@N=CiN915-}im&?Iu&y^E;N# z?<5e?-i!RsIEH)BEJL!}%u9vmLsm(-2UuJW09H%N7qhh91{5~cWNjeOgsr^r`#pNXA>SB!#e>rUw2EsUIO-dXS<-6WxmdHmqH*s-lK^{3!ZC12-CzHrBeHnN$Lt$pDw>7FI&o=V7+oG&Sv0jPDS_;O&c_q&L?zAvKQ zPNO~z(O$MN6)u3UMmiHn2XP3;G2sKknDU9 zp4!SjWn1X@1)${NQx1w-05(gb`&?VX*lMx-FL+7F`S7fy;eW}__4h#4V)tLMMSen0 zc2k1de+eX+6W9x|T8v)cQ2HV>Uo+s|1jvhk*#KUj$FuG9D*+$AUrjNEk^ ze%^H&{v1{rPqCcd4*y@ONUziIuhMYQEN5kR0DhRpr6&C-_B_HAl(&NE|6?@n zhtN;hd|MC{IsNT?`v4mw^3kB+yn8sD#jnTMI6j5_&cqo(n_x29z_JWPk zxazwJG%icBh-KB1#x*6HO-JJ@jA`6@@r`NR;R0hC_ZI?V8utc)F^#K*5YxCXh;K~e z{#9U1<7)B7G_HpI`!w!iR9q43yd{mR3jS3Z_hM*{Xj~r+C}n?!a*Sx)5^*WVZ-e_(zeVG!|Hf%t_0Q3`{9KcyaaW@{k~A(~r;{|U;*Ha|e-il| zjmx3})fLmYigPrs;v9{uv~iBcRh*-76>przRed=cSNA+(&mi9PNaHHb(YT6pG_LM} z%+a`tb2P5%&(XLVK1buKe~!lG$ocQ2akc((G;UWZ-;L9_TUyJMbVg|kF+d!HYO*PVPVz5 zh6R(xCC{rgF1zlQH123O)%al=_XzQgX)i0uPuNA+D#=TJx7as0F%`~AFG;WjgrL(`woxU=f?+&M>3|jT?nl8h30Q+i=RWxwfEjCyPWxtiGrk#|lpF`-(#_gOXNHW~d;nyw&UTKQyqBL#=M+1&Oi~Av1HDe+}`%V>54P(Qr zQ+g3mR#BJqL@dTJ&D4Syr*u2|_3t2P=k!6;vSpp1NnVD|JhsbaEJF{Lc0AToXYe&u z4CeN=U@bnIn{CMVVj&ZLD^9}CZj5jb!_Vh~Z%>6wzl>;uk?a9J2drF86{EL+u-U__ zxCZ}o95NHl5Cqr@e??z`jg|d~M==ohj8;Djv2&Qk+;UMnke=UAYvqzAJbugc;dJBde0qGxBJYM!S)nD@(dKpl z^fK2$jJuDe`~$C!JKwnG%M3PJ1jy6wcY_6obiI_;Aj6EEN4yvFKgh6kECB8%Wxlo1 zoQ~?Y9i!exU#O?<)$nj%z-2$BZPF zOl@bFt7D0uq5SsJTU|r^G4U{o>S1EZ^$v#F{))H@EDPKfTUe)WQ4BrG!OniiKo_|? z40=jlFO_Zd^KKAsY|4t%bB}#BnOR3JL|K=cB#bH_$tLOGn^DRzKI_kHcXRm zlxA^-Ji|H>JLhX=ni++%{%lby9Dro09i7199uKH?^b0NBiM?4<4GeTj(=B*x9)jmS z_u{GVWB54}0s8(C57*$K&!6c0E`A=O^A~t{gU;Nc*tacy!tYQBpr}TGuQgLy5!Yes z^F68X=zCLPJv_DQ@vexpj3$1A`2t1_90#mb|9jshu77tZ+5_PW5nd`i%Fs-=Ut_Qsk2${l@*N z@D+sDQoDdD4b}mQkzPO>%>rs6Ua09DqK)w)ZH&VzM^!=N#fo;W6!X0#uc6Li?}Uar zfDP4wy|kSQI*c($J9VC8w3#|Iw(@qS*`aZjVz!sEJI2a~%7KjiGL7%>teCK%-&3g+ z(&a28f9k|avEM6bzBobLtLuU;Wov4FRvYaq6b0$Udk|7hI`fF5k z&xvsdQ$ILaTkSGwJHgbCPu6Dpyx=~NZ>VBKiuVMT+Wn){!c=-oGgf>tu{34H_Yh0% zD_%jYbu3NWeh(~7`$cKmeTYLwr+6gsi#a@vSjzAvY5ErtOS!!)$z4P&1^0?H#@C3Y z=w6kkzm9k=^(~k7+;u&0rySl1xLZFo7MyV}*R#+1;FJbw#4DuX9zppVDgU}O@RNYM z@6p`M-Qe66f1Y9x`idV`+&98+3GNfixAqLe_lf1Z3+@~H4<|lmD(Gm{hX=3wu?-${2iu*@+7sZ=L_$b9&MED%V10uXY@xTZ_uXxJ{e@2XD?QW}k z2Xr9~t64m{^&Q73dz<(9Ln<7Fzs6(f@t)KZ-kg$qvO-26w{{72e+GZ1;hqy_ldvEgKp8m)IUH=zOg*>RXP?ue&0 zd;{Gqg8{hp!q!|AFae!zruALvpSFe5-MUP`OOF9b*m{xf2>&z~T|ak#u7B(Z zBq+EIvHLURaUQ?f&)$=+q|N;tZSLo2b3aF$+m^JsZAqKkmbAIuIBjlQ(&n}$ZEiQ9 z&8^brHjg&9e}^`=N!r{hZEo{ubDKw-+kcQYw+Y(Z>fyRJ?{HmvnvCK2Lbej$VeILO z^l)8!h9W&&*XA9rYx54*wP&kjX?jHlTF#eI+tKDWk2beD+B@3Z=F#T%Dh;Q!xxHGE z(&qMh&aEQa+~yswYj4)r2d5jc!^!3yu50rS*R^?v>)O1-b?seA+T11%*Ntg&doOA8 z%mt~$Cmk%X=5A=a^mlMgS?-B$&5Im`Mz^{f+CIe~5shx2=GWecMz?u1y3N}SZJ*OC zA^A~KXms9bZ|y&@8`{3k{nQ1cB-}=6bh~DA2o&%{BWpKGqub9&ix<6%AED8$)jg&* zWu8PQgX{^74tN!YqliWa^f32~c0&W+ghtJyaX-T6VnD4|rO^TF#J9vNqE4aFDRV!~ z>PA0{p%C#1jc#xDw-Tr{y1m8uDvfRz`g@44(&+Yf=c_cj%|C+I{y{ckMKrq2r_pWx z5xn*#e_zq8G`f9Rrr~~eO4t)cZC`V~N~7Bq&iABn8B6zdfpXY(%CaPjSXM%#Gn=m? z&$e?=h>t_eCTVnA;h@s!wldg4e3eGGHNgP_l}5L90Z*Xf=5ijvYkLIu2vi!~_6f8A zl}5LHgVo}zG`bxSwB-!i?S{6411(;q(e2hQtkURqSg?&$RL}5x7_;5U!Dd)0HyjtS z&V@#2ws-`uT^-k64|MbPEjj0jR&rGu@GlOA;e`~|t8Zu}Jao(IvTI#W!VSzqquY!r zLM$nJI?7RKblc9^;v8``dP zzDlFpHyl(N-L7&_X>|LJD=VeZ?Yj;tjc)UIL)-k_(6+^HXxm~pv|T4}Lh){B+sfyl z64U6m#cpVuasG}*w=H%<+hXVMXms1fe-qUn)9ALF+s%Bf?uNFFejxsCH?-~H@FTh# z+P2sYZTtHlqB?`DqtWdE`J@oj=yssPD8k)g<917j*XV9&JIGhs*U{*9u)~fw|n^SUG`elE8`_@eE7h$ux{WqC>u%^6>Tc*5>Tc*5y4}#W#cpUj-QPuQ z%hBkz#cpWZVmGv%=~v=Yc1)w&S^h}Djz+iV`!@)7G`hXOUoP0u=ytY06jQ{QMzbbGPisfhk=H?+OP=jr#bZQTuR=lEv{b~L)Z)PF(n1~fXGP?AP3 z2IimpNb6{HR#cKkXTh^EIjIZ_i<67^(>nKMD2>jpTWEB2=a8oM8tNr;9W?dG#Vz z)g>_f464oThSqQqjjm`z8l9V~i&(Kjqoa~_pX$}qWNeRU^f`h^qjTGJ5i4G3bQpo# z4IRa%H2T3R?`U-Oi)i#a#4n=JxgAgkYHrCcq6rC&4s+6!+!>`rY4rEvlq{e;O-yKX zn48-Tt#L;*dX#Ua(W8_ojjrhL(dch59-6Mu=rCiq8(Kq0G8a;(C@t6~#UbtPmhz&?+bTlTFe>0Njhr873!Ld9yS{Jc_35|}% zrt70_J5Vus9^98~@4xI^2oC%7i+z*n? z&DG_6!7y)Zia57fm-CGykxq#xPC^;ufnx5kF6YZgBC!(129n%dEi}5_Jz&)o3_++( zpwTNK=4f;_bb0HHYLvWsDLW}wqf`lD?wT%Tzv-NXHXaTf6)`tZm$Ng>X^UudZlcyr z@1<;kPJ__su?FS4V+eU3EK$xLAz?#~M(3VtN27OyK+3W^C}nTpbaUj}fJPqyf9|e! zLtrV}b22Sbyh%Eo0ZQ4Xos_E|?xHSb<95yxBpHqysN4S)KQmLNOZvNhknBpxParpJ z4ph|^tRG%Plw;)Y65;zd>a)xi_zU`oi(eA*&?Rau)Xhx3l>CS~{cO+l(Ukmnv7o`}Czzry)Ne?7PfC8NXjJ+H z#`oQ0A~`Po1;ec);%ioVB0ay?S?@w@L8n6gNtFe#RMt`E<)mvHm@-4H|0}#owq#t! zd&6)%vPoy{;mb%3E$&du^=ostgm-(SPW%R9HO*sjC@}L!U(* zZY4&bl%=^;^aG8&3p2H+FP_avZ_UzFI1fUa=21S={35ZWc@Ljy{)|{nQC?;G;`3S8 ztDww`_F0T45ih0U(c(W3xCR{4UV@eaRqltO6BpOg)Yk!f6+Fy$Twgez>@Ma-Iv&7Z zb1UeQ{GH@8e`A65rp{CRHxbt_fMpGazP6kLh;zg{yRE8=RM}!EYW);8v&YKr7G+Np z%VyQPfrfU~k&^&U|kOuggO8nR>eO3HU`jks`h^?iblB*LAaitYf?l_B?w?;q() z%30yZ^p>5kfAF~kqAUcKB7H!LbP%x==>rn{P~hx%7U2Uv>&l-sCM#C-pf9av*037c z4ZBzh{544H4)cfP-Ms1~+WSg>!V@rnNi=|C4k2b^Z`TGfJ*xi1#{i?q;yudiwa5xk zT(h1@h4bO9<^R1D*>YkjvhStHz5&)E^8(gKFm>UnEF%+8d7sTt3fOb3Xp6L#n4)Pw zmC~vB!2rm9L|+~U9!Sup3?R#1;U0i`PpS?0mUJ4i6lf}7fnH541==d0jXp~(1=>o~ zrP@XX+A44bswLPupvmqJ@2WFdDhiAt?Og8vf!T55`0x06!4pu%k`9}~#< zHy0%~h{=`^xRb7XWLi?I)$?PaPq<$oH4Xuv$S)=>UPRKv=Un zR>%7odct+dKJAZ-M0R-HKj9=%Jwg&!jTZxl+KWpo=7Yy zogpc`jLM`*{Myy;+>=?qzmcfkhcD|_(Z~X=UqwFy()#_a)b9oKW&NHbLGL8w&UuBe z5ONQ{!fzN@&L%ils=IR`uvGVXQU+TS%W(oTgELY62N6q|%#t#BiCC(Cmc-^4MP)K8 zDif{#^QHRFgm+~JHn$5z{5p!iKy#QK$R3ngubx~V(7(i1{hIFg1us9B3cD4fSUKcK z1G`VcK2BZIz!bMChN(1syDSy2ILALf~JXbO|=h`FqETwgd-Srie z)^g-@8A?lQa;Rm)y^_(&;IW-$OMD2J2DZH)b}dCPsUO9&fxYSij?L^P4-%n2#6pVum9eU-8zQMwL~0MX zsw%}ZMXKV~8h38UwOXOgsLXbl$02W51W^ z`j#U)sj=&&#zqlKja@JP#{p}NU7ufL^YUx#F}n^a(i&S~t5-xdwpr=~K1+>#Yj=4a zHTD~1We75@HTDOovHKaV)Yt=3V=IAKV-HFq8ar!^Df*&|)|jI0D-cp@Y_Z5b2P`$F z@Dspp6A^LGr_x>9g(15*83-C2R8!`H~R`+ zGgYU4Bjotp^B`Zn3}x11^3Sm{>UL4c=_ym2VTfx{vOO=xkB4dc;c(zgA#!Nk4h27p zy>VsAumHKxXg+jmA$FBoTh25|tyM{_`BM)UldF~*X`e+A$)O{P-vriyL2-v#EhI$; z0qL^7niOANp9JnD#~E#%s$7j;`yJN5tSjA7)Hl{4fE;I}cnY!D$4+7&Hv?CDnEKYr zaYn->5OSCqgPhT-mmN&u8uN(=&n<@V6BN$WC(;~< zaNuRzP`J@_g=Z=lN8v9iyk%0@7h&Jaeo4FPV}^@x6@{~S%=|PdY(yB9dMAYkm}w$x zDLjh8=Ol&Od)c*2z%c(x5u4i)VkhIVcXIh!@8t5e%o9#Qlh^F77{iyh2_ z_d^G6byeSjunWU>aIhqNi3=z?I;bn!a3`Y*cL@v7Jp57ztHPlylyV1a!}pOJzq5m2 z>lslO2YZHlcLeNeCNqq?65g*eKNr|PW*n?@VcW`j{6=8!pUNSf&oW(#r z&CUXcg)`~f%j_d?$M8EQqqjL#H18CC#$@z0x|VF`@H+|*GN+61h_DAsa;TXraIbJ1 zyute0IXEU=5E z#!Ef?`_WDiIz)ds7~xX(YTz_e$Lh}f7C&@lZKtnGy7u!d*Q2Gb>j#10P(&TtwzPM1 zE+a6eE$!W$ry%_%+!$Uo{tTaz@BzkFen!buunG;PJ=gVkSK!b08V1ADdR}I~>s&DT;Snzt9Df9|j6`CRwgq_2>uo(IF zOra@gRfONVcE#zSU1wTltrxUQr?2x#_*6F6-tw%LRmB_lBIiH+U$8ZDYSZ7$KswTZj=0|pBhPOPzeG7k*b zm`h4-fN<&RS%Lm6HZ%;RXxKEg-u#aS*_1XMyPEqu+=ma?5~$(!ZUys1sD8B82=tF^ zc=KF#sA`L3!g2%J09Q1d++F-=)3J?gvQ0Y^MK9OVs!{B$9DG8JyCw8e9I%{u(KoVY z3d6Ss78Q*zfE%;soZV3er$133!1~Ba5)&Wo(;BKVZRze306YD$r(?IV;Y9e~)YJV9 zn@ChMYOJMA#LYQx?2LLkXDZqJTE}EqrowU9MDG{%Z?2DwCNU1Ok4yBR$!Rc5kbRtM z6*3J@>SrH_Z3t0l^l|x}m-Kb$=@KI@x-|57Q3z`6lkDO8#_ExEs_*C2Bh%Qq;6e(B z`al6&xWbU?jQTwR1EqgOJX=N`?N%*&=0V!?4rbiB5hrTSTjwJEuWc{+?}UZ9!JF@q zMag%<;-u{-ULG;Mibna4I?Cr>7jwgXS)vFN){l8Xvd`oJ^pjEwcN;-tCVQQhE&VgmZ-c$e^Zs~6J(5YwdMMo zLs9$qw<+$fYN%U%ogeMF& z@nV+i*_^sw$tc-1p?8anFz?ljaX068d3|*5*Y`)WMcMq#Z&3fb*|xNbmL{9416EXG z=*46#u3{K-&geNQOAL^I<2wQrMw2mT?EDs$2pdhwWN2#f^&lE>q6wO_TYfu8%=oGGyp>!190q%93+iYBINf2*QT6_%9{mjIWo|M*>dpJIR%DYePzLr%U2W*w*T$D zZ}Qt|Vf5{^D1V$R&L1aBlH+8D{BNfnlXlxF7Y?5rqG1ys8dyW_6Dl7&M=!@R21a(v zT1$+582PZAO5P$|nXA#pU6~kdZrZYOv(2}}+We^+`d3yh-W@oLgqdoMH$?9e^6vXX zBSQ2J?5s7>gR<-INqfu%i%fjuAGsLlAO6hsfA76DvYdbZQ)^^yQI#aSNpxe085XM~ z(M__~Oxj#x_>4MAXA8NJ9Wpt)j6S?dhZTLg2l%g@$^E0bscvnn?T6G09w{`{uovJ!>vA1*R-i{-n)I6$sPEQie z+|5>`@^fQJ)Hft}6;%BXS8g;ba&15Q;Obz@s&6?>;ndwtlX4$jWzLfP908+g%pbOT z=&;pOhpk@Gum#qHqnUhoh(4Y+$8oxe6Xrb8GzOnta~6zwPi}&Pj}CFTyh$NHKSUEd z6lCH91j{x01QFZzKz@3|Cx|G_kDZ;8&i^5c&l_+en|HRD7~1ltQtXo=OLw9zKewub&@*Q?^vj#$=Z4jYDRde@ zFBqY@Fw;-8*gPBVlkX8V_uNM~kxqVwll1U2T>KibdE7jt%qhG@vSG0$#DfdIbZ7%W zTVVP;Z!1o22jw^F!P=Qc)JfD!6)tW2~VtL?^0p%)#rYrW2YXkCEsffH+jW;+SxfOgn?CXIFqALn>bZulVmvJSl9@;!mJjPIr z`?JEK!Qub$T=+MTV{|EAVdT4j+@-=~|E&P3lg!7OqG}Y0AJ`+JOUE%vg(9MJWTsSI zm}!)1AZ~-eVmfA8H8j>~RWg+io~vP`RBb>eejvuJ388J^B^R3vhAvo=jAW_AZ*;Q3 zFg9`og9(vD$134kSyR@%u2{-{19JZFjD1Nq*u|1U;{lp981u#%5aOaR6)WMoKMvgx zQ5_pYCP^m+r63)Wtt}X+>?_fwfo^Ld?4(*>V*w{Df#)*d65}jO1zi*YAFT;(9qO%( z$7aHjS#Ah385pEtLt_S~fiMl3A3TB~_k+J0vOoB%AtaULeBlMc^@7ZLtVWugEY;qd z0b+=Ip`k;Uga0?=ek5x&|L{u#{~(TRz=m-s!hm0Cs@7uAnt=Ud2+zo%yCOBFdMR&o zvKlw$ya5g}n(K}m$=sO-Ym9#^gHF~Y@n7y|;Jg>>Pvc|1u19Ihh0~G~M-y&Kl{{s3 zC~ppqN+wt2g(g~IQZ+;iWWU2meg>*gS^7d|^vHgxLU4hWGB0UE|!^t`D+esQ^uN#a5-89fN8KY0qz`?CXZDtG*V8uHAF?-h20eP$V z3PhK+_^M*(e8ySbBaij`Kb-xCxbfZxXLTeP2V-^B7zd>%d1>c1rj!5!#tz${B1_gh zcDnpk$5@O3d>tQM#z|f^DA4~0<#>$M0dJGXm#WMdDkdp1Ml}Z9RjM(-R2A{{M15UB zS};CaN3yK*_e~+>=vv0V4UY_-}#t)XgfV@Td#ws~uPCQ~R}(GZ&cuCZIhc*T4gJEkGk0IZ3VKJ4D*X;k#Eo+kr*Q|qM zE8WE_ooG(Cr7Pv>e!tCDo}QjA*NJVswi}hRP^nl_v09X*{3cb<0)kegRh2DxyS(dNA8E<(*GFu(TeGb5ZNd7g+DNt6WaF0OeX&&r!y%KY zrqSyUH&xWDu;EXkNMoZlfLUc7CQ-kH!qwGYA3ozCYU&!Ayj4Dbq9)jYk612R>mS3d zjouJSiAPGcOnLwtwwcp6xWyxuTc=rWoudCYRer@^{Ff-i2V==aRcb8;nMxD-1Fz5o zF-)y#-=c|SbY(A13{%8<8?{(zf`gi^G|54YR=UiwzGklccLB9H{P?Fuyy1}!&D`8{3RMVE^~%gm|WZtf8glP$MRrTP(S?hsE{D*@ytA6@CQ z?Hv)}S* zp!GV5)=vW~-opSSvi?KRx~V$U91K?lRJ2aUS4R19(HbbOWACLAIqma6Bh)Y$E4LSk zbAhK$Jx>h|nl?zAduf`LLS?iD@5A7Bzm_e6Vu+giX_D_;PI&``Mrd-s-A1F^NB70< z{nCaQ&cG^u6S3Roi<$Qv+}HS;yF90ynm__&)a0NmtyEh^Q{zyhYwaNDZ?mNStF51^q?4^>xaqfqwB2{C?o%{=uy0i*u{U2 z@SjYo=%q|i=obT`UQa;y0kYAbtMyeo@bOsp+?2uoSS|$UTUI0p2Of8p0toPx9Rn?3XDza2D=TiBcju2pZ zIzr&1&e?#+$%w^#?)4s^$D?L5UD0tr{-SuO z`NFrFLJqn@p8XXa7J*ItJHH0S^ztP)@eiSn1e=!vG4V}h`boU~lC;7Vc;gi;TK0N$~5umpe1wq06hwH|82x7{+|97Y6*K^&lPj% zePVxhP;~CAa#q{+<|s~kPH>*zFLq(1ZwD=Nrmw9LQwF?6 zMV5I}#M7PM0WMo^y$b8`{(GL7O`jHp)YUFV=t0c($A|;ZIG#Q+3xjrddfoP5PG@I^ z|Fp$5?Xy9QddHO52E}XJT|TsXXSpo{#Mt{fUDfeb5fKlke?xhgf+8+%cup*%hc2_+ zWTtnbK6(fXeJ9#47dq7GuXZarHQ9zf z8`S(W!J|CWjJN;T(;sem?)%^N`a}K@I0)5?@N;4*?;- zo^kEz6YfB@yHm;bD+-`<+LDX;0C{X^#dJ&76#BfdC}#Ry^QgVZ{`0Sk?azsj*x?n+ za=%DFgv1$b_0i`(;lQ(B^n5NLp%e2580JdO=0%E<6Rh_8af0f|^dG6c)YFC+35i{T z#b>D*tVJjf<6vgeOR0ES5q+mkloittQyuu^D6Wo*cGo)b41F)PkdC!EssnTkujQko zZ9e)w+8k}O;%TLCwT0<8zJCkfv8E=`%Paki7c#qWF|~D(W0(%7GX4#>@m|E;_9E|3 zs5jLz%S`{#CenC+@5DNYh4CajnE%cElbVxn`R$91}Off z87J2s6v|#8n6k*P*!_Nq5fX;C0*2V)<@y$%^V82iiT5kfQ!R2bZ2@f^ARf8awO*Xr z7bty%{_T?>rz0&QF4t7kMfVAw_s=ap+Wkofo*Jxq?wU$~+Hbc9?5-Stb&cKYoEK1G zEwQE)STpdP5)ctf-qg?0Q5@BatzjDY1oqe}9Ck%H-!|}NY8_r(|mjt=-@2?k@g@vP4YlE8d{o`_!TuF}1I_K)JoIlR{y-U>XEiZZ|6% z`~!5SnCznd_73_=`^dms-DtIBANN}P=%Si~+-Wi0I1-|=FqIAB8x)mt{4Il)+SQGn zpXG_@1#<^|wq5vMq6y&`)a4@epJJ-(;6B%N*r>HkEmM>tS{>&x8aw24^!WDPIFtjC zzwdD5N$8D5W^s>mh2LKzifK9kY3-tBM`RnlX7V*>Z=_%C=+bK^h_ooQg@|a5^hFMe zo5a-p%6=#QW=j>^kxLUDR6asAqO6nEiT-x%nqD+p7MioO=o>rA4$$oWPWqK;n7(J~ zrK&L02(ePkTIZt8KKfLgCV)nv1v#h*cp#tFPGyEaxM)7c>OV+7MX#sZ`y21`b>L=xB>b`8co6f=eG-AU&fw3dwRiscOVLNtW4o8L`9pp zL(E*CrQ|rzh+_E^CFMsp*eK8ewiCTTAu$>3XL3IbV>5n{nMM3}KUxuAQ&rIztP5&( z-KE9&d!+q`6Y7mGL#Y4VWDYNmc;&x)V*b9$TFU9&m+ca(#DJ2~DW)hho-3i24j{-) zW>KiXW+?BpEAro8JDfA`Eu*NZwj3s5Um$QMB2_Qd-u}qXrLLlBv$shzOfF@LBrBF5UfFv6-*7I! zH<>$~k;BWoPuGsvx{JQDwa;E$ZF3iW1>m#x739syg@$68eRU~K9i+P6BjS*lDHeR; z<~6(gc7H~Z?Ug-?YN(-uBEvLO^uAOS$=gknyMWYnqU7O?Lr~#1o(iRJ*m#g?JLu;o z(RH}|jJUhIyQfDuH>A5o`a0Lzd#R~|dd!yDeDJZ;`|R$AA8-U_(ABk5@XbM$l% zJ=GpQa%4dM)7j}<|4Xu4X>l4k@z+W#%GA2fQ~XaS&4yqx4THWNn51YYxE9TVRUNUO z-u-+JRdvii#9CjoRb12EO;_~O!5zYSkt8>E!=hnOd>JVKWZ)6?61^sg2xn13OCYy0q#BQ$6kq+f0CKO&|c2bcF< zI7cBXU6BU<9E&_odn|B9h{-3aqi3jNNB__eJ%o~XwwK{qhNqSOWG?#&b!{*E#>NxD z7w1I>4i-^s2mQw6qXX^3-%z|+N5rjB*b3e2T(*cfIMhk_aWP-|1}jke3gMWwZslB; zm=^ooX0a>Q*Y^{!x*3rSAiCqGwe!~&=Dr>9Gh2#8BhroZTWJ^HCj2RrG_RAhFuZtkS^<;wXV!1X70LQds-~uu5U{B!t)>X zb{i|2D(XJecK<&RG4CDBb>@19Q<^eB!ZPUJ;#z96-cD_W4^Ug$?etkoKUk~JFE+(8 z7rFwJHF~-l1mNEsIOUV zN+HXg=7V;vBSnSvP)?L??xioc!%p`p5S_l$H&U2sWAf}**|#(mG}dAjp8`G7M11~t zQ<>A59Z(eizGH{x24Bj_Nyit(?xa=+T{bGN*`Mvo%CL18ls9Kbl>9AXBfB-?i%JT)(*YnU*g_qO@idB5ao^ho#hI%ZO$~w$#m^FbXgfhTo7EgV}KgV{4~)AGHy{e(6`#l=vzC$MMs>N3hqa#NnHK$;JS1We8jkZ z{x`t&Uz*K0vaqezwhi>%5w(wK+Cdo)6A;e47fd~~@Iu$_+B9){~}z?lQ(pDu@M z%9lQaT~zS(PH;pNAZ*qoXAVt>i(=98msbPT5xe3)D5hJiSBZVycI7@Xl)iy3AGOSx zT43|qax!zMp-fy4wXcvoFp6jnw7qo>JI(Xa+A!ICe%drj)5Ctd!Y<}tZx`XmJ7N7? z<)AIrPIe{x2afC!MM61x`k-sBIK#fQE8_$E&x%v~vXvz;4sw(_(E^1hI?pL)o)y(N zUFenZp_hbh=rmQbjn+lbVa+sOSi9+wb^-ANJUktvcTI6I?UdBhCyF?=bXCpwHwQ(Q zI9EX5*%9CU82xcaZ!Cg#9TpC!9RFC<%j%Csz04d1R`giR;wG9Q9HJRc^dp_keeg~U z?XZ$d^hR0(r?x2U;t#R&F%pfoL;}E_|1gDFKfIyqG4M-Jn}hyihxL@W6CUxcRNQ~M zTYjV|+$yF7$~S^J&^2)?fI)D5f8S3DKl|7fb{-d}X@d5=vMa3oV)ri5JoI^LNxO5= z-s7|diblNo;K1kT&pSl?jpL$xS578-Tepm~(S#0O!5cfq)Y8T8)k@j<2mZ-OY;Ar} z+z@F#W6Ov%)yH=4R+Z9nd72-wx4fphB3w}&(gI{3&{+6D;`{I)aexTd-L%%13xnY1 zhTP1ToHSw@R06R+nphYH#kS>Ut~*)OG~P|uiGES& zdazAev=PNdwZpGP=odS1ARUU!a?{j#nYO5iDjSp*MQK_9J4*s^A;NnW(?_jsRR`-E zBOeYsKfJbe@~;5q7gNm2S^BYQI1JAc*h%alEXXeC)pInxx&?5fuC4L-V)4+kCx3VH zq_`8$C&iK{#ce$h^r!o1U;Aju+6yAM0n+J@rjZNYbmen)2rT-q9UY}>PK%XQPP$eq>*rE5f{fJ>RCa*b?J!oRnD0;4^kwxx-qC^*vhHrhJH{wn7? zXn_y1MO5_si;Jd=mbll5sUnIc)OU!z;#?p7$|8E{zV z%?^{hw>x@@uI`82E*hf9XwPZ7d=MV`#$NjD_EA`*!A`OJYdL*=7ew(X_?6m53ZNwT zpfXu*xz@6JYF{7y!ql;-W`{p0GVL?>%5d_h#0haA3ax?aA;&)*x7>6M_{xp6A29&B zs?6U9-_Iyr%L4Z&Cg3=|Yqq$|uGU?YmFNaYwb#|zoEB$J!Zb4S1NDC$gTS5-9Xhz?uPexd&Z4}et6n3 zU5Vs{^Jeqm!#Oo`{Q&_rr)k!VPH(#Khw%Ty%7Hn#mOG}4YoSJO9;R!$PMv<$GIP4C zXP%Qda zD`?6feQGpN9qpleI$#=G=@%BnuKQs2IBc1u42vTW8F0GZVum#`NCm)5%gpQgy1ToD z`?t_Ex7sY3(<~*^A1P3;YTuXswya7WJfE~1TS#Fy`KR1isu>ccuW{t9t)Uw%)n*F#b{*RPnB|sF!I%fHxRdJ3XfmHxy@Mu~;oE^Z z;xOlQOc2&tbFJXXu|0Faf&GwUH_u+MrZA69zo-?wx;1j7v$`e%2}M_wiOHXbfm!D- zTCnm6QbY&=l?i1w1(9V@vb(QnC51{spP^iMJL4+_tHj;!WV`K(lj@lj zUL(S%2E6{JX3*mdf3*`txo=*;;+*cGVAkKJf?9Lua>& zG=SlzDaA1BEVHK1nVA!{%$j-UQ6*b%ZBU3##7?qPRngqiC2$7ut2x> z1?D%}I$KZd2ZF5zP_qWlz&!`D=@C;F40L{WGflKoq-^sY(2wdt7O_aA*-z2%)<_He z`V;;1^{wm@_zPJI%;GMZ2lX+QA#C){R`8QU+bx^S^sohc{A!9ArK{rNpWuJ&rPtbU znBPq0py$`yah!i>gSX>5?T9Z8n$Qp73XFNmgukcUA>eDH2wQIb6g<;NoXMU-kC?gs zb(2WjP2VT*gMC}YWH=(|IWxYzxm}D}Zk9pIp4a9=nfhTjw65)-EdTkFg}~?aX73^FuVPOUWoIKIoml zW#a&}1%QXY_awd}w6v~6xTE&Si(BmxF(vAae5s9Y6OO?p1?l(QBcOkH>E}CqapY>u zKMiSnh$cdN>3Hqw$m0k5I^8y8K6Q%_UDgqivFiSI2hAHfC9VT)PUwix%F$Eb0^l9= zKzr}_WBBD5L;4uVM(Brcc-%1tw)GC!Yb)|p=!=>2GBaJ-`%09C+ndQdN>`3Dg^X~< zUo0QmmjbiOksp|s8SrPh;H-HRT7}Xr4lUo4;mlbBqm2B$wA6Alezdp68nY{PaK4N+ z?Yp?;VKbU`(&au8@gH22yY{3&`p=@=9q`oe5s%XqBf^cm9pxMo;7wEEci6(|kk^La z;?jf3rPp-O@{Zg&xpa$2Lk1yo2jOH< zK0E=(SAc+zo6JrC-J$f&pozmcyu(hqYf$meK!OARy+Zz#pQX4vz`tqsk-K85Dw={} zJ+0Qrv6EQ&d+f{)msOBffc?MC(QCKewtGeQDa1<3;6ab*e=o~{*>dC<*`Ep)9TQcPl*Lzrl?o1VNH4OVlq`SQ$(+nc?#dhI%bYb3{8oJEa{Tc!pV2W*Y z^Jt`*S`gxiv?>u=-OQfFaw0s3UZga>2N4+S65w zD7tCO=o^URob9>MorCOzZ)9SaAHt%I?u5P7)pw4pBlMp;Am=6^UV;?S7GFJB))H({ zS>(DMyACRw)m<+{j_4o??mq!z)<=_tuVUx~-GVrf4+}!>mf}AOp;!n63xgQ#wt;S{ z8>Jb;2gN&BivPk})PlrpG5IZ|^A=*}(vkS$ip@oB`IVhPxa)rP0M!q6?*&vo~{Y9aq4p~VX~Ke6y0*W5$dSvAS0 zCeHGq*~E;`2tREZr%0<649~nGM2$32h^mE5WAUz)$;HOh-RrrMxN-@%c1= zdlD~7;!;NT_2GS9o9+dZ`kcjlDsa@c!4?qLo(jN#b3>PcKN333ciYqG1ydOvZSQhM z7dgwFd-m9=wa|^N{}20 z;(D^ZP{9WuJ~;fj3-iS7XJ_2y7R`&HOx(Rrl&<)q%$mdXm2lCFm3LEcgl;S=qM67R z5I)wx=(2t+WRNC1Xd~A415^0yH={1Y!SJ~A&P>6E}zO%VIMt_EPy?(rzxX^6Ok@l62d=nyl+l(V)Q1-Jz~t6YS+x!i|#apmPL@ z`jDZlytO^A;SM^|-YYUsiQV1Q!uIcXk-2u;x$GPBgz_} z3Vg1P#wg0H>R*^GTwcaOHzXLs9+>EZZy@p4#&;A#yOAM*U);qe3Pr}}OYRSCsSz`q zN?SsaT}@JdZY_%)a*J=mk@;|BK#9y~jug3TXY9>dw^DUqMGIq{U!L`8=y|?V^i5or zIJLe11(4E`8{zLPJLZN4GhiQZb;BVl5Bi~Y_!i#5K|h4^_2wkNKrG=>r~ko_lxhqWe;D_lNG^ z3e0;u#nDaY(J_vW=i3Hd^jUO#tIe>EN3?Y?*PNn?sq({XcioL8zM@y%G9_lYd750@ z#4?3yI_PQkc6ne;X2{b-69Ck!MI_C0K$ zA37ua_LbeV)<;$ct#<4#LTVfi{Uuzmd8*yPAAHdE3%`c0nY)f=?nzAamNw6uXzJH4WUt5r2=ztB^fmjy z$=SE{^vFy?IQ=Cg{Yw~$d5P+cv^kP#=*6z#@wv(0|{t=?deAd zaQxAN%+&3;uVL|huP@l$noBK%PO9stz8zw6XRfML_!j1A)14b?buB+pI;RAZRutLq zIzWRv9DOuk?x)Y}kWkpYH)sCZK<2!h`B~*-c$0Jl&zgJbC8RArYxdE+{@g{eVE0qG z^vxZEMa=XZuH`Or`Dl4zPflj}{_HFRR-DzB&L{bEwFuMbo?dYk_+;swbcymt(INk{odQ1G+tI&ff9ZtGugkHp)&tuN-Z4;AYbc{ym z!q#E>3>e6twiaTAbhULMh0}0~8Zp)(Oo;xYiAU5HA>HK8^Nb*M={{LU|g_m9dORq8=#iAND1DHtBw;y zVeRuz)6N|uwA<3Vg8s6-3m%r&BZZO@+R0>EIyB?E={l z8~io;`9HLsS9Q_?X=h*Q7t`qX+rzXMQ~Z8=M+`d|VH(^0ICcRhSgtarlEe&22jCg?XLNx42*tn@qbvI($LOwM zM76)V70MIe(r~(wX5fcsI!>|n!Ka@*EeqVVrK_{E?`;uX?-ZGR>s-(La+9dv)f5pv>?v~aW?Ay()5@^k-^h58A-_pE^d z6-0W2-r{Y9fA{viUA~^vE2hbG2QEOi1M(pPoJ^s2p|?^*+RAma)-}^h9LD)JIK&Y2 zsAp5GK|kjXzql1nVIOir=TAc#Vci*;3hl{ay9S}a2_oJpHohF=8~~&o03S%M$fdl`EEq+=FZ+%S>OCi~E0za&e&-!N2)FS{Wv*4-y@M zEjv!H5W8BRgd}=}eBde_uXWn}r%#8(uJngD6nUYZii0sP!s!0)0depwC>eKR5rMj_ z!(Z*keZ^o-bWAOM%^#+p z^7UFIUxoV+KI#zg$cmD+HOu@^`EwzcXJJ)C;*U_YN5yqeue#3qbD}?kiO@kuwvPsX z8noPet%#i|S0G0m$fSMIA_jpCL0kksbVxiN$caSuchc9k_Rpn}kpX>sxXzzCD z0Bys^oH?B_cxJ5hAk-`hup;Kek=yit=>Vh=G604UlEhkhlQO#F&daJV(g5$Gtjoi6ClF4q0s$NZLg zS8o*lvxwNylnyw+W4K*6!7A>w$6&F2jT0Vo-+F`Hd6RJCsS%!_t06;tNXTGkd0j8v zGE8+2nvy2}7UHkSrpr5!kR>KdM^x0cx$>RULw|jo8V3;}h1H(y660kplCbS}#l9N@ z&;s^zNVSBMZ5G2!v7cd>4FhCk(=E6|Tu3+d(#k?g<6JF-HzZ`z zyD`AuLFSx?!RcCc*ls?K?j-AJGFQ(CI<=f=-=Tkf2M3v}WF=e-XpNKsKT zY#G9zzTwMXf|r&3h)8eeE3N@Yh_3VD5(wRZ01ZWlIl29+vYohsU$)ndINuE9x;w<% z$c2Z?s0-dm``P0CmYi$OJ_en{?ssPMC8XUsft=#E?CD}=&i)_|O6u_PATn}zI1qLbZ)=v-ZLm-@< z-P+r!UJZbu+Kj6KxJ)|}F~8%$yg^*Qhw4-*ijIS;p7ln~1#+A@PX8A0q7!%niaq^D zikP~y#oseK1}zzQrHUw0zJlx}>n^-$V9o)kU1?sw-BqCYySs}D0(QS} zAL09UZvZOB#i^N;!CTe3L+ZP9J9!4ZQdDDKpXUwGSc`*rYT_+(BBJ~;4!@1t2t z%*dlj#~k<%Ns&+uaS7Q6H-ZmO*s*BI-;w$05O1ATC_5}4_2WIh+#dESp|doxU!*@e z`@0fNEVG`kXmif(Dwv7HyO#dD?CI$lN+w;7IF9ew%fMjH zgKR7V#b$~ww(j!%_bmLQ$Shi)smz%BWZpt0cY#p0izgN?U{j+7ZpCZCZ$bLqn?S!`ywD;4q5AqsW@wa-Jd8-&jvtHl+{iE+YPGc+J*ek0qn zJ&JXI$Lds|JmM);^$dF~_l+1a~&m+&S zgR@#ZoUi$Ui6;q`bru!dZRfrUFE4cKH0T;}=er5HgY-i2h`6Sc+WKRzxhutQ&t%sE z{*`68AdlV%0bSWI{oS}n;zMLrUg-4Mo)J^Q>NZ0-`TM@%_XqK2j6i8lwL96e3B*cv#({_bE~|5*PL8Y zx=;~siXv5v@VWB)SC$l6N~VH0HZ{+6DgmHCx|lk&I~VzV#kt~6e0{MV0iPkux~W-E z5GKaUskDRs75<#3!5MyH8Ue}x86H7m`0wNiZ7hq$9y@uTa~_Ty2g$we*-PQLWyN(= z4z0N=`s4Kl;B+)VfMe+L`GH>>3i^W*HxKoA4LC|qa&dJc$}KGbqIY0K?Gd<2(v zY=%YGLHCYRe%E`K{y3KYYi;R8F`9|@DaG~W7wF3$e$VnR!}6QdwO=q}2RE%P!JXW9 zvHUFL&akOYlMA1#;c%=$HNRIpOUI(PHHLR=A>9*UmkX~Pu!-0F-XcU^z^pTD-nDhV zeQ)r^Jznso1?JZ@-`U7PYEE;X#Oud6;xQqN6ivLc zLJJtHt(FC5vE=MoaR@EL2<>p7;R+E~OT{^t&Ggrjt;Nc%P3(E)u1w1-!2Z5d&U zBqY;5hHi(_WRQXQ3gj@Dgu>f*o1apx+8kiaVM*mm14JL z`4y>&^3SA*<*1kCi?2w%LAExTHlh62cwv=Zo_9Yji>2;KxlOBI^+<|%5eoW}%gv?< zDduIEPH(zo*C)8;{WRWsc>Fm2=Xb45!us@1i@5`4(Cah5kRtvK?JiY6>5G_uoce3E z@n1*%?S}fi7@733)4r4<{>fN(KP~4K>-8s5&)4$wxv}@8`uLYq#2;`!SJnfT1?qMa zV>Toy0mDiv9LW-zM9jliJdB1wDTz~k7DdPI~sXuulMHCz6*I}lwKkcOy zu|hvLz;v;;{_$YScvgnZ@mo^(HD}8TpGb=_$?()!yG#Oab4O^FrJ}qnE{WueiiEHC)XF~c*gZ{)H@98$v4m+ z*Pr}piui@0KhAlHPTyRA_-85N`-Xa*_oShW>v#S@B}Vi}Ce-=TV;E z2ZnhWU$|fVwG`nu^eX_KUh4cZVXE=VISTalSO?=5kHvMXP&fOcI$j^w?L^%iy$8F~;j?n~+HuL&qJi%lu`Eco{gU)0+{ux!&}v6!BSoeyp44=khqpZ!wfJ z+_?N0%F7JpMqJ|hwEs*I)rNZGdCGB7e|DVnO4G*Qc`illH}nTC=1X)!nZAb1H&TQc z2PgC~a^Fl5K79=rm7x!qIY{x+ zdc+C=euO?@y-$&fe_Y=9+Z2(jmrJ}&Db#6}>kp%Tp8-xr-p=)_evfq;>Wy^4^`<|h zhz!F%^!oAeh~atxefSjvk0g&-a6j!yVc2l}$qOkW$FOD{$GL9O+n26eg}QHD)K8yt z(mN?)tD#QkZH$LJZXER&^Ik6Rxu{$p?=Z^$o;03Rtu9Hszr)~sGe2AJ1AO6q@%&tO z9(53r3Hs5?P4A|N8x7?QBW|CD^1BS>JXV@kw-a^$WvBy(R9Pj;c>UbJ@qeX=$CBH~ zqu1*v{pljy)^IRQ>%SBA2^q?`FA;xfjQ23!+4FwRLy_Y9^G3O;m*=9~xPRU!w_kV+ z`jk}h+hjUpZC=Fz^pAfsRn&mr=9A6z>=Z{YK~u9l|NpT8P;UdeN= zxSy6LV8>&unwlzJMSFc-5dR8RdG$Fmr=^Pf$Kfe@{juq(;&}2LiGA_-@#~VuFJURxo^*>Q$@bscZtgHx%@oJ zcN)rB&g)|~-k2)>q}Ku8N-kdSj8wtqvkosXa25xN{;#9{`}n;By7QA0>Kk3d?aoW&c$2%T_ z>(8Tpv7vrB)~46x;>y`AhPq3wo7b=jiXdN6185R!<8in=j`CTCavn$Ta}0H9hC03c zb(CLcDChm~SSDQlDl?Sp`xy_OJl4DD!xzS`H}v7LxO^wd7aPt+$1lD9WcK^lr`b~l zzraR63wc4Cl|Kk3W7QcV};rvwbJ;V6eXYu`{@)!x{C8^>+^m@rxRr#&2uW@PW zn4bfU4)~4{REor&85g*`2j%=(hlO5#4CQe3sO4CLUVakg zMp>zszm9T%?mgq2zeKqScYeleKk1_K@%F@YbPR%=?+uM-PjcNR)cwhDhQ>3N^+l=T zFUES!*QAfVX=SRY)c1ok(s?HLJ&C%DaaDC>gRKdS;qQg|$k{~8NU#`!+D^>gu zOjNHoo-fx=TAwO5jdQ+w|HiV^Bwy9V{nOm3;>Gvre|{r)`Z)FD!J6lshePJ;4|W|M zl6DDXr^*4Y??L^N_o+XR`T@Nj@HFxk?tj<=d>dy?d>&kXtRhuJ4gK}=;JVz(WSM;N z*ps}eVq~1L^}U$_sR-hXorm$fc>Gm0sp8Kd2K~Hr8K?JO)s!mmOD~D~i|5}IN{08v z^(P~#Vzr^a@jQ9{%;r?_@A}>W`-}TeYDpC@80yhq+BEw5UPt}64fT0@C_m}!T2sa6 z-f#Y`sbZc%@49$>n|7p%QG+gcF?=@dN)=xi2j4G+Z(p8{#XguSZZoV&_s1|kaDC=O zsY$+ET~Fe=M%2X&`_*k&hKC&ce}IP>&f5r2uAlVTRPhJH+(!8#>mN=PR>OY5-vRGf zYMM5F?jxzrT)Z*QfQQiVDNJbp2QFAK#xU zeuA;&yr41oViUer?%#L-cs9;C=>1PVnJTgk;~U|^{U`l%s@Q)CJmC6c-$+Gb+1S2~ zc*6DP`%;tqFc;VFJP5tyefswthCVe;{djl;vN4SSSvbjNn+_BBCiL>$XAE*rlW*L9 z6UvQpk72{*jVM2FfQ@nOvfnpT#qZyze$}^A#S`ySZ+b3O)amsX@kcp-f2wF0XYcy@ zUO$qGG@voq>ohnXY`BjJjv-E3SfbC#Jl)_k<@(GYfv$DfjaNSizG0|0%2@7y4E4(| zv1YEHbRt#U_dfMKFQU-ArH|b}o;%Y9%sK@W0$ zzclb&oQdQ?m_#4{JnD`1sF7Z{|Lea>6?cqd<1Q~*mzJLSdd(jQLr!^&d0~1sa;dX}Df(s%@zEr^!G3Em9u}`s=;b zX;p!WCPQ7KoEv?}pF87UO{&V6Z(U%$(^eIVnAEwGM)VYvdN@v6?}>!G)uyJ3W)Htx z($f$Ln?h9;wcdutaIm4?RJg2QnFp_@Z)oyFy-gu53I*G|p0KGI_shK=Ss(CLRC}AS zQ@s4o8k>#4=N?!%_S{MDtaJnKrL3ildrmpYfD$TOINM+l$4e%HPu9eO<_-EMN?BntEZ}=KHSt$t1YXd#;`2D z7>fEjoJJ^wy){KJlq_rxR)+&}9(B!?I4M&_lfT|n-Qe+6)K|57B8_sD!Fs<5FN_X( zJ?gJgc|#@-Z$frnR#3du1o-eKd7g%PZ#{mQtt!$azj}i8z6KsPiVdvsa!Biiq^E6j9)uTzs zB+;POTki+V3O)Iy#igq~YgXmuFE!Oww0J6N0S_!HQok8<=o_o{sLKgeH3b{Po={^& zm6s>;1u;-Xo!3-YwybpZO3&)jwVwG4GgY|AJ$kCWI8&e&u7>czFI^^Kq`nLfGh*+k zsq=&yB25^xs;QyT6YvK80qtz%TYWruRg0;HPob`%-qRRvGHr=e)Q6)LwWeBJI`Qx_ zJUAIo$m^{))rI^X9CDq8S)pXiQa7j;nwq>@B3=w&KtXlwAs}qEM_r|yu(F{69H8Fh z<6{eZ>VSh4elLIZG*03M-mu)abiKH$;v)p_nU`FTJ+ z2?t}fcA6SERBB@!0_~Y<@E%jZ1`y;QF#y?xG=SmokRppel8|Zvbx9-D?@G~jypl7?52ihc}z?jUZVw99%*7yw8hjmwZJ$^7XIlif}slm^j%YsTrx*bU!$z3D$ zz*il$b-G77Qm`tWC_e8 z;z0dL++AZap`euHI;sYvUWvAn!{am~Ah`E{RplTFu8~kQz}VG;WY`!c({zLU(j^f6 zEYdX&rU`U)INp~geyhDupu&*g_}y3)L@ZCS44iAC5pNM37Fq-(zZ{jtPO_>HWPW5k zL`aLUhKnkfZfFYPr}VH%T{<#k`Wv%&-bk&N(MRKUHBzW*yWb-}|Bxvng&9OSIJ0LyPowf5Q!UF_6?s&itO@Rf3YTBHa^=#J zwQEeOuA`za|HiK_(KS3}S{PFV61+g?5}XLmQ$ge@vVfB9BSRI!&BPVW({sBGB8!CobV((n_-o0Prwh08^4$6PSHf zQ0mCRki@mxU_EpnsqC&Q1q_xHtX;8mwWoCTlBKJcF3~U%7%s6SA&?~!wrZTDxuI#Z z)TgjT$R??*gp%-0BhE3<7!Y5daoHM^swsI}bTWZPp|ZSMP`lS8G0})_OfnT!n4!D`Bw-XbYPJ;3*DLc*x3Ap*YE#9DC`Wc@|w;DsrmD+ne{2(Xa#@Nt0O0|Iy6 z4%k90dc&SEO^?;FPC0r2(>f z`C?OJ1Ju6!{DReYW@bsL3xxD1>%Gh$3Yn1=EX!L1v4LL~V5TBh432^Um@e7qVqGx= zJ5eA!Cgp-Y=?so!ff>Q1m1o>;>exeFjE8!DPeljaGmFj=MR3_LOG4Bom%2sfQI zsm7u9jlrX}lI%Q!HyyrY3|zn?*VXC%`V5xCe%KL1~EzpiSaH zW8>F*z146bjHwY4rKIXrnXh4zhTv?c8RpNnOc%AFTxoP@mT+y5l{eKhbO z@N$Mbs}0)O@iDUb!CaEZWqVb1ROA&GC#{IF1c#?`{*tB3Az;0*QHS1oDqr&$ z++_H{?J!$-es8$S1O*ierDl_`k|fDa8@!g)t0q{a>>a3V@JB+1QCV;GW21C4 zOPi}6Sj~fIijk`Et2GRMFq%5)^^%?CYV_e$l>!P5P5|0UZ9_BW@PPV4rh3@dRRJJe z;A1{%)`WUU(Q3__l0{&oJTq%PUS{voIF}IBty8c>c~ZPk9~72Q zK!ZCAHd9Rk%W$U5)FtB!HF~R{B=BK+>Z&59>L4KB1mchuG+aee<(E)mIX9*&hhZu~ z32D~!LBm)wN1(FHs*gft&DJHI}FO-oU~n^HdjYP^aap zVPUA)k6Gk~q=1sXJ1iCWpzd4aH*ySKq`D3EPRUM?5wN470yTg-!X6N{_KDexv`#fi zhFxOII3>o3_Xyw$yc8b$hJxZ_n8IrW{9tn!tiG}#9B!!dc&nkPFskYlDIG?u)~;3y zRb?7mu4{mj+fZAfX{J6N3|%BmG9S}mYdA!0a>KlaO5F>TP{nwIeBe5OBxH2)&WOX4 zuvp>)F_dfImc?OkcBayVtqojcVVi`Eg^SlM^Q_5Rztodgvc$70Z_OH$3QJFmzBhJl z;TZ4$K{4x#G&aIZ$bx!J=`!tEU_@ANi?=EQ*R5R>KdeP9#+*?NGf9L6*#tEpSI2_AHu!uHaGNbj-R<*k%_0nXio^S)(?} zn6OvH4KwWu@CU$1U9CE?1^^wOG{+Q+EV(5<*eq?2$&|xu&>UGz2XbHeP}+(-OO`_Q zQo+c=g$*-}$?6?+yUN4BkSa$FPo$F?J5@EcQKNic1d>!cnJs`WpRa+pNgPy_49TjJ zPaFgqY1AO3ZC9E_2BOf6C<7Kr|3tycyyeiGyDSiMf;ySn!!Vdix25XvCMm}4;? zTMT>i^??m5P^n6t0?y$`6ZQ*{1_I=>HR%JJ0{o5T7$3Ln&kp0J29BI)%ax@Sm54@N zRA$6((@M{hl43U5fR1dFz<0l9ZKnE|uRa#2kK5J99qQvw^|26-C94Zeg{zh>_pHoY zU9@yHO7d2%;=XHO3a|7Ou3Db80QxO#z-oB&<%b#{n14lMBTt0JS^ATE@pqn*pFAf& zc~Xpnze~$jX=Pb>g7a}#JhX4>w9B|Z3VD%uWUG^Eqy@QAQKeRBd&yGkLk&LtL&&s+ zy%3nLv_QJn)r#t-Aj+2H<>N0L9$MiRZBz3Z7gz_?VF}r-5fz`3+=;$X^_#X$ZI`?n zY?c>|2SXN*Md~9Pk0mR3>q}Ow<-d2WHH{4~PZU8#j)CZmgbApLH&G+KFxo=2mJ*s8 z`?14>{y*fcD@Se->R;p#>04i3}T$0 z$(3=SUL8vI#6G0PjUs8S!#%J0P2~1DIKkVvXugYGvxw8mmKRM}Qzca#9D>{dYSo#c z^9Nxe${83ahD92{qK|m-+^P}6tJZmry7?_ew#7;xn-vvJJfdtY*HEF_QgZLy2EQ}G zkPDfb1Hq~Qd+h+8*1AeoNLAhifV}6hxu@#Lm$643N``%?omD2st~6h;iY-gl%Dq0& zFN`}3zy`Gmy1ShD9za+*Ptuv(&bhG_yaM5oJ?S#7fl?GDQ^bqH~4Q%8eSQSSYxQukV+~Sno3s{ zgyUZBM-|9R60ricR5x8zx4T*f$b=%WGGrYz{OXvbkFu6JCA*ayg zvtj*cp9!YOjvx3517i`gVzKb`s?ZDv3ODt4N8jx&;*O(wuPO&h|kI|&FNEOs_jVJU#}u3e}cXXQKIVTwd@QrvO~-U{|6R;%qK+~FM-uL^%*iDOuk^gx-e*Ky6Md-oQfTsmZTpr zXWD2}s_{QH&cwOJod4Ch(~F5s8ZA2m?H-Z1J0FWP7IL5R4#RE^1V^!4xX}^rjks zw7wb{U@8kxgRM-%I0226)rOKs!ifM1z=Vn;J}ztbnyX zlI*1au9n8KWEraS4kay2+68%hxy(o*W!qfzOBx22KKm|a17(1_C* z5WRsyqZ*lsPzijLO=|iUk}X0!r0Ot0F@G^6D5*(9%=R?C%bNmbL0w?jaBvVH#rVwh zWQj~-llg>fL3?Cg0Q!6DqnI9GP)B4!QaL+Mh**jWN}X$SAdKS#p|LIS;Bqg)YHc9- zjf*ja^v7cwiGrR$HJml5V2YF<)Ny126l1;&Y9`ig98LpN^1gKFNtZxH6n-|AwI=?l zAocgbKor3`oR+HNgJ*%vWzv|$0$?;EpzNhllVm(WnQh0b)`IYAY*$)2u>Gqq0;`N- zH9+B2g^oNOZ6vuP7EcYnhRPa_X9MM%uxEMbweU`YBs~%bRi!s+V-juT=<=wf6a}^e ze|Ud512rZd(!t3?Fab#oj&mOQ?655@FB996>bi`h00^q%iGA8|de!QKFdtVVoqWLh z(W%rWH;Bv%Usxp{4IfqTupmo}s`16KeX4CZolC}X)KoiDRW19alQ*p{K*bMam9}a_ zfqoHM=N<7jRWplmh(ohlOjga9P#38MyeeuLpIX(FNO^XW9m%vZiF7KHma=9ns|Wyq zgonGF2TvML_U3Aii>Q6&SZaJeQ7e&9u2B~8@LCJ>)qe9z)-Y4Jc>h4pq&cN2o{&rI zCxA)F-T^f?N3}*^L(8vVr2Yz-m;~|-Bcm`_g|sP{koYG38|nw$gn<#YBp=iO1sw@K z96gkNSWWC3CqS4p5j64Sj;XescFS=C{i+1G%`$3Dk@792TUs*N;C6|X%1*3{S03rSqwB;Gz51 z4*PV+{Uq)d?XI0E^8|;j zaXy!h)iK*d;k4iHA&`oHOT(Qx^xD1U&SiLT(CJP1>XwrRmPeHK+?}o{bXe1rJ5l>e zY<;qi;`lRkBMsv ze$uL)@C<#q%K_Tg6c_9C+3Ls*qhzfsgmE#`MJ3lfs&V2{tU7vZg{PJBE0BCePHf|v zW_Nwm2kSuJ1Nl7*KfJ#7RJeTjQNl^Z8=1*2f8^2<^mR70p%(2pS*ucYYa#Yo zyy^q$elsb*4!1Siub7yrb``}w?G*^$BH67r^*20?Zw0Yal%g*>X&P^16jIf6x5=ty z()M1RE1asMw+fiwl;m7pcV$jFtK+~^#vgk8{&e4OzS`MLp9Lu&A)CFXafyETbLvD^ z%#LI1ERZG-5hrBe;iZ^7^Kg$GKDK4-NMo8>-Tzn!qG3yORBHk(MFEv+*a*o$1z$M zC)%MVuf86_;B}GVbX@(jOA5Z@^h*jYh91Z6Ifednw<$N(LaJ*8e<)Bpul5M#z(>F4 z>v&hkloH6#{l(kQ{yX$Dw|8~)BJz*62bfH@!hz0b;3tglYrBbL13D`E1hv>aP(`Au zc}yvRb>}m1AH94eZ57+`BDn)WeRvw`2vgU9rhd9Nprd(&V2QK$3UHD%^*P0Ssz3-i zHdX&x@^^K#I>4ul@6ABBC$0xA8wH<1f6MY zgB0&}miYWIdq78n1TPkey+g3Gwc7Z!pylinf*^j*20&IbQ(viiBwQLJw8QIYBa zgs|Oh+$Q4|^po4@E$si+e}sB^fQa1-JXkcKqY4}n#Nel#&%m|x>sw{6Wc@>k(@j6g z5dFZ8-o>Z2F(_de4DN^q|9+2#T<^`0*V5Bwiuq~2@uHYuzBHPDNN=`t8=HqS(w~t8d#{?%jo9B6qjK-T`<#<6;&Bzcq!r01Z1dyaeA%s|>EO2&_ z0Fsn0Kw|T(#O6(b>8hsRpECp*$jf5W`eLhhnn>0%WRcQZ0n|*~n}M@j3|t$;AkmVQ zMUp&NiJ+erDK8)dD}!HiF%W{4!IdrsLY5j%|FAvCGM`cc2RomE&lq3K7;JYiS~vTGFE=Sc#zXO%HAE;8=}Tr>2SS80xWL6gh!Cs(SLJZ2sT)|{ z=4?JDi?w-|h~9upoX^0O#usCP?ZYCiL%iYJA5zg)}z$uyYg%3NceF{;PFrk%LjfW)L+Je*x{V`{Y(6KkXLUode)WI{H z&%kjy0Hvv8JJ@6`!%qf1=(fdq2)5T+tX2sOvEod=NwS8H>N*B2J9fGl3~VFs;XGN? z?6_Y?{|9HE7d&aF0I>@g5=yD|7sqJGX<8oJpUYCa}dSLta) zfc1>6QHhORx|4wXlOgNT<|L8TRd|N;8F;6TrG4ru+0~|RmB65nwVEN>qo8@iRbNUMcOp)_d>}jxpDhg~p>^;E=QEI(C#ADwwq)y=tW^Tnb$uCh+hVk^T_n4+#&S#0{GIVF z!?pE-V&ve##$@C0L~|24_*LUuhA(X7a&V01Byqrr zo4Fjk)%ccSyZ$|D{cn}P-MoKgF!ZkkhW?e4{*~xw=wCVMUx|K({*}S2tgo#S_^S7> z42J%dlKz#G{*~xw=wCVMUn%KdIq6@Ceun<3CI3t>#xG+W!}xWA=dES+%D}^X{5rui zef%;o^t%%bX9gMg2h9+TM<>{;Lnvz-_@nh)4*uTwRtD~DHR$aG&+_rkz#n-%I>E_W z*oXs8-N563w;A8cz%UOw!Rb1fU=MEM^Pm$v)c95ghWd4ay?W!T9l6v|}vSc)%ss zeJyx1AH(E=C+W$Gv%fD-b|EFbVwF54eC6zy3yW8x#qL_-MvHW4X0`jCvm>?GeL^H@ zm*8b*^PH1*UreLE7^5Z@&!ra6wX;}$_OnH1%cBM9%(iqYx2pa7Er+=KBrQCZw(wN+ z|CM}0AM(Trxza+`hANz2N7cR~mK(#GSGi#l{fRXC6ES*XF>C6EVZBnBXH9JrWA@bd z6&ADGSmjBZOSn{ZD{%`4XKLnoSl^8opwckJGFQ_TKrhqJ>nT& zsdTOuDZ^g~-sQjioZMTDx@ic3?NftYrPm?Sl?Y6)? zW2-9#kfgx17PLw|Uvaig)mElGUKx9w509!g@0{~D^P`w;w23kQoJ$Ie`RBB;m~+lg z3yV4JEM}(`v)ftBN-bu!vzVD$%xq_IWomKdDi#_(^8CF>>|WtqB^gx85>`$Oe`SWv zAv(c1U8K6-Bsl2<#-1WLOd;AVt=dy?f56;pxbI=^HQeVp%URPhXLnVkQ5Ljzw}A5| zMHnAWpOW1U!x3g!xmU2l**4=bBdx=XbJ|#3mRela&f?SB)zzJ3!dEM6E+F~jCk!Ct!l(lT|VV2-nY5PW)&NyiC( zYmu6x2kW^4k!&v)TgV zyPd_X)M8dUiE$OCwP%nYk}7cjil4Jnb=r3zeTJ`KRxI&hUsDG{W78ras@2C$E@F@AFX z&hQ;?!`ECa_@K4gN^&xAjNw2PTmYbmLM{N#_ z8i9w>`aTrvJ6osq*NN;~G~o@-XW)CbMqYdyg6(^T*vnIg42Gy$>BDDO%%F0;_|R($8+uwvdRNKaI)a~WyWw`bNbH@0 z&#HD}$%_DDJMxdTJBl>4_+Q8A`c6^MiqcM^{Y|Rr%f&S+DN5yfJlv11V=balK*sen%cd{QvjT;0bh3M z_XR(5mRv5fR%@3Et}?a)T{6rGp6w$z+HU*xK^}d{)&-I84y-tLB!DeK&dffLn86WV`dG)x=h6>4Vl< z1#q?we8i>43XT^kweEb_;2Az2topyiW;zb20sy%wa++G$|9VbQMb7g+_mD(b1AFNI z!HS~5J>X|W+^84$AT(x){gzAfz%2C)g4$w5pYALR(G$+HjvZ}dP+y`3D0Y%pr_vlG z;;04=c0L1l+`)2*>pZsmn7(D$PCwlBC2+fKEPr4}k-Aj|pWW8P!1E%+;PUNF3_L4B z4AO{-&=EdcZ>Q-kqDGray}6tAd_?&1z<*A7Y~U{y&ItS+!Vo&1onE9^UlwW9UK9Mo z*}S!XE8R{@w}#`JBCVOM(A=<2)sB*aA zL}&BR)3te?$eyhbp6`4HF5S__BTH?Un7-8k)}+^z0}czOV8g}0XMz|cS~5XtI0P#h zn!5Tf!6qW63Ame!fqjA)q#d0d0HKXCILXDpS49K?zw2V)XF&{lMzK(IbAX6afCHVk zN6jY~UyPSF^QXfN(WhrCh1#CUJKofFAVeyQwU2HR^3S5=UC})2_^`A3Yo8JNdw@vV z!vx+;oMFs>Ng^@^Cp({k{;*e(F}9bOzGc`>f0ye^;48-WmcjhNF|qa`);%H~HURGv zX=s7xOx)WEzG!?aOG0E4*(XV-Oj?A|asY&uhvaU_DsiXOe=^IsZ**#?28nE;6ApIX z9;csdd{F~zcQaYbaH4qS4XnYmgv)Ve+601WS$WteiJD=0w3#-5VA`3RPM7RFk?n25 z^PSJY%Z)FRovrQbTweljaNhonT>t06u$^!Emf@S?)iI#IsoGxc!(Z>yl-E8J2MOCv zMH*+rzv0_a2iQBzREV3zc_+t7{cE#~tNSonY+)W#O5kwkGjMz3i$-_R_O7lkfxA1O zf%_O=*pATlNY|IZQO;-J#8ThRVEZ}Kw+v5|Ugu)K8ca*LoF&rn0SKmX@RO(+rnAko z4g}LU_{$_)#~Q5wJ2;zH4UfONb1s^z&DTv73yDgDs?x8zMt#iWMRBmz-Fn$qfMLeg zw-kKTS^bTl?ZhRQ74*+Vad{je(MSpzU_@e0%+Ww44O#{jDhoz+YYo8JN zOXt)yaICQnzzySpnDt_HOWpO-rPCJMuZq+TaJ8`w0L!Fx4EYXBtpgVu8|U$SZ7vYe zVeoe6Gw>A+LfRy@EKUjz@QkYVh~WaB

G6ZHc9Z9%<5+U-F1CZ>KgW&Zq?{OI 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�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