diff options
76 files changed, 983 insertions, 95 deletions
diff --git a/demos/Abhinav_Demos/Column.sci b/demos/Abhinav_Demos/Column.sci new file mode 100644 index 0000000..b9dc55b --- /dev/null +++ b/demos/Abhinav_Demos/Column.sci @@ -0,0 +1,26 @@ +// Test file for "Column" function for the data types double, float, double complex, string , uint16. +// All the below statements are added to initialize variables in different data types +//The function written doesn't work for string or character scalar as of now. + + +function Column() + a=[1,2,3,4; 5,6,7,8; 98,162,6587,0] + disp( iscolumn(a)) + disp('') + b= float(a) + disp(iscolumn(b)) + c= [1,2,34,5] + d= uint16(c) + disp(iscolumn(d)) + disp('') + f= [1;2;3;4] + disp(iscolumn(f)) + disp('') + u= uint16(c) + disp(iscolumn(u)) + disp('') + g= [%i] + disp(iscolumn(g)) + disp('') + +endfunction diff --git a/demos/Abhinav_Demos/Row.sci b/demos/Abhinav_Demos/Row.sci new file mode 100644 index 0000000..264b174 --- /dev/null +++ b/demos/Abhinav_Demos/Row.sci @@ -0,0 +1,25 @@ +// Test file for "Column" function for the data types double, float, double complex, string , uint16. +// All the below statements are added to initialize variables in different data types +//The function written doesn't work for string or character scalar as of now. + + +function Row() + a=[1,2,3,4; 5,6,7,8; 98,162,6587,0] + disp( isrow(a)) + disp('') + b= float(a) + disp(isrow(b)) + c= [1,2,34,5] + d= uint16(c) + disp(isrow(d)) + disp('') + f= [1;2;3;4] + disp(isrow(f)) + disp('') + u= uint16(c) + disp(isrow(u)) + disp('') + g= [%i*1; 7] + disp(isrow(g)) + disp('') +endfunction diff --git a/demos/Abhinav_Demos/deviation.sci b/demos/Abhinav_Demos/deviation.sci new file mode 100644 index 0000000..99eb5b1 --- /dev/null +++ b/demos/Abhinav_Demos/deviation.sci @@ -0,0 +1,41 @@ +function deviation() + +a=[ 211.128 2912 4.12 123 ; 53211 12.312 21 0] +disp('Double') + +disp(mad(a, 'r')) +disp('') + +disp(mad(a, 'c')) +disp('') + +disp(mad(a)) +disp('') + +disp('Float') + +b= float(a) +disp(mad(b, 'r')) +disp('') + +disp(mad(b, 'c')) +disp('') + +disp(mad(b)) +disp('') + + +disp('DoubleComplex') + +c= [%i*971+ 231, 87+%i*16, 2400+%i*1721; 981,0, %i*1213] +disp(mad(c, 'r')) +disp('') + +disp(mad(c, 'c')) +disp('') + +disp(mad(c)) +disp('') + +endfunction + diff --git a/demos/Abhinav_Demos/is_matrix.sci b/demos/Abhinav_Demos/is_matrix.sci new file mode 100644 index 0000000..540189e --- /dev/null +++ b/demos/Abhinav_Demos/is_matrix.sci @@ -0,0 +1,41 @@ + +// Test file for "ismatrix" function for the data types double, float, double complex, uint16, string + +function is_matrix() + disp('Double') + a= [1 ,25, 52] + disp(ismatrix(a)) + disp('') + b=1.2131 + disp(ismatrix(b)) + disp('') + + disp('Float') + c=float(a) + disp(ismatrix(c)) + disp('') + d=float(b) + disp(ismatrix(d)) + disp('') + + disp('String') + e= ['af' 'as' '12'; '121' 'king' 'queen' ] + disp(ismatrix(e)) + disp('') + f='Light' + disp(ismatrix(f)) + disp('') + + disp('doubleComplex') + g=[%i*2; %i*91+100] + disp(ismatrix(g)) + disp('') + h= %i*98.12 + 121 + disp(ismatrix(h)) + disp('') + + disp('Uint16') + i= [12, 231 ,213, 123] + disp(ismatrix(i)) + disp('') +endfunction diff --git a/demos/Abhinav_Demos/matrixreshape.sci b/demos/Abhinav_Demos/matrixreshape.sci new file mode 100644 index 0000000..38fa0a5 --- /dev/null +++ b/demos/Abhinav_Demos/matrixreshape.sci @@ -0,0 +1,18 @@ + +// Test file for "matrix" function for the data types double, float, double complex, uint16 + +function matrixreshape() + a=[1,2,3,4;5,6,7,8;8,9,1,2] + b=float(a) + c= uint16(b) + d=[%i*2,3,4,5;%i+34,45,32,23; 1,%i*54,8690,1] + +double1= matrix(a,4,3) +float1= matrix (b,4,3) +uint161= matrix(c,4,3) +complex1= matrix(d,4,3) +disp( double1) +disp( float1) +disp( uint161) +disp( complex1) +endfunction diff --git a/demos/Abhinav_Demos/med.sci b/demos/Abhinav_Demos/med.sci new file mode 100644 index 0000000..821ca1f --- /dev/null +++ b/demos/Abhinav_Demos/med.sci @@ -0,0 +1,66 @@ +function med() + +a=float([12,287,312,52; 4,5,456,512; 12, 4, 6,213]) + + +disp('Float') + + +disp(median(a, 'r')) +disp('') + +disp(median(a, 'c')) +disp('') + +disp(median(a)) +disp('') + + +b=[12,287,312,52; 4,5,456,512; 12, 4, 6,213] + + +disp('Double') + + +disp(median(b, 'r')) +disp('') + +disp(median(b, 'c')) +disp('') + +disp(median(b)) +disp('') + + + +disp('uint16') + + +c=uint16([12,287,312,52; 4,5,456,512; 12, 4, 6,213]) +disp(median(c, 'r')) +disp('') + +disp(median(c, 'c')) +disp('') + +disp(median(c)) +disp('') + + +disp('doubleComplex') + + +d= [%i*21, 65+%i*7, %i*121, 56; %i*6112, 12 ,3, 0] +disp(median(d, 'r')) +disp('') + +disp(median(d, 'c')) +disp('') + +disp(median(d)) +disp('') + + + +endfunction + diff --git a/demos/Abhinav_Demos/modula.sci b/demos/Abhinav_Demos/modula.sci new file mode 100644 index 0000000..8f56e6c --- /dev/null +++ b/demos/Abhinav_Demos/modula.sci @@ -0,0 +1,57 @@ +function modula() + +a=312 +b=18.12 +disp('Double') + +disp(pmodulo(a,b)) + +disp(pmodulo(a,-b)) + +disp(pmodulo(-a,b)) + +disp(pmodulo(-a,-b)) + +k=[12 , -134 , 1213; -12.12, -0.12, 91281] +l=[12, ,1212 ,12; -91288.12, -0.912, -10000] + +disp(pmodulo(k,l)) + +disp('Float') +c= float(312) +d=float(121.212) + +disp(pmodulo(c,d)) + +disp(pmodulo(c,-d)) + +disp(pmodulo(-c,d)) + +disp(pmodulo(-c,-d)) + +e=float([12 , -134 , 1213; -12.12, -0.12, 91281]) +f=float([12, ,1212 ,12; -91288.12, -0.912, -10000]) + +disp( pmodulo(e,f)) + +disp('Uint16') + +g= int16(112) +h= int16(121) + +disp(pmodulo(g,h)) + +disp(pmodulo(g,-h)) + +disp(pmodulo(-g,h)) + +disp(pmodulo(-g,-h)) + +i= int16([12 , -134 , 1213; -12.12, -12.54, 91281]) + +j= int16([12, ,1212 ,12; 1121, -6000, -10000]) +disp( pmodulo(i,j)) + + +endfunction + diff --git a/demos/Abhinav_Demos/nan_max.sci b/demos/Abhinav_Demos/nan_max.sci new file mode 100644 index 0000000..769a92a --- /dev/null +++ b/demos/Abhinav_Demos/nan_max.sci @@ -0,0 +1,33 @@ +function nan_max() + +x=[%nan 0.121 %nan 0.5 0.8; 0.12 %nan 9 12 %nan] + +disp('Double') + +disp(nanmax(x)) +disp('') + +disp(nanmax(x , 'r')) +disp('') + +disp(nanmax(x, 'c')) +disp('') + +y= uint16(x) + +disp('Float') + +disp(nanmax(y)) +disp('') + +disp(nanmax(y , 'r')) +disp('') + +disp(nanmax(y, 'c')) +disp('') + + + + +endfunction + diff --git a/demos/Abhinav_Demos/nonzero.sci b/demos/Abhinav_Demos/nonzero.sci new file mode 100644 index 0000000..14a1416 --- /dev/null +++ b/demos/Abhinav_Demos/nonzero.sci @@ -0,0 +1,15 @@ + +// Test file for "nonzero" function for the data types double, float, double complex, uint16 + +function nonzero() + a=[12,4,4; 12,51,6] // double array + disp(nnz(a)) + b=0 //double scalar + disp(nnz(b)) + f= float(a) //float array + disp(nnz(f)) + z=%i*2+0 // doubleComplex scalar + disp(nnz(z)) + + +endfunction diff --git a/demos/Abhinav_Demos/nthroot1.sci b/demos/Abhinav_Demos/nthroot1.sci new file mode 100644 index 0000000..201338b --- /dev/null +++ b/demos/Abhinav_Demos/nthroot1.sci @@ -0,0 +1,23 @@ +// Test file for "nthroot" function for the data types double, float, double complex. + + +function nthroot1() + b= [1,2,3,4;5,6,7,8] + c=[45,12,4,12; 23,34,5,6] + d= nthroot(b,c) +disp(d) +disp('') +e=34 +f= nthroot(b,e) +disp(f) +disp('') +k=nthroot(3.2123,12) +disp(k) +disp('') + +m= float(b) +l= float(c) +disp(nthroot(m,l)) + + +endfunction diff --git a/demos/Abhinav_Demos/scalar.sci b/demos/Abhinav_Demos/scalar.sci new file mode 100644 index 0000000..6b280ea --- /dev/null +++ b/demos/Abhinav_Demos/scalar.sci @@ -0,0 +1,12 @@ +// Test file for "isscalar" function for the data types double, float, double complex. +function scalar() + a=[1,2,3,4] + disp(isscalar(a)) + b= float(a) + disp(isscalar(b)) + c= %i*2+34 + disp(isscalar(c)) + + + +endfunction diff --git a/demos/Abhinav_Demos/square.sci b/demos/Abhinav_Demos/square.sci new file mode 100644 index 0000000..172f73c --- /dev/null +++ b/demos/Abhinav_Demos/square.sci @@ -0,0 +1,13 @@ +// Test file for "Column" function for the data types double, float, double complex, string. +// All the below statements are added to initialize variables in different data types + + +function square() + a=[1,2,3,4; 5,6,7,8; 98,162,6587,0] + disp(issquare(a)) + disp('') + b= [%i+25, 1, %i*5+12] + disp(issquare(b)) + disp('') + +endfunction diff --git a/demos/Abhinav_Demos/vector.sci b/demos/Abhinav_Demos/vector.sci new file mode 100644 index 0000000..dedd8f1 --- /dev/null +++ b/demos/Abhinav_Demos/vector.sci @@ -0,0 +1,16 @@ +// Test file for "vector" function for the data types double, float, double complex. +function vector() + a=[1,2,3,4] + disp(isvector(a)) + disp('') + b= %i+2 + disp(isvector(b)) + disp('') + c= float([1,3,4;1,2,3]) + disp(isvector(c)) + disp('') + d= [%i*812; %i*12] + disp(isvector(d)) + disp('') + +endfunction diff --git a/demos/Brijesh_Demos/Test_Erfcx.sci b/demos/Brijesh_Demos/Test_Erfcx.sci new file mode 100644 index 0000000..e17ae51 --- /dev/null +++ b/demos/Brijesh_Demos/Test_Erfcx.sci @@ -0,0 +1,10 @@ +function Test_Erfcx + disp('Datatype: Double'); + i1 = [.75 .8 -.32]; + o1 = erfcx(i1); + disp(o1); + disp('Datatype: float'); + i2 = float([1 2 .5; 7 .8 .9]); + o2 = erfc(i2); + disp(o2); +endfunction diff --git a/demos/Brijesh_Demos/Test_Erfinv.sci b/demos/Brijesh_Demos/Test_Erfinv.sci new file mode 100644 index 0000000..99a8683 --- /dev/null +++ b/demos/Brijesh_Demos/Test_Erfinv.sci @@ -0,0 +1,10 @@ +function Test_Erfinv + disp('Datatype: Double'); + i1 = [12 0.6 -2 -0.75]; + o1 = erfinv(i1); + disp(o1); + disp('Datatype: float'); + i2 = float([5 0.35 -1 -.97 -6]); + o2 = erf(i2); + disp(o2); +endfunction diff --git a/demos/RPi/RPi.dem.gateway.sce b/demos/RPi/RPi.dem.gateway.sce index 29d4c71..c125e9c 100644 --- a/demos/RPi/RPi.dem.gateway.sce +++ b/demos/RPi/RPi.dem.gateway.sce @@ -11,6 +11,7 @@ subdemolist = ["Wait and Blink","test_wait_and_blink.dem.sce"; + "LCD","test_lcd.dem.sce" ]; global SCI2CHOME; diff --git a/demos/RPi/test_lcd.dem.sce b/demos/RPi/test_lcd.dem.sce new file mode 100644 index 0000000..2bd1951 --- /dev/null +++ b/demos/RPi/test_lcd.dem.sce @@ -0,0 +1,19 @@ +// Copyright (C) 2017 - IIT Bombay - FOSSEE +// +// 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 +// Author: Jorawar Singh, Sandeep Gupta +// Organization: FOSSEE, IIT Bombay +// Email: toolbox@scilab.in +// + +lines(0); + +global SCI2CHOME + +scilab2c(SCI2CHOME + "/tests/unit_tests/test_RPi/lcd.sci", TMPDIR,SCI2CHOME + "/tests/unit_tests/test_RPi/", "All", "make" ,"RPi", "uno"); + +editor([TMPDIR+"/main.c"]); diff --git a/demos/scilab2c.dem.gateway.sce b/demos/scilab2c.dem.gateway.sce index 7e98787..1e2a6c7 100644 --- a/demos/scilab2c.dem.gateway.sce +++ b/demos/scilab2c.dem.gateway.sce @@ -22,7 +22,7 @@ subdemolist =["Linear Algebra","LinearAlgebra/LinearAlgebra.dem.gateway.sce"; "Symbols", "Symbols.dem.sce"; "Jacobi functions","Jacobi.dem.sce"; "String Functions","string.dem.sce"; - "Ffilt coeff. of FIR low pass filter","ffilt.dem.sce"; - "Design of FIR linear phase filters using freq. samping technique","fsfirlin.dem.sce"; - "Samples of sinc function","filt_sinc.dem.sce";] + "Ffilt coeff. of FIR low pass filter","ffilt.dem.sce"; + "Design of FIR linear phase filters using freq. samping technique","fsfirlin.dem.sce"; + "Samples of sinc function","filt_sinc.dem.sce";] subdemolist(:,2) = demopath + subdemolist(:,2); diff --git a/includes/sci2clib.h b/includes/sci2clib.h index 11c3f23..caad1f1 100644 --- a/includes/sci2clib.h +++ b/includes/sci2clib.h @@ -86,10 +86,19 @@ extern "C" { #include "erf.h" #include "int_erf.h" -/* interfacing erf */ +/* interfacing erfc */ #include "erfc.h" #include "int_erfc.h" +/* interfacing erfcx */ +#include "erfcx.h" +#include "int_erfcx.h" + +/* interfacing erfinv */ +#include "erfinv.h" +#include "int_erfinv.h" + + /* ELEMENTARY FUNCTIONS */ #include "nextpow2.h" diff --git a/jar/scilab_en_US_help.jar b/jar/scilab_en_US_help.jar Binary files differindex 33a02e6..0bffe90 100644 --- a/jar/scilab_en_US_help.jar +++ b/jar/scilab_en_US_help.jar diff --git a/macros/ASTManagement/lib b/macros/ASTManagement/lib Binary files differnew file mode 100644 index 0000000..dee4362 --- /dev/null +++ b/macros/ASTManagement/lib diff --git a/macros/CCodeGeneration/lib b/macros/CCodeGeneration/lib Binary files differnew file mode 100644 index 0000000..3d4fed1 --- /dev/null +++ b/macros/CCodeGeneration/lib diff --git a/macros/ErrorMessages/lib b/macros/ErrorMessages/lib Binary files differnew file mode 100644 index 0000000..ba3b9a5 --- /dev/null +++ b/macros/ErrorMessages/lib diff --git a/macros/FunctionAnnotation/lib b/macros/FunctionAnnotation/lib Binary files differnew file mode 100644 index 0000000..239105c --- /dev/null +++ b/macros/FunctionAnnotation/lib diff --git a/macros/FunctionList/lib b/macros/FunctionList/lib Binary files differnew file mode 100644 index 0000000..1c722dd --- /dev/null +++ b/macros/FunctionList/lib diff --git a/macros/GeneralFunctions/lib b/macros/GeneralFunctions/lib Binary files differnew file mode 100644 index 0000000..7586a91 --- /dev/null +++ b/macros/GeneralFunctions/lib diff --git a/macros/Hardware/AVR/lib b/macros/Hardware/AVR/lib Binary files differnew file mode 100644 index 0000000..ed4c52b --- /dev/null +++ b/macros/Hardware/AVR/lib diff --git a/macros/Hardware/RasberryPi/Digital/lib b/macros/Hardware/RasberryPi/Digital/lib Binary files differnew file mode 100644 index 0000000..ba42ba7 --- /dev/null +++ b/macros/Hardware/RasberryPi/Digital/lib diff --git a/macros/Hardware/RasberryPi/I2C/lib b/macros/Hardware/RasberryPi/I2C/lib Binary files differnew file mode 100644 index 0000000..561476c --- /dev/null +++ b/macros/Hardware/RasberryPi/I2C/lib diff --git a/macros/Hardware/RasberryPi/Interrupt/lib b/macros/Hardware/RasberryPi/Interrupt/lib Binary files differnew file mode 100644 index 0000000..97a61ac --- /dev/null +++ b/macros/Hardware/RasberryPi/Interrupt/lib diff --git a/macros/Hardware/RasberryPi/Misc/lib b/macros/Hardware/RasberryPi/Misc/lib Binary files differnew file mode 100644 index 0000000..c718615 --- /dev/null +++ b/macros/Hardware/RasberryPi/Misc/lib diff --git a/macros/Hardware/RasberryPi/SPI/lib b/macros/Hardware/RasberryPi/SPI/lib Binary files differnew file mode 100644 index 0000000..a16d474 --- /dev/null +++ b/macros/Hardware/RasberryPi/SPI/lib diff --git a/macros/Hardware/RasberryPi/Serial/lib b/macros/Hardware/RasberryPi/Serial/lib Binary files differnew file mode 100644 index 0000000..a007f00 --- /dev/null +++ b/macros/Hardware/RasberryPi/Serial/lib diff --git a/macros/Hardware/RasberryPi/Setup/lib b/macros/Hardware/RasberryPi/Setup/lib Binary files differnew file mode 100644 index 0000000..83655c9 --- /dev/null +++ b/macros/Hardware/RasberryPi/Setup/lib diff --git a/macros/Hardware/RasberryPi/Shift/lib b/macros/Hardware/RasberryPi/Shift/lib Binary files differnew file mode 100644 index 0000000..2b12025 --- /dev/null +++ b/macros/Hardware/RasberryPi/Shift/lib diff --git a/macros/Hardware/RasberryPi/Soft/lib b/macros/Hardware/RasberryPi/Soft/lib Binary files differnew file mode 100644 index 0000000..09ecede --- /dev/null +++ b/macros/Hardware/RasberryPi/Soft/lib diff --git a/macros/Hardware/RasberryPi/Timing/lib b/macros/Hardware/RasberryPi/Timing/lib Binary files differnew file mode 100644 index 0000000..d271c90 --- /dev/null +++ b/macros/Hardware/RasberryPi/Timing/lib diff --git a/macros/Hardware/RasberryPi/gertBoard/lib b/macros/Hardware/RasberryPi/gertBoard/lib Binary files differnew file mode 100644 index 0000000..e8db080 --- /dev/null +++ b/macros/Hardware/RasberryPi/gertBoard/lib diff --git a/macros/Hardware/RasberryPi/lcd/lib b/macros/Hardware/RasberryPi/lcd/lib Binary files differnew file mode 100644 index 0000000..c2b693f --- /dev/null +++ b/macros/Hardware/RasberryPi/lcd/lib diff --git a/macros/Hardware/RasberryPi/lcd128x64/lib b/macros/Hardware/RasberryPi/lcd128x64/lib Binary files differnew file mode 100644 index 0000000..94dfda8 --- /dev/null +++ b/macros/Hardware/RasberryPi/lcd128x64/lib diff --git a/macros/Hardware/RasberryPi/lib b/macros/Hardware/RasberryPi/lib Binary files differnew file mode 100644 index 0000000..49ed811 --- /dev/null +++ b/macros/Hardware/RasberryPi/lib diff --git a/macros/Hardware/RasberryPi/mcp/lib b/macros/Hardware/RasberryPi/mcp/lib Binary files differnew file mode 100644 index 0000000..d411aad --- /dev/null +++ b/macros/Hardware/RasberryPi/mcp/lib diff --git a/macros/Hardware/RasberryPi/pcf/lib b/macros/Hardware/RasberryPi/pcf/lib Binary files differnew file mode 100644 index 0000000..da6a8da --- /dev/null +++ b/macros/Hardware/RasberryPi/pcf/lib diff --git a/macros/Hardware/RasberryPi/piGlow/lib b/macros/Hardware/RasberryPi/piGlow/lib Binary files differnew file mode 100644 index 0000000..3f30f85 --- /dev/null +++ b/macros/Hardware/RasberryPi/piGlow/lib diff --git a/macros/Hardware/RasberryPi/pinMap/lib b/macros/Hardware/RasberryPi/pinMap/lib Binary files differnew file mode 100644 index 0000000..133363e --- /dev/null +++ b/macros/Hardware/RasberryPi/pinMap/lib diff --git a/macros/Hardware/RasberryPi/pwm/lib b/macros/Hardware/RasberryPi/pwm/lib Binary files differnew file mode 100644 index 0000000..8711baf --- /dev/null +++ b/macros/Hardware/RasberryPi/pwm/lib diff --git a/macros/ImageProcessing/core/lib b/macros/ImageProcessing/core/lib Binary files differnew file mode 100644 index 0000000..40b7b0a --- /dev/null +++ b/macros/ImageProcessing/core/lib diff --git a/macros/ImageProcessing/highgui/lib b/macros/ImageProcessing/highgui/lib Binary files differnew file mode 100644 index 0000000..0d7f88a --- /dev/null +++ b/macros/ImageProcessing/highgui/lib diff --git a/macros/ImageProcessing/imgproc/lib b/macros/ImageProcessing/imgproc/lib Binary files differnew file mode 100644 index 0000000..63b5e7e --- /dev/null +++ b/macros/ImageProcessing/imgproc/lib diff --git a/macros/Scilab-Arduino/lib b/macros/Scilab-Arduino/lib Binary files differnew file mode 100644 index 0000000..a62fd4e --- /dev/null +++ b/macros/Scilab-Arduino/lib diff --git a/macros/SymbolTable/lib b/macros/SymbolTable/lib Binary files differnew file mode 100644 index 0000000..4379c83 --- /dev/null +++ b/macros/SymbolTable/lib diff --git a/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci b/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci index 2c5740c..e0e63d4 100644 --- a/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci +++ b/macros/ToolInitialization/INIT_FillSCI2LibCDirs.sci @@ -1111,39 +1111,6 @@ PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file', INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
-
-// -------------------
-// --- Class Isvector. ---
-// -------------------
-ClassName = 'Isvector';
-
-// --- Class Annotation. ---
-PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
-ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
-PrintStringInfo('NIN= 1',ClassFileName,'file','y');
-PrintStringInfo('NOUT= 1 ',ClassFileName,'file','y');
-//Was FA_TP_USER
-//Cause some trouble if user specify some precision and if input(and also output) is complex.
-PrintStringInfo('OUT(1).TP= ''g''',ClassFileName,'file','y');
-PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
-PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
-//---Function list class. ----
-ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
-PrintStringInfo('d0'+ArgSeparator+'g0',ClassFileName,'file','y');
-PrintStringInfo('d2'+ArgSeparator+'g0',ClassFileName,'file','y');
-PrintStringInfo('s2'+ArgSeparator+'g0',ClassFileName,'file','y');
-PrintStringInfo('s0'+ArgSeparator+'g0',ClassFileName,'file','y');
-PrintStringInfo('g2'+ArgSeparator+'g0',ClassFileName,'file','y');
-PrintStringInfo('g0'+ArgSeparator+'g0',ClassFileName,'file','y');
-PrintStringInfo('z2'+ArgSeparator+'g0',ClassFileName,'file','y');
-PrintStringInfo('z0'+ArgSeparator+'g0',ClassFileName,'file','y');
-
-// --- Annotation Function And Function List Function. ---
-FunctionName = 'isvector';
-PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
-INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
-INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
-
// -------------------
// --- Class Iscolumn. ---
// -------------------
@@ -2010,16 +1977,6 @@ PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file', INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
-FunctionName = 'median'; // BJ : Done AS : Float_Done
-PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
-INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
-INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
-
-FunctionName = 'mad'; // BJ : Done AS : Float_Done
-PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
-INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
-INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
-
FunctionName = 'st_deviation'; // BJ : Not implemented
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
@@ -5040,6 +4997,65 @@ INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,E INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+//------------------------------------
+//---- Class ERFCX ----------------
+//------------------------------------
+ClassName = 'erfcx';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'erfcx';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+//------------------------------------
+//---- Class ERFINV ----------------
+//------------------------------------
+ClassName = 'erfinv';
+
+// --- Class Annotation. ---
+PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
+ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
+
+PrintStringInfo('NIN= 1',ClassFileName,'file','y');
+PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).TP= IN(1).TP',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(1)= IN(1).SZ(1)',ClassFileName,'file','y');
+PrintStringInfo('OUT(1).SZ(2)= IN(1).SZ(2)',ClassFileName,'file','y');
+
+ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
+PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+
+
+// --- Annotation Function And Function List Function. ---
+FunctionName = 'erfinv';
+PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
+INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
+
+
+
// -------------------
// --- Class Spec. ---
// -------------------
@@ -7322,50 +7338,30 @@ PrintStringInfo('OUT(1).SZ(2)= IN(3).VAL',ClassFileName,'file','y'); ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
PrintStringInfo('d2d0d0'+ArgSeparator+'d2',ClassFileName,'file','y');
PrintStringInfo('d2s0s0'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('d2u160u160'+ArgSeparator+'d2',ClassFileName,'file','y');
+PrintStringInfo('d2u80u80'+ArgSeparator+'d2',ClassFileName,'file','y');
PrintStringInfo('z2d0d0'+ArgSeparator+'z2',ClassFileName,'file','y');
PrintStringInfo('z2s0s0'+ArgSeparator+'z2',ClassFileName,'file','y');
+
PrintStringInfo('s2d0d0'+ArgSeparator+'s2',ClassFileName,'file','y');
PrintStringInfo('s2s0s0'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('s2u160u160'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('s2u80u80'+ArgSeparator+'s2',ClassFileName,'file','y');
+PrintStringInfo('u162'+ArgSeparator+'u162',ClassFileName,'file','y');
+PrintStringInfo('i162'+ArgSeparator+'i162',ClassFileName,'file','y');
+
PrintStringInfo('u162d0d0'+ArgSeparator+'u162',ClassFileName,'file','y');
PrintStringInfo('u162s0s0'+ArgSeparator+'u162',ClassFileName,'file','y');
-
+PrintStringInfo('u82g2'+ArgSeparator+'u82',ClassFileName,'file','y');
+PrintStringInfo('i82g2'+ArgSeparator+'i82',ClassFileName,'file','y');
+PrintStringInfo('u162g2'+ArgSeparator+'u162',ClassFileName,'file','y');
+PrintStringInfo('i162g2'+ArgSeparator+'i162',ClassFileName,'file','y');
// --- Annotation Function And Function List Function. ---
FunctionName = 'matrix';
PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
-//------------------------------------
-//---- Class NNZ---------------------
-//------------------------------------
-ClassName = 'NNZ';
-
-// --- Class Annotation. ---
-PrintStringInfo(' Adding Class: '+ClassName+'.',GeneralReport,'file','y');
-ClassFileName = fullfile(SCI2CLibCAnnClsDir,ClassName+ExtensionCAnnCls);
-
-//Arguements specified: initial value, start time, time vector, ode function
-PrintStringInfo('NIN= 1',ClassFileName,'file','y');
-PrintStringInfo('NOUT= 1',ClassFileName,'file','y');
-PrintStringInfo('OUT(1).TP= ''u16''',ClassFileName,'file','y');
-PrintStringInfo('OUT(1).SZ(1)= ''1''',ClassFileName,'file','y');
-PrintStringInfo('OUT(1).SZ(2)= ''1''',ClassFileName,'file','y');
-
-// --- Function List Class. ---
-ClassFileName = fullfile(SCI2CLibCFLClsDir,ClassName+ExtensionCFuncListCls);
-PrintStringInfo('d2'+ArgSeparator+'u160',ClassFileName,'file','y');
-PrintStringInfo('d0'+ArgSeparator+'u160',ClassFileName,'file','y');
-PrintStringInfo('z2'+ArgSeparator+'u160',ClassFileName,'file','y');
-PrintStringInfo('z0'+ArgSeparator+'u160',ClassFileName,'file','y');
-PrintStringInfo('s2'+ArgSeparator+'u160',ClassFileName,'file','y');
-PrintStringInfo('s0'+ArgSeparator+'u160',ClassFileName,'file','y');
-
-// --- Annotation Function And Function List Function. ---
-FunctionName = 'nnz';
-PrintStringInfo(' Adding Function: '+FunctionName+'.',GeneralReport,'file','y');
-INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCAnnFunDir,ClassName,GeneralReport,ExtensionCAnnFun);
-INIT_GenAnnFLFunctions(FunctionName,SCI2CLibCFLFunDir,ClassName,GeneralReport,ExtensionCFuncListFun);
-
//------------------------------------
//---- Class TRIU ---------------------
diff --git a/macros/ToolInitialization/lib b/macros/ToolInitialization/lib Binary files differnew file mode 100644 index 0000000..670a52e --- /dev/null +++ b/macros/ToolInitialization/lib diff --git a/macros/findDeps/getAllHeaders.sci b/macros/findDeps/getAllHeaders.sci index 82f07fd..90b80df 100644 --- a/macros/findDeps/getAllHeaders.sci +++ b/macros/findDeps/getAllHeaders.sci @@ -233,6 +233,8 @@ function allHeaders = getAllHeaders(SharedInfo) "src/c/elementaryFunctions/includes/sinc.h" "src/c/specialFunctions/includes/erf.h" "src/c/specialFunctions/includes/erfc.h" + "src/c/specialFunctions/includes/erfcx.h" + "src/c/specialFunctions/includes/erfinv.h" "src/c/CACSD/includes/syslin.h" "src/c/CACSD/includes/lqr.h" "src/c/CACSD/includes/lqe.h" diff --git a/macros/findDeps/getAllInterfaces.sci b/macros/findDeps/getAllInterfaces.sci index 8bc347d..4982900 100644 --- a/macros/findDeps/getAllInterfaces.sci +++ b/macros/findDeps/getAllInterfaces.sci @@ -228,6 +228,8 @@ function allInterfaces = getAllInterfaces(SharedInfo) "src/c/elementaryFunctions/interfaces/int_sinc.h" "src/c/specialFunctions/interfaces/int_erf.h" "src/c/specialFunctions/interfaces/int_erfc.h" + "src/c/specialFunctions/interfaces/int_erfcx.h" + "src/c/specialFunctions/interfaces/int_erfinv.h" "src/c/CACSD/interfaces/int_syslin.h" "src/c/CACSD/interfaces/int_lqr.h" "src/c/CACSD/interfaces/int_lqe.h" diff --git a/macros/findDeps/getAllSources.sci b/macros/findDeps/getAllSources.sci index bdd6400..fde9eb7 100644 --- a/macros/findDeps/getAllSources.sci +++ b/macros/findDeps/getAllSources.sci @@ -308,12 +308,6 @@ function allSources = getAllSources(SharedInfo,BuildTool) "src/c/matrixOperations/matrix/smatrixa.c" "src/c/matrixOperations/matrix/u16matrixa.c" "src/c/matrixOperations/matrix/zmatrixa.c" - "src/c/matrixOperations/nnz/dnnza.c" - "src/c/matrixOperations/nnz/dnnzs.c" - "src/c/matrixOperations/nnz/snnza.c" - "src/c/matrixOperations/nnz/snnzs.c" - "src/c/matrixOperations/nnz/znnza.c" - "src/c/matrixOperations/nnz/znnzs.c" "src/c/matrixOperations/triu/dtriua.c" "src/c/matrixOperations/triu/striua.c" "src/c/matrixOperations/triu/u8triua.c" @@ -1384,6 +1378,14 @@ function allSources = getAllSources(SharedInfo,BuildTool) "src/c/specialFunctions/erfc/derfca.c" "src/c/specialFunctions/erfc/serfcs.c" "src/c/specialFunctions/erfc/serfca.c" + "src/c/specialFunctions/erfcx/derfcxs.c" + "src/c/specialFunctions/erfcx/derfcxa.c" + "src/c/specialFunctions/erfcx/serfcxs.c" + "src/c/specialFunctions/erfcx/serfcxa.c" + "src/c/specialFunctions/erfinv/derfinvs.c" + "src/c/specialFunctions/erfinv/derfinva.c" + "src/c/specialFunctions/erfinv/serfinvs.c" + "src/c/specialFunctions/erfinv/serfinva.c" "src/c/CACSD/syslin/dsyslina.c" "src/c/CACSD/lqr/dlqra.c" "src/c/CACSD/lqe/dlqea.c" diff --git a/macros/findDeps/lib b/macros/findDeps/lib Binary files differnew file mode 100644 index 0000000..afcd3ca --- /dev/null +++ b/macros/findDeps/lib diff --git a/macros/lib b/macros/lib Binary files differnew file mode 100644 index 0000000..551263e --- /dev/null +++ b/macros/lib diff --git a/src/c/hardware/rasberrypi/includes/RPIPeripheralLCD128x64.h b/src/c/hardware/rasberrypi/includes/RPIPeripheralLCD128x64.h index d541c9f..93bdf27 100644 --- a/src/c/hardware/rasberrypi/includes/RPIPeripheralLCD128x64.h +++ b/src/c/hardware/rasberrypi/includes/RPIPeripheralLCD128x64.h @@ -22,13 +22,17 @@ extern "C" { int8 RPI_lcd128x64setup(void); void u8RPI_lcd128x64clears(uint8 colour); void u8RPI_lcd128x64Orientations(uint8 orientation); + void u8RPI_lcd128x64setOrigins(uint8 x, uint8 y); + void u8RPI_lcd128x64points(uint8 x, uint8 y, uint8 colour); void u8RPI_lcd128x64lineTos(uint8 x, uint8 y, uint8 colour); + void u8RPI_lcd128x64lines(uint8 x0, uint8 y0, uint8 x1, uint8 y1, uint8 colour); void u8RPI_lcd128x64circles(uint8 x, uint8 y, uint8 r, uint8 colour, uint8 filled); void u8RPI_lcd128x64putchars(uint8 x, uint8 y, uint8 c, uint8 bgCol, uint8 fgCol); void u8RPI_lcd128x64putss(uint8 x, uint8 y, char *str,int size, uint8 bgCol, uint8 fgCol); + void u8RPI_lcd128x64rectangles(uint8 x1, uint8 y1, uint8 x2, uint8 y2, uint8 colour, uint8 filled); void u8RPI_lcd128x64ellipses(uint8 cx, uint8 cy, uint8 xRadius, uint8 yRadius, uint8 colour, uint8 filled); diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD.h index e6dcb7d..803f93e 100644 --- a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD.h +++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD.h @@ -21,18 +21,22 @@ extern "C" { #endif #define u80u80u80u80u80u80u80u80u80u80RPI_lcdCharDef(fd,index,d0,d1,d2,d3,d4,d5,d6,d7) u8RPI_lcdCharDefs(fd,index,d0,d1,d2,d3,d4,d5,d6,d7); +#define u80d0d0d0d0d0d0d0d0d0RPI_lcdCharDef(fd,index,d0,d1,d2,d3,d4,d5,d6,d7) u8RPI_lcdCharDefs(fd,index,d0,d1,d2,d3,d4,d5,d6,d7); #define d0d0d0d0d0d0d0d0d0d0RPI_lcdCharDef(fd,index,d0,d1,d2,d3,d4,d5,d6,d7) u8RPI_lcdCharDefs(fd,index,d0,d1,d2,d3,d4,d5,d6,d7); #define u80RPI_lcdClear(fd) u8RPI_lcdClears(fd); #define d0RPI_lcdClear(fd) u8RPI_lcdClears(fd); #define u80u80RPI_lcdCursorBlink(fd,state) u8RPI_lcdCursorBlinks(fd,state); +#define u80d0RPI_lcdCursorBlink(fd,state) u8RPI_lcdCursorBlinks(fd,state); #define d0d0RPI_lcdCursorBlink(fd,state) u8RPI_lcdCursorBlinks(fd,state); #define u80u80RPI_lcdCursor(fd,state) u8RPI_lcdCursors(fd,state); +#define u80d0RPI_lcdCursor(fd,state) u8RPI_lcdCursors(fd,state); #define d0d0RPI_lcdCursor(fd,state) u8RPI_lcdCursors(fd,state); #define u80u80RPI_lcdDisplay(fd,state) u8RPI_lcdDisplays(fd,state); +#define u80d0RPI_lcdDisplay(fd,state) u8RPI_lcdDisplays(fd,state); #define d0d0RPI_lcdDisplay(fd,state) u8RPI_lcdDisplays(fd,state); #define u80RPI_lcdHome(fd) u8RPI_lcdHomes(fd); @@ -42,12 +46,15 @@ extern "C" { #define d0d0d0d0d0d0d0d0d0d0d0d0d0RPI_lcdIniti80(rows,cols,bits,rs,strb,d0,d1,d2,d3,d4,d5,d6,d7) u8RPI_lcdInits(rows,cols,bits,rs,strb,d0,d1,d2,d3,d4,d5,d6,d7); #define u80u80u80RPI_lcdPosition(fd,row,col) u8RPI_lcdPositions(fd,row,col); +#define u80d0d0RPI_lcdPosition(fd,row,col) u8RPI_lcdPositions(fd,row,col); #define d0d0d0RPI_lcdPosition(fd,row,col) u8RPI_lcdPositions(fd,row,col); #define u80u80RPI_lcdPutchar(fd,char) u8RPI_lcdPutchars(fd,char); +#define u80d0RPI_lcdPutchar(fd,char) u8RPI_lcdPutchars(fd,char); #define d0d0RPI_lcdPutchar(fd,char) u8RPI_lcdPutchars(fd,char); #define u80u80RPI_lcdSendCommand(fd,cmd) u8RPI_lcdSendCommands(fd,cmd); +#define u80d0RPI_lcdSendCommand(fd,cmd) u8RPI_lcdSendCommands(fd,cmd); #define d0d0RPI_lcdSendCommand(fd,cmd) u8RPI_lcdSendCommands(fd,cmd); #define u80g2RPI_lcdPuts(fd,msg,size) u8RPI_lcdPutss(fd,msg,size[1]);; diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD128x64.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD128x64.h index 77cc433..8bb4b17 100644 --- a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD128x64.h +++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD128x64.h @@ -33,6 +33,7 @@ extern "C" { #define u80u80u80RPI_lcd128x64point(x,y,colour) u8RPI_lcd128x64points(x,y,colour); #define d0d0d0RPI_lcd128x64point(x,y,colour) u8RPI_lcd128x64points(x,y,colour); + #define u80u80u80RPI_lcd128x64lineTo(x,y,colour) u8RPI_lcd128x64lineTos(x,y,colour); #define d0d0d0RPI_lcd128x64lineTo(x,y,colour) u8RPI_lcd128x64lineTos(x,y,colour); diff --git a/src/c/specialFunctions/erfcx/derfcxa.c b/src/c/specialFunctions/erfcx/derfcxa.c new file mode 100644 index 0000000..d2cd750 --- /dev/null +++ b/src/c/specialFunctions/erfcx/derfcxa.c @@ -0,0 +1,26 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + 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 + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include "erfcx.h" +#include "erfc.h" + +void derfcxa(double* inp1, int sizer, int sizec, double* out) +{ + for (int i = 0; i < sizer*sizec; i++) + { + out[i] = derfcxs(inp1[i]); + } +} + diff --git a/src/c/specialFunctions/erfcx/derfcxs.c b/src/c/specialFunctions/erfcx/derfcxs.c new file mode 100644 index 0000000..ff12b2f --- /dev/null +++ b/src/c/specialFunctions/erfcx/derfcxs.c @@ -0,0 +1,23 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + 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 + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include "erfcx.h" +#include "erfc.h" + +double derfcxs(double inp1) +{ + return exp(inp1*inp1)*derfcs(inp1); +} + diff --git a/src/c/specialFunctions/erfcx/serfcxa.c b/src/c/specialFunctions/erfcx/serfcxa.c new file mode 100644 index 0000000..a28c30c --- /dev/null +++ b/src/c/specialFunctions/erfcx/serfcxa.c @@ -0,0 +1,26 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + 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 + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include "erfcx.h" +#include "erfc.h" + +void serfcxa(float* inp1, int sizer, int sizec, float* out) +{ + for (int i = 0; i < sizer*sizec; i++) + { + out[i] = serfcxs(inp1[i]); + } +} + diff --git a/src/c/specialFunctions/erfcx/serfcxs.c b/src/c/specialFunctions/erfcx/serfcxs.c new file mode 100644 index 0000000..be31a5a --- /dev/null +++ b/src/c/specialFunctions/erfcx/serfcxs.c @@ -0,0 +1,23 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + 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 + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include "erfcx.h" +#include "erfc.h" + +float serfcxs(float inp1) +{ + return exp(inp1*inp1)*derfcs(inp1); +} + diff --git a/src/c/specialFunctions/erfinv/derfinva.c b/src/c/specialFunctions/erfinv/derfinva.c new file mode 100644 index 0000000..45d119c --- /dev/null +++ b/src/c/specialFunctions/erfinv/derfinva.c @@ -0,0 +1,25 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + 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 + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include "erfinv.h" + +void derfinva(double* inp1, int sizer, int sizec,double* out) +{ + for (int i = 0; i < sizer*sizec; i++) + { + out[i] = derfinvs(inp1[i]); + } +} + diff --git a/src/c/specialFunctions/erfinv/derfinvs.c b/src/c/specialFunctions/erfinv/derfinvs.c new file mode 100644 index 0000000..3f7fe76 --- /dev/null +++ b/src/c/specialFunctions/erfinv/derfinvs.c @@ -0,0 +1,49 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + 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 + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include "erfinv.h" + +# define PI 3.1415927 + +double derfinvs (double inp1) +{ + double a[] = {0.88622692374517353,-1.6601283962374516,0.92661860147244357,-0.14110320437680104}; //Coefficients for the formula to calculate inverse error + double b[] = {-2.13505380615258078,1.46060340345661088,-0.33198239813321595,0.01197270616590528}; //Coefficients for the formula to calculate inverse error + double c[] = {-1.994216456587148,-1.87267416351196,3.60874665878559364,1.82365845766309853}; //Coefficients for the formula to calculate inverse error + double d[] = {3.74146294065960872,1.81848952562894617}; //Coefficients for the formula to calculate inverse error + + if ((inp1 > 1) || (inp1 < -1)) + { + return 0.0/0.0; // returns Nan + } + if ((inp1 >= -0.7) && (inp1 <= 0.7)) + { + double sq = inp1 * inp1; + return (inp1 * (((a[3]*sq+a[2]) * sq+a[1]) * sq+a[0]) / ((((b[3]*sq+b[2]) * sq+b[1]) * sq+b[0]) * sq+1)); //Inverse error formula + } + + else if ((inp1 > 0.7) && (inp1 < 1)) + { + double z = sqrt(-log((1-inp1)/2)); + return ((((c[3]*z+c[2]) * z+c[1]) * z+c[0]) / ((d[1]*z+d[0]) * z+1)); //Inverse error formula + } + + else if ((inp1 > -1) && (inp1 < 0.7)) + { + double z = sqrt(-log((1+inp1)/2)); + return (-(((c[3]*z+c[2]) * z+c[1]) * z+c[0]) / ((d[1]*z+d[0]) * z+1)); //Inverse error formula + } +} + diff --git a/src/c/specialFunctions/erfinv/serfinva.c b/src/c/specialFunctions/erfinv/serfinva.c new file mode 100644 index 0000000..3a14f3c --- /dev/null +++ b/src/c/specialFunctions/erfinv/serfinva.c @@ -0,0 +1,25 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + 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 + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include "erfinv.h" + +void serfinva(float* inp1, int sizer, int sizec,float* out) +{ + for (int i = 0; i < sizer*sizec; i++) + { + out[i] = serfinvs(inp1[i]); + } +} + diff --git a/src/c/specialFunctions/erfinv/serfinvs.c b/src/c/specialFunctions/erfinv/serfinvs.c new file mode 100644 index 0000000..5436fe3 --- /dev/null +++ b/src/c/specialFunctions/erfinv/serfinvs.c @@ -0,0 +1,50 @@ +/* Copyright (C) 2016 - IIT Bombay - FOSSEE + + 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 + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in +*/ + +#include <stdio.h> +#include <stdlib.h> +#include <math.h> +#include "erfinv.h" + +# define PI 3.1415927 + +float serfinvs (float inp1) +{ + float a[] = {0.88622692374517353,-1.6601283962374516,0.92661860147244357,-0.14110320437680104}; //Coefficients for the formula to calculate inverse error + float b[] = {-2.13505380615258078,1.46060340345661088,-0.33198239813321595,0.01197270616590528}; //Coefficients for the formula to calculate inverse error + float c[] = {-1.994216456587148,-1.87267416351196,3.60874665878559364,1.82365845766309853}; //Coefficients for the formula to calculate inverse error + float d[] = {3.74146294065960872,1.81848952562894617}; //Coefficients for the formula to calculate inverse error + + if ((inp1 > 1) || (inp1 < -1)) + { + double na = 0.0/0.0; + return (float)na; + } + if ((inp1 >= -0.7) && (inp1 <= 0.7)) + { + float sq = inp1 * inp1; + return (inp1 * (((a[3]*sq+a[2]) * sq+a[1]) * sq+a[0]) / ((((b[3]*sq+b[2]) * sq+b[1]) * sq+b[0]) * sq+1)); //Inverse error formula + } + + else if ((inp1 > 0.7) && (inp1 < 1)) + { + float z = sqrt(-log((1-inp1)/2)); + return ((((c[3]*z+c[2]) * z+c[1]) * z+c[0]) / ((d[1]*z+d[0]) * z+1)); //Inverse error formula + } + + else if ((inp1 > -1) && (inp1 < 0.7)) + { + float z = sqrt(-log((1+inp1)/2)); + return (-(((c[3]*z+c[2]) * z+c[1]) * z+c[0]) / ((d[1]*z+d[0]) * z+1)); //Inverse error formula + } +} + diff --git a/src/c/specialFunctions/includes/erfc.h b/src/c/specialFunctions/includes/erfc.h index 77847ab..509e34e 100644 --- a/src/c/specialFunctions/includes/erfc.h +++ b/src/c/specialFunctions/includes/erfc.h @@ -1,13 +1,13 @@ -/* - * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab - * Copyright (C) 2008-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 - * + /* Copyright (C) 2017 - IIT Bombay - FOSSEE + + 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 + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in */ #ifndef __ERFC_H__ diff --git a/src/c/specialFunctions/includes/erfcx.h b/src/c/specialFunctions/includes/erfcx.h new file mode 100644 index 0000000..dd1e442 --- /dev/null +++ b/src/c/specialFunctions/includes/erfcx.h @@ -0,0 +1,37 @@ + /* Copyright (C) 2017 - IIT Bombay - FOSSEE + + 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 + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in + */ + +#ifndef __ERFCX_H__ +#define __ERFCX_H__ +#include "types.h" +#include "floatComplex.h" +#include "doubleComplex.h" +#include "uint8.h" +#include "uint16.h" +#include "int16.h" +#include "erfc.h" + +#ifdef __cplusplus +extern "C" { +#endif + +double derfcxs(double inp1); +void derfcxa(double* inp1, int sizer, int sizec,double* out); +float serfcxs(float inp1); +void serfcxa(float* inp1, int sizer, int sizec, float* out); + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__ERFCX_H__*/ diff --git a/src/c/specialFunctions/includes/erfinv.h b/src/c/specialFunctions/includes/erfinv.h new file mode 100644 index 0000000..5d6210c --- /dev/null +++ b/src/c/specialFunctions/includes/erfinv.h @@ -0,0 +1,35 @@ +/* + * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab + * Copyright (C) 2008-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 + * + */ + +#ifndef __ERFINV_H__ +#define __ERFINV_H__ +#include "types.h" +#include "floatComplex.h" +#include "doubleComplex.h" +#include "uint8.h" +#include "uint16.h" +#include "int16.h" + +#ifdef __cplusplus +extern "C" { +#endif + +double derfinvs (double inp1); +float serfinvs (float inp1); +void derfinva(double* inp1, int sizer, int sizec,double* out); +void serfinva(float* inp1, int sizer, int sizec,float* out); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__ERFINV_H__*/ diff --git a/src/c/specialFunctions/interfaces/int_erfcx.h b/src/c/specialFunctions/interfaces/int_erfcx.h new file mode 100644 index 0000000..89840d4 --- /dev/null +++ b/src/c/specialFunctions/interfaces/int_erfcx.h @@ -0,0 +1,32 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + 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 + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in + */ +#ifndef __INT_ERFCX_H__ +#define __INT_ERFCX_H__ + +#ifdef __cplusplus +extern "C" { +#endif + + + +#define d0erfcxd0(in1) derfcxs(in1) +#define s0erfcxs0(in1) serfcxs(in1) +#define d2erfcxd2(in1,size,out) derfcxa(in1,size[0],size[1],out) +#define s2erfcs2(in1,size,out) serfca(in1,size[0],size[1],out) + + + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__INT_ERFCX_H__*/ diff --git a/src/c/specialFunctions/interfaces/int_erfinv.h b/src/c/specialFunctions/interfaces/int_erfinv.h new file mode 100644 index 0000000..f19baa1 --- /dev/null +++ b/src/c/specialFunctions/interfaces/int_erfinv.h @@ -0,0 +1,30 @@ +/* Copyright (C) 2017 - IIT Bombay - FOSSEE + + 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 + Author: Brijesh Gupta C R + Organization: FOSSEE, IIT Bombay + Email: toolbox@scilab.in + */ +#ifndef __INT_ERFINV_H__ +#define __INT_ERFINV_H__ + +#ifdef __cplusplus +extern "C" { +#endif + + + +#define d0erfinvd0(in1) derfinvs(in1) +#define s0erfinvs0(in1) serfinvs(in1) +#define d2erfinvd2(in1,size,out) derfinva(in1,size[0],size[1],out) +#define s2erfinvs2(in1,size,out) serfinva(in1,size[0],size[1],out) + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /*__INT_ERFINV_H__*/ diff --git a/tests/unit_tests/test_RPi/lcd.sci b/tests/unit_tests/test_RPi/lcd.sci new file mode 100644 index 0000000..984ecbb --- /dev/null +++ b/tests/unit_tests/test_RPi/lcd.sci @@ -0,0 +1,47 @@ +// Copyright (C) 2017 - IIT Bombay - FOSSEE +// +// 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 +// Author: Jorawar Singh +// Organization: FOSSEE, IIT Bombay +// Email: toolbox@scilab.in + +function lcd() + raspi("10.42.0.144","panda","pi"); // setup connection to Pi + RPI_pinNumbering("wiringpi"); // initialize pin numbering + // LCD connections: + // 2 rows + // 16 columns + // 8 bits + // wiringPi pin 28 - rs + // wiringPi pin 29 - strobe/E + // wiringPi pins 0-7 - lcd data pins 0 to 7 + // + + fd=RPI_lcdInit(2,16,8,28,29,0,1,2,3,4,5,6,7) // initialize lcd with the above mentioned connections + RPI_lcdDisplay(fd,1) // switch on display + RPI_lcdCursor(fd,1) // show the cursor + RPI_lcdCursorBlink(fd,1) // blink the cursor + RPI_lcdPrintf(fd,"The Elder") // print to lcd + RPI_lcdPosition(fd,0,1) // Goto second row first column + RPI_lcdPrintf(fd,"Scrolls V Skyrim") // print to lcd + RPI_lcdHome(fd) // goto first row first column (0,0) + RPI_lcdClear(fd) // clear the lcd + RPI_lcdPrintf(fd,"Volume: ") // print character corresponding to number 125 + RPI_lcdCharDef(fd,0,0,0,0,0,0,0,0,255) // define a custom character at position 0 + RPI_lcdCharDef(fd,1,0,0,0,0,0,0,255,255) // define a custom character at position 1 + RPI_lcdCharDef(fd,2,0,0,0,0,0,255,255,255) + RPI_lcdCharDef(fd,3,0,0,0,0,255,255,255,255) + RPI_lcdCharDef(fd,4,0,0,0,255,255,255,255,255) + RPI_lcdCharDef(fd,5,0,0,255,255,255,255,255,255) + RPI_lcdCharDef(fd,6,0,255,255,255,255,255,255,255) + RPI_lcdCharDef(fd,7,255,255,255,255,255,255,255,255) + for i=0:7:1 + RPI_lcdPutchar(fd,1) // print the custom characters + end + disp("Demo completed successfully.") + raspi_close(); // close the opened connection +endfunction diff --git a/tests/unit_tests/test_RPi/wait_and_blink.sci b/tests/unit_tests/test_RPi/wait_and_blink.sci index 099feaa..7f77ad0 100644 --- a/tests/unit_tests/test_RPi/wait_and_blink.sci +++ b/tests/unit_tests/test_RPi/wait_and_blink.sci @@ -1,3 +1,14 @@ +// Copyright (C) 2017 - IIT Bombay - FOSSEE +// +// 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 +// Author: Jorawar Singh +// Organization: FOSSEE, IIT Bombay +// Email: toolbox@scilab.in + function wait_and_blink() raspi("10.42.0.144","panda","pi"); // setup connection to Pi RPI_pinNumbering("wiringpi"); // initialize pin numbering |