/* * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab * Copyright (C) 2006-2008 - INRIA - Bruno JOFRET * * This file must be used under the terms of the CeCILL. * This source file is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt * */ #include "testAcos.h" #include #include #include void sacossTest(void) { int i=0; float Test1[100] = {0.3616361f,0.2922267f,0.5664249f,0.4826472f,0.3321719f,0.5935095f,0.5015342f,0.4368588f, 0.2693125f,0.6325745f,0.4051954f,0.9184708f,0.0437334f,0.4818509f,0.2639556f,0.4148104f, 0.2806498f,0.1280058f,0.7783129f,0.2119030f,0.1121355f,0.6856896f,0.1531217f,0.6970851f, 0.8415518f,0.4062025f,0.4094825f,0.8784126f,0.1138360f,0.1998338f,0.5618661f,0.5896177f, 0.6853980f,0.8906225f,0.5042213f,0.3493615f,0.3873779f,0.9222899f,0.9488184f,0.3435337f, 0.3760119f,0.7340941f,0.2615761f,0.4993494f,0.2638578f,0.5253563f,0.5376230f,0.1199926f, 0.2256303f,0.6274093f,0.7608433f,0.0485566f,0.6723950f,0.2017173f,0.3911574f,0.8300317f, 0.5878720f,0.4829179f,0.2232865f,0.8400886f,0.1205996f,0.2855364f,0.8607515f,0.8494102f, 0.5257061f,0.9931210f,0.6488563f,0.9923191f,0.0500420f,0.7485507f,0.4104059f,0.6084526f, 0.8544211f,0.0642647f,0.8279083f,0.9262344f,0.5667211f,0.5711639f,0.8160110f,0.0568928f, 0.5595937f,0.1249340f,0.7279222f,0.2677766f,0.5465335f,0.9885408f,0.7395657f,0.0037173f, 0.5900573f,0.3096467f,0.2552206f,0.6251879f,0.1157417f,0.6117004f,0.6783956f,0.3320095f, 0.0258710f,0.5174468f,0.3916873f,0.2413538f}; float Result1[100] = {1.2007742f,1.274242f,0.9686351f,1.0671216f,1.232191f,0.9353839f,1.0454251f,1.1186927f,1.2981173f, 0.8859235f,1.1536038f,0.4066000f,1.5270489f,1.0680306f,1.3036754f,1.1430619f,1.2863253f, 1.4424383f,0.6788221f,1.3572745f,1.4584245f,0.8152457f,1.4170699f,0.7994724f,0.5706467f, 1.1525019f,1.1489095f,0.4982660f,1.4567131f,1.3696081f,0.9741564f,0.9402109f,0.8156462f, 0.4720841f,1.0423163f,1.2139067f,1.1730106f,0.3968325f,0.3213230f,1.2201193f,1.1853078f, 0.7464647f,1.3061415f,1.0479487f,1.3037767f,1.0176625f,1.0031809f,1.4505139f,1.3432063f, 0.8925746f,0.7061847f,1.5222206f,0.8333567f,1.3676854f,1.1689075f,0.5916319f,0.9423705f, 1.0668124f,1.3456115f,0.5733499f,1.4499025f,1.2812302f,0.5340522f,0.5559297f,1.0172514f, 0.1173619f,0.8647159f,0.1240222f,1.5207334f,0.7249227f,1.1478972f,0.9166870f,0.5463607f, 1.5064873f,0.5954284f,0.3864991f,0.9682756f,0.9628732f,0.6163202f,1.5138728f,0.9769009f,1.445535f, 0.7555096f,1.2997117f,0.9925771f,0.1515334f,0.7383715f,1.567079f,0.9396665f,1.2559748f,1.3127205f, 0.8954240f,1.4547946f,0.9125881f,0.8252196f,1.2323632f,1.5449224f,1.0269318f,1.1683316f,1.3270356f}; float Test2[100]={0.9321636f,0.1232699f,0.2865552f,0.0124800f,0.5769405f,0.3938696f,0.6888584f,0.9702322f, 0.8515764f,0.3393304f,0.8772532f,0.1131402f,0.5264128f,0.5297394f,0.9291756f,0.9765430f, 0.6225464f,0.9822583f,0.7542989f,0.5454788f,0.7286016f,0.0252597f,0.4025168f,0.0983132f, 0.2608625f,0.3636342f,0.1746618f,0.9234139f,0.7605141f,0.5640204f,0.3797065f,0.8776226f, 0.8217426f,0.6787058f,0.0822010f,0.2552731f,0.7444457f,0.2269504f,0.6836931f,0.9365073f, 0.5053017f,0.2524815f,0.6818840f,0.2836368f,0.1409486f,0.6759110f,0.4512678f,0.7543029f, 0.1370214f,0.6608241f,0.3890054f,0.7001821f,0.9168006f,0.21229f,0.2697833f,0.3199889f,0.0232180f, 0.7265447f,0.1534059f,0.2355264f,0.0879738f,0.7105954f,0.6888728f,0.6595319f,0.1815116f, 0.3904966f,0.1586905f,0.6240715f,0.6376036f,0.4270489f,0.1071682f,0.2382297f,0.9462947f, 0.4576685f,0.8964479f,0.4438471f,0.8089568f,0.6831799f,0.0340193f,0.2380546f,0.9492012f, 0.2182789f,0.6154688f,0.8313543f,0.7734013f,0.4244191f,0.7262126f,0.7099977f,0.4745746f, 0.9438692f,0.1459649f,0.0714101f,0.6733739f,0.6536925f,0.1996896f,0.6014125f,0.1899375f, 0.2583981f,0.0987874f,0.0619903f}; float Result2[100]={0.3704526f,1.4472121f,1.280167f,1.558316f,0.9558184f,1.1659586f,0.8108833f,0.2446086f,0.5518112f, 1.2245913f,0.5006866f,1.4574133f,1.0164204f,1.012503f,0.3786200f,0.2170219f,0.8988040f,0.1886498f, 0.7162108f,0.9938360f,0.7545182f,1.5455339f,1.1565317f,1.4723241f,1.3068808f,1.1986301f, 1.3952341f,0.3939139f,0.7066918f,0.9715498f,1.1813173f,0.4999164f,0.6063341f,0.8247973f, 1.4885025f,1.3126661f,0.7310921f,1.3418511f,0.817985f,0.3582631f,1.0410647f,1.3155524f,0.8204611f, 1.2832118f,1.4293768f,0.8285963f,1.1026109f,0.7162046f,1.4333425f,0.8488801f,1.1712446f, 0.7951439f,0.4108027f,1.3568786f,1.2976283f,1.2450785f,1.5475762f,0.7575165f,1.4167823f, 1.3330362f,1.4827086f,0.7804523f,0.8108635f,0.8506004f,1.3882729f,1.1696254f,1.4114321f, 0.8968537f,0.8794129f,1.1295698f,1.463422f,1.3302537f,0.3292202f,1.0954251f,0.4591086f,1.1109091f, 0.6284209f,0.8186880f,1.5367704f,1.330434f,0.3201089f,1.3507459f,0.9078157f,0.5892561f,0.6866071f, 1.1324761f,0.7579997f,0.7813013f,1.0763156f,0.3366420f,1.4243081f,1.4993254f,0.8320334f, 0.8583428f,1.3697552f,0.9255284f,1.3796979f,1.3094327f,1.4718476f,1.5087663f}; for(i=0;i<100;i++){ assert ( ( fabs(sacoss(Test1[i]) - Result1[i]) / fabs(sacoss(Test1[i])) ) < 1e-5); assert ( ( fabs(sacoss(Test2[i]) - Result2[i]) / fabs(sacoss(Test2[i])) ) < 1e-6); } } void dacossTest(void) { int i=0; double Test1[100] = {0.3616361 ,0.2922267 ,0.5664249 ,0.4826472 ,0.3321719 ,0.5935095 ,0.5015342 ,0.4368588 , 0.2693125 ,0.6325745 ,0.4051954 ,0.9184708 ,0.0437334 ,0.4818509 ,0.2639556 ,0.4148104 , 0.2806498 ,0.1280058 ,0.7783129 ,0.2119030 ,0.1121355 ,0.6856896 ,0.1531217 ,0.6970851 , 0.8415518 ,0.4062025 ,0.4094825 ,0.8784126 ,0.1138360 ,0.1998338 ,0.5618661 ,0.5896177 , 0.6853980 ,0.8906225 ,0.5042213 ,0.3493615 ,0.3873779 ,0.9222899 ,0.9488184 ,0.3435337 , 0.3760119 ,0.7340941 ,0.2615761 ,0.4993494 ,0.2638578 ,0.5253563 ,0.5376230 ,0.1199926 , 0.2256303 ,0.6274093 ,0.7608433 ,0.0485566 ,0.6723950 ,0.2017173 ,0.3911574 ,0.8300317 , 0.5878720 ,0.4829179 ,0.2232865 ,0.8400886 ,0.1205996 ,0.2855364 ,0.8607515 ,0.8494102 , 0.5257061 ,0.9931210 ,0.6488563 ,0.9923191 ,0.0500420 ,0.7485507 ,0.4104059 ,0.6084526 , 0.8544211 ,0.0642647 ,0.8279083 ,0.9262344 ,0.5667211 ,0.5711639 ,0.8160110 ,0.0568928 , 0.5595937 ,0.1249340 ,0.7279222 ,0.2677766 ,0.5465335 ,0.9885408 ,0.7395657 ,0.0037173 , 0.5900573 ,0.3096467 ,0.2552206 ,0.6251879 ,0.1157417 ,0.6117004 ,0.6783956 ,0.3320095 , 0.0258710 ,0.5174468 ,0.3916873 ,0.2413538 }; double Result1[100] = {1.2007742 ,1.274242 ,0.9686351 ,1.0671216 ,1.232191 ,0.9353839 ,1.0454251 ,1.1186927 ,1.2981173 , 0.8859235 ,1.1536038 ,0.4066000 ,1.5270489 ,1.0680306 ,1.3036754 ,1.1430619 ,1.2863253 , 1.4424383 ,0.6788221 ,1.3572745 ,1.4584245 ,0.8152457 ,1.4170699 ,0.7994724 ,0.5706467 , 1.1525019 ,1.1489095 ,0.4982660 ,1.4567131 ,1.3696081 ,0.9741564 ,0.9402109 ,0.8156462 , 0.4720841 ,1.0423163 ,1.2139067 ,1.1730106 ,0.3968325 ,0.3213230 ,1.2201193 ,1.1853078 , 0.7464647 ,1.3061415 ,1.0479487 ,1.3037767 ,1.0176625 ,1.0031809 ,1.4505139 ,1.3432063 , 0.8925746 ,0.7061847 ,1.5222206 ,0.8333567 ,1.3676854 ,1.1689075 ,0.5916319 ,0.9423705 , 1.0668124 ,1.3456115 ,0.5733499 ,1.4499025 ,1.2812302 ,0.5340522 ,0.5559297 ,1.0172514 , 0.1173619 ,0.8647159 ,0.1240222 ,1.5207334 ,0.7249227 ,1.1478972 ,0.9166870 ,0.5463607 , 1.5064873 ,0.5954284 ,0.3864991 ,0.9682756 ,0.9628732 ,0.6163202 ,1.5138728 ,0.9769009 ,1.445535 , 0.7555096 ,1.2997117 ,0.9925771 ,0.1515334 ,0.7383715 ,1.567079 ,0.9396665 ,1.2559748 ,1.3127205 , 0.8954240 ,1.4547946 ,0.9125881 ,0.8252196 ,1.2323632 ,1.5449224 ,1.0269318 ,1.1683316 ,1.3270356 }; double Test2[100]={0.9321636 ,0.1232699 ,0.2865552 ,0.0124800 ,0.5769405 ,0.3938696 ,0.6888584 ,0.9702322 , 0.8515764 ,0.3393304 ,0.8772532 ,0.1131402 ,0.5264128 ,0.5297394 ,0.9291756 ,0.9765430 , 0.6225464 ,0.9822583 ,0.7542989 ,0.5454788 ,0.7286016 ,0.0252597 ,0.4025168 ,0.0983132 , 0.2608625 ,0.3636342 ,0.1746618 ,0.9234139 ,0.7605141 ,0.5640204 ,0.3797065 ,0.8776226 , 0.8217426 ,0.6787058 ,0.0822010 ,0.2552731 ,0.7444457 ,0.2269504 ,0.6836931 ,0.9365073 , 0.5053017 ,0.2524815 ,0.6818840 ,0.2836368 ,0.1409486 ,0.6759110 ,0.4512678 ,0.7543029 , 0.1370214 ,0.6608241 ,0.3890054 ,0.7001821 ,0.9168006 ,0.21229 ,0.2697833 ,0.3199889 ,0.0232180 , 0.7265447 ,0.1534059 ,0.2355264 ,0.0879738 ,0.7105954 ,0.6888728 ,0.6595319 ,0.1815116 , 0.3904966 ,0.1586905 ,0.6240715 ,0.6376036 ,0.4270489 ,0.1071682 ,0.2382297 ,0.9462947 , 0.4576685 ,0.8964479 ,0.4438471 ,0.8089568 ,0.6831799 ,0.0340193 ,0.2380546 ,0.9492012 , 0.2182789 ,0.6154688 ,0.8313543 ,0.7734013 ,0.4244191 ,0.7262126 ,0.7099977 ,0.4745746 , 0.9438692 ,0.1459649 ,0.0714101 ,0.6733739 ,0.6536925 ,0.1996896 ,0.6014125 ,0.1899375 , 0.2583981 ,0.0987874 ,0.0619903 }; double Result2[100]={0.3704526 ,1.4472121 ,1.280167 ,1.558316 ,0.9558184 ,1.1659586 ,0.8108833 ,0.2446086 ,0.5518112 , 1.2245913 ,0.5006866 ,1.4574133 ,1.0164204 ,1.012503 ,0.3786200 ,0.2170219 ,0.8988040 ,0.1886498 , 0.7162108 ,0.9938360 ,0.7545182 ,1.5455339 ,1.1565317 ,1.4723241 ,1.3068808 ,1.1986301 , 1.3952341 ,0.3939139 ,0.7066918 ,0.9715498 ,1.1813173 ,0.4999164 ,0.6063341 ,0.8247973 , 1.4885025 ,1.3126661 ,0.7310921 ,1.3418511 ,0.817985 ,0.3582631 ,1.0410647 ,1.3155524 ,0.8204611 , 1.2832118 ,1.4293768 ,0.8285963 ,1.1026109 ,0.7162046 ,1.4333425 ,0.8488801 ,1.1712446 , 0.7951439 ,0.4108027 ,1.3568786 ,1.2976283 ,1.2450785 ,1.5475762 ,0.7575165 ,1.4167823 , 1.3330362 ,1.4827086 ,0.7804523 ,0.8108635 ,0.8506004 ,1.3882729 ,1.1696254 ,1.4114321 , 0.8968537 ,0.8794129 ,1.1295698 ,1.463422 ,1.3302537 ,0.3292202 ,1.0954251 ,0.4591086 ,1.1109091 , 0.6284209 ,0.8186880 ,1.5367704 ,1.330434 ,0.3201089 ,1.3507459 ,0.9078157 ,0.5892561 ,0.6866071 , 1.1324761 ,0.7579997 ,0.7813013 ,1.0763156 ,0.3366420 ,1.4243081 ,1.4993254 ,0.8320334 , 0.8583428 ,1.3697552 ,0.9255284 ,1.3796979 ,1.3094327 ,1.4718476 ,1.5087663 }; for(i=0;i<100;i++){ assert ( ( fabs(dacoss(Test1[i]) - Result1[i]) / fabs(dacoss(Test1[i])) ) < 1e-5); assert ( ( fabs(dacoss(Test2[i]) - Result2[i]) / fabs(dacoss(Test2[i])) ) < 1e-5); } } int testAcos(void) { printf("\n>>>> Float ArcCosine Tests\n"); sacossTest(); dacossTest(); return 0; } int main(void) { assert(testAcos() == 0); return 0; }