summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/c/auxiliaryFunctions/abs/zabss.c1
-rw-r--r--src/c/elementaryFunctions/includes/iscolumn.h42
-rw-r--r--src/c/elementaryFunctions/includes/isequal.h38
-rw-r--r--src/c/elementaryFunctions/includes/ismatrix.h41
-rw-r--r--src/c/elementaryFunctions/includes/isrow.h41
-rw-r--r--src/c/elementaryFunctions/includes/isscalar.h38
-rw-r--r--src/c/elementaryFunctions/includes/issquare.h38
-rw-r--r--src/c/elementaryFunctions/includes/isvector.h38
-rw-r--r--src/c/elementaryFunctions/includes/nanmax.h40
-rw-r--r--src/c/elementaryFunctions/includes/nthroot.h37
-rw-r--r--src/c/elementaryFunctions/includes/pmodulo.h40
-rw-r--r--src/c/elementaryFunctions/includes/pow.h5
-rw-r--r--src/c/elementaryFunctions/interfaces/int_iscolumn.h29
-rw-r--r--src/c/elementaryFunctions/interfaces/int_isequal.h35
-rw-r--r--src/c/elementaryFunctions/interfaces/int_ismatrix.h28
-rw-r--r--src/c/elementaryFunctions/interfaces/int_isrow.h29
-rw-r--r--src/c/elementaryFunctions/interfaces/int_isscalar.h26
-rw-r--r--src/c/elementaryFunctions/interfaces/int_issquare.h25
-rw-r--r--src/c/elementaryFunctions/interfaces/int_isvector.h26
-rw-r--r--src/c/elementaryFunctions/interfaces/int_nanmax.h27
-rw-r--r--src/c/elementaryFunctions/interfaces/int_nthroot.h23
-rw-r--r--src/c/elementaryFunctions/interfaces/int_pmodulo.h26
-rw-r--r--src/c/elementaryFunctions/iscolumn/discolumna.c26
-rw-r--r--src/c/elementaryFunctions/iscolumn/discolumns.c24
-rw-r--r--src/c/elementaryFunctions/iscolumn/giscolumna.c27
-rw-r--r--src/c/elementaryFunctions/iscolumn/giscolumns.c24
-rw-r--r--src/c/elementaryFunctions/iscolumn/siscolumna.c26
-rw-r--r--src/c/elementaryFunctions/iscolumn/siscolumns.c24
-rw-r--r--src/c/elementaryFunctions/iscolumn/u16iscolumna.c27
-rw-r--r--src/c/elementaryFunctions/iscolumn/u16iscolumns.c25
-rw-r--r--src/c/elementaryFunctions/iscolumn/ziscolumna.c28
-rw-r--r--src/c/elementaryFunctions/iscolumn/ziscolumns.c25
-rw-r--r--src/c/elementaryFunctions/isequal/disequala.c39
-rw-r--r--src/c/elementaryFunctions/isequal/disequals.c24
-rw-r--r--src/c/elementaryFunctions/isequal/sisequala.c39
-rw-r--r--src/c/elementaryFunctions/isequal/sisequals.c24
-rw-r--r--src/c/elementaryFunctions/isequal/u16isequala.c40
-rw-r--r--src/c/elementaryFunctions/isequal/u16isequals.c25
-rw-r--r--src/c/elementaryFunctions/isequal/zisequala.c40
-rw-r--r--src/c/elementaryFunctions/isequal/zisequals.c25
-rw-r--r--src/c/elementaryFunctions/ismatrix/dismatrixa.c22
-rw-r--r--src/c/elementaryFunctions/ismatrix/dismatrixs.c22
-rw-r--r--src/c/elementaryFunctions/ismatrix/gismatrixa.c22
-rw-r--r--src/c/elementaryFunctions/ismatrix/gismatrixs.c22
-rw-r--r--src/c/elementaryFunctions/ismatrix/sismatrixa.c22
-rw-r--r--src/c/elementaryFunctions/ismatrix/sismatrixs.c22
-rw-r--r--src/c/elementaryFunctions/ismatrix/u16ismatrixa.c23
-rw-r--r--src/c/elementaryFunctions/ismatrix/u16ismatrixs.c23
-rw-r--r--src/c/elementaryFunctions/ismatrix/zismatrixa.c24
-rw-r--r--src/c/elementaryFunctions/ismatrix/zismatrixs.c24
-rw-r--r--src/c/elementaryFunctions/isrow/disrowa.c26
-rw-r--r--src/c/elementaryFunctions/isrow/disrows.c24
-rw-r--r--src/c/elementaryFunctions/isrow/gisrowa.c27
-rw-r--r--src/c/elementaryFunctions/isrow/gisrows.c24
-rw-r--r--src/c/elementaryFunctions/isrow/sisrowa.c26
-rw-r--r--src/c/elementaryFunctions/isrow/sisrows.c24
-rw-r--r--src/c/elementaryFunctions/isrow/u16isrowa.c27
-rw-r--r--src/c/elementaryFunctions/isrow/u16isrows.c25
-rw-r--r--src/c/elementaryFunctions/isrow/zisrowa.c28
-rw-r--r--src/c/elementaryFunctions/isrow/zisrows.c25
-rw-r--r--src/c/elementaryFunctions/isscalar/disscalara.c23
-rw-r--r--src/c/elementaryFunctions/isscalar/disscalars.c24
-rw-r--r--src/c/elementaryFunctions/isscalar/gisscalara.c24
-rw-r--r--src/c/elementaryFunctions/isscalar/gisscalars.c24
-rw-r--r--src/c/elementaryFunctions/isscalar/sisscalara.c22
-rw-r--r--src/c/elementaryFunctions/isscalar/sisscalars.c24
-rw-r--r--src/c/elementaryFunctions/isscalar/zisscalara.c25
-rw-r--r--src/c/elementaryFunctions/isscalar/zisscalars.c25
-rw-r--r--src/c/elementaryFunctions/issquare/dissquarea.c26
-rw-r--r--src/c/elementaryFunctions/issquare/dissquares.c24
-rw-r--r--src/c/elementaryFunctions/issquare/gissquarea.c27
-rw-r--r--src/c/elementaryFunctions/issquare/gissquares.c24
-rw-r--r--src/c/elementaryFunctions/issquare/sissquarea.c26
-rw-r--r--src/c/elementaryFunctions/issquare/sissquares.c24
-rw-r--r--src/c/elementaryFunctions/issquare/zissquarea.c28
-rw-r--r--src/c/elementaryFunctions/issquare/zissquares.c25
-rw-r--r--src/c/elementaryFunctions/isvector/disvectora.c23
-rw-r--r--src/c/elementaryFunctions/isvector/disvectors.c24
-rw-r--r--src/c/elementaryFunctions/isvector/gisvectora.c24
-rw-r--r--src/c/elementaryFunctions/isvector/gisvectors.c24
-rw-r--r--src/c/elementaryFunctions/isvector/sisvectora.c23
-rw-r--r--src/c/elementaryFunctions/isvector/sisvectors.c24
-rw-r--r--src/c/elementaryFunctions/isvector/zisvectora.c25
-rw-r--r--src/c/elementaryFunctions/isvector/zisvectors.c25
-rw-r--r--src/c/elementaryFunctions/nanmax/dnanmaxa.c53
-rw-r--r--src/c/elementaryFunctions/nanmax/dnanmaxcola.c35
-rw-r--r--src/c/elementaryFunctions/nanmax/dnanmaxrowa.c36
-rw-r--r--src/c/elementaryFunctions/nanmax/snanmaxa.c53
-rw-r--r--src/c/elementaryFunctions/nanmax/snanmaxcola.c35
-rw-r--r--src/c/elementaryFunctions/nanmax/snanmaxrowa.c36
-rw-r--r--src/c/elementaryFunctions/nanmax/znanmaxa.c57
-rw-r--r--src/c/elementaryFunctions/nanmax/znanmaxcola.c36
-rw-r--r--src/c/elementaryFunctions/nanmax/znanmaxrowa.c37
-rw-r--r--src/c/elementaryFunctions/nthroot/dnthroot1a.c28
-rw-r--r--src/c/elementaryFunctions/nthroot/dnthroota.c36
-rw-r--r--src/c/elementaryFunctions/nthroot/dnthroots.c23
-rw-r--r--src/c/elementaryFunctions/nthroot/snthroot1a.c28
-rw-r--r--src/c/elementaryFunctions/nthroot/snthroota.c36
-rw-r--r--src/c/elementaryFunctions/nthroot/snthroots.c23
-rw-r--r--src/c/elementaryFunctions/nthroot/u16nthroot1a.c29
-rw-r--r--src/c/elementaryFunctions/nthroot/u16nthroota.c37
-rw-r--r--src/c/elementaryFunctions/nthroot/u16nthroots.c24
-rw-r--r--src/c/elementaryFunctions/pmodulo/dpmoduloa.c32
-rw-r--r--src/c/elementaryFunctions/pmodulo/dpmodulos.c54
-rw-r--r--src/c/elementaryFunctions/pmodulo/i16pmoduloa.c33
-rw-r--r--src/c/elementaryFunctions/pmodulo/i16pmodulos.c55
-rw-r--r--src/c/elementaryFunctions/pmodulo/spmoduloa.c32
-rw-r--r--src/c/elementaryFunctions/pmodulo/spmodulos.c54
-rw-r--r--src/c/elementaryFunctions/type/gtype (renamed from src/c/elementaryFunctions/nthroot/dnthroot.c)0
-rw-r--r--src/c/hardware/rasberrypi/includes/RPIPeripheralLCD128x64.h4
-rw-r--r--src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralDigital.h1
-rw-r--r--src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralGertboard.h6
-rw-r--r--src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralI2C.h13
-rw-r--r--src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD.h30
-rw-r--r--src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD128x64.h4
-rw-r--r--src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralMcp.h9
-rw-r--r--src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralMisc.h4
-rw-r--r--src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPWM.h8
-rw-r--r--src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPcf.h3
-rw-r--r--src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPiGlow.h7
-rw-r--r--src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPinMap.h3
-rw-r--r--src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralSerial.h15
-rw-r--r--src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralSetup.h6
-rw-r--r--src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralShift.h5
-rw-r--r--src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralSoft.h11
-rw-r--r--src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralTiming.h2
-rw-r--r--src/c/hardware/rasberrypi/pwm/u8RPI_pwmToneWrites.c4
-rw-r--r--src/c/linearAlgebra/fullrf/dfullrfa.c112
-rw-r--r--src/c/linearAlgebra/givens/dgivensa.c76
-rw-r--r--src/c/linearAlgebra/hess/dhessa.c8
-rw-r--r--src/c/linearAlgebra/householder/dhouseholdera.c90
-rw-r--r--src/c/linearAlgebra/includes/fullrf.h26
-rw-r--r--src/c/linearAlgebra/includes/givens.h25
-rw-r--r--src/c/linearAlgebra/includes/householder.h26
-rw-r--r--src/c/linearAlgebra/includes/qr.h26
-rw-r--r--src/c/linearAlgebra/includes/rowcomp.h26
-rw-r--r--src/c/linearAlgebra/includes/sqroot.h26
-rw-r--r--src/c/linearAlgebra/interfaces/int_fullrf.h28
-rw-r--r--src/c/linearAlgebra/interfaces/int_givens.h32
-rw-r--r--src/c/linearAlgebra/interfaces/int_householder.h28
-rw-r--r--src/c/linearAlgebra/interfaces/int_qr.h34
-rw-r--r--src/c/linearAlgebra/interfaces/int_rowcomp.h29
-rw-r--r--src/c/linearAlgebra/interfaces/int_sqroot.h27
-rw-r--r--src/c/linearAlgebra/proj/dproja.c73
-rw-r--r--src/c/linearAlgebra/projspec/dprojspeca.c67
-rw-r--r--src/c/linearAlgebra/qr/dqra.c298
-rw-r--r--src/c/linearAlgebra/rowcomp/drowcompa.c79
-rw-r--r--src/c/linearAlgebra/sqroot/dsqroota.c130
-rw-r--r--src/c/linearAlgebra/sva/dsvaa.c21
-rw-r--r--src/c/linearAlgebra/svd/.1.c.swpbin0 -> 12288 bytes
-rw-r--r--src/c/linearAlgebra/svd/zsvda.c34
-rw-r--r--src/c/matrixOperations/cross/ccrossa.c37
-rw-r--r--src/c/matrixOperations/cross/dcrossa.c33
-rw-r--r--src/c/matrixOperations/cross/i16crossa.c34
-rw-r--r--src/c/matrixOperations/cross/i8crossa.c34
-rw-r--r--src/c/matrixOperations/cross/scrossa.c33
-rw-r--r--src/c/matrixOperations/cross/u16crossa.c34
-rw-r--r--src/c/matrixOperations/cross/u8crossa.c34
-rw-r--r--src/c/matrixOperations/cross/zcrossa.c37
-rw-r--r--src/c/matrixOperations/includes/cross.h37
-rw-r--r--src/c/matrixOperations/includes/matrix.h36
-rw-r--r--src/c/matrixOperations/includes/nnz.h37
-rw-r--r--src/c/matrixOperations/includes/norm.h2
-rw-r--r--src/c/matrixOperations/includes/spec.h56
-rw-r--r--src/c/matrixOperations/includes/toeplitz.h37
-rw-r--r--src/c/matrixOperations/interfaces/int_cross.h35
-rw-r--r--src/c/matrixOperations/interfaces/int_matrix.h49
-rw-r--r--src/c/matrixOperations/interfaces/int_nnz.h35
-rw-r--r--src/c/matrixOperations/interfaces/int_spec.h71
-rw-r--r--src/c/matrixOperations/interfaces/int_toeplitz.h50
-rw-r--r--src/c/matrixOperations/matrix/dmatrixa.c33
-rw-r--r--src/c/matrixOperations/matrix/smatrixa.c33
-rw-r--r--src/c/matrixOperations/matrix/u16matrixa.c33
-rw-r--r--src/c/matrixOperations/matrix/zmatrixa.c33
-rw-r--r--src/c/matrixOperations/nnz/dnnza.c33
-rw-r--r--src/c/matrixOperations/nnz/dnnzs.c25
-rw-r--r--src/c/matrixOperations/nnz/snnza.c33
-rw-r--r--src/c/matrixOperations/nnz/snnzs.c25
-rw-r--r--src/c/matrixOperations/nnz/znnza.c33
-rw-r--r--src/c/matrixOperations/nnz/znnzs.c26
-rw-r--r--src/c/matrixOperations/norm/dnorma.c12
-rw-r--r--src/c/matrixOperations/spec/Makefile.am70
-rw-r--r--src/c/matrixOperations/spec/Makefile.in755
-rw-r--r--src/c/matrixOperations/spec/cspeca.c34
-rw-r--r--src/c/matrixOperations/spec/dspeca.c71
-rw-r--r--src/c/matrixOperations/spec/sspeca.c34
-rw-r--r--src/c/matrixOperations/spec/testDoubleSpec.c116
-rw-r--r--src/c/matrixOperations/spec/testFloatSpec.c110
-rw-r--r--src/c/matrixOperations/spec/test_DoubleSpec/testDoubleSpec.vcxproj178
-rw-r--r--src/c/matrixOperations/spec/test_DoubleSpec/testDoubleSpec.vcxproj.filters22
-rw-r--r--src/c/matrixOperations/spec/test_FloatSpec/testFloatSpec.vcxproj178
-rw-r--r--src/c/matrixOperations/spec/test_FloatSpec/testFloatSpec.vcxproj.filters22
-rw-r--r--src/c/matrixOperations/spec/zspeca.c80
-rw-r--r--src/c/matrixOperations/spec2/Makefile.am70
-rw-r--r--src/c/matrixOperations/spec2/Makefile.in757
-rw-r--r--src/c/matrixOperations/spec2/cspec2a.c36
-rw-r--r--src/c/matrixOperations/spec2/dspec2a.c113
-rw-r--r--src/c/matrixOperations/spec2/sspec2a.c36
-rw-r--r--src/c/matrixOperations/spec2/testDoubleSpec2.c261
-rw-r--r--src/c/matrixOperations/spec2/testFloatSpec2.c134
-rw-r--r--src/c/matrixOperations/spec2/test_DoubleSpec2/testDoubleSpec2.vcxproj178
-rw-r--r--src/c/matrixOperations/spec2/test_DoubleSpec2/testDoubleSpec2.vcxproj.filters22
-rw-r--r--src/c/matrixOperations/spec2/test_FloatSpec2/testFloatSpec2.vcxproj178
-rw-r--r--src/c/matrixOperations/spec2/test_FloatSpec2/testFloatSpec2.vcxproj.filters22
-rw-r--r--src/c/matrixOperations/spec2/zspec2a.c96
-rw-r--r--src/c/matrixOperations/toeplitz/ctoeplitza.c36
-rw-r--r--src/c/matrixOperations/toeplitz/dtoeplitza.c33
-rw-r--r--src/c/matrixOperations/toeplitz/gtoeplitza.c35
-rw-r--r--src/c/matrixOperations/toeplitz/i16toeplitza.c32
-rw-r--r--src/c/matrixOperations/toeplitz/i8toeplitza.c33
-rw-r--r--src/c/matrixOperations/toeplitz/stoeplitza.c32
-rw-r--r--src/c/matrixOperations/toeplitz/u16toeplitza.c33
-rw-r--r--src/c/matrixOperations/toeplitz/u8toeplitza.c33
-rw-r--r--src/c/matrixOperations/toeplitz/ztoeplitza.c36
-rw-r--r--src/c/operations/addition/zadds.c1
-rw-r--r--src/c/scilab-arduino/cmd_analog_in_volt/u8cmd_analog_in_volts.c4
-rw-r--r--src/c/scilab-arduino/cmd_analog_out_volt/u8cmd_analog_out_volts.c6
-rw-r--r--src/c/scilab-arduino/cmd_dcmotor_release/u8cmd_dcmotor_releases.c8
-rw-r--r--src/c/scilab-arduino/cmd_i2c_dev/u8cmd_i2c_devs.cpp19
-rw-r--r--src/c/scilab-arduino/cmd_i2c_read/u8cmd_i2c_reads.cpp14
-rw-r--r--src/c/scilab-arduino/cmd_i2c_read_register/u8cmd_i2c_read_registers.cpp14
-rw-r--r--src/c/scilab-arduino/cmd_i2c_write/u8cmd_i2c_writes.cpp13
-rw-r--r--src/c/scilab-arduino/cmd_i2c_write_register/u8cmd_i2c_write_registers.cpp14
-rw-r--r--src/c/scilab-arduino/default_files/sci2c_arduino.ino4
-rw-r--r--src/c/scilab-arduino/includes/cmd_i2c_dev.h12
-rw-r--r--src/c/scilab-arduino/includes/cmd_i2c_read.h12
-rw-r--r--src/c/scilab-arduino/includes/cmd_i2c_read_register.h12
-rw-r--r--src/c/scilab-arduino/includes/cmd_i2c_write.h12
-rw-r--r--src/c/scilab-arduino/includes/cmd_i2c_write_register.h12
-rw-r--r--src/c/scilab-arduino/interfaces/int_cmd_i2c_dev.h12
-rw-r--r--src/c/scilab-arduino/interfaces/int_cmd_i2c_read.h12
-rw-r--r--src/c/scilab-arduino/interfaces/int_cmd_i2c_read_register.h12
-rw-r--r--src/c/scilab-arduino/interfaces/int_cmd_i2c_write.h12
-rw-r--r--src/c/scilab-arduino/interfaces/int_cmd_i2c_write_register.h12
-rw-r--r--src/c/signalProcessing/%k/dmodka.c25
-rw-r--r--src/c/signalProcessing/%sn/dmodsns.c10
-rw-r--r--src/c/signalProcessing/ell1mag/dell1maga.c2
-rw-r--r--src/c/signalProcessing/ell1mag/zell1maga.c11
-rw-r--r--src/c/signalProcessing/ffilt/gffilts.c9
-rw-r--r--src/c/signalProcessing/fsfirlin/dfsfirlina.c2
-rw-r--r--src/c/signalProcessing/sincd/dsincds.c1
-rw-r--r--src/c/signalProcessing/sincd/u8sincds.c5
-rw-r--r--src/c/signalProcessing/zmodsns.c161
-rw-r--r--src/c/signalProcessing/zpbutt/dzpbutts.c1
-rw-r--r--src/c/specialFunctions/erf/derfa.c25
-rw-r--r--src/c/specialFunctions/erf/derfs.c22
-rw-r--r--src/c/specialFunctions/erf/serfa.c25
-rw-r--r--src/c/specialFunctions/erf/serfs.c22
-rw-r--r--src/c/specialFunctions/erfc/derfca.c25
-rw-r--r--src/c/specialFunctions/erfc/derfcs.c22
-rw-r--r--src/c/specialFunctions/erfc/serfca.c25
-rw-r--r--src/c/specialFunctions/erfc/serfcs.c22
-rw-r--r--src/c/specialFunctions/erfcx/derfcxa.c26
-rw-r--r--src/c/specialFunctions/erfcx/derfcxs.c23
-rw-r--r--src/c/specialFunctions/erfcx/serfcxa.c26
-rw-r--r--src/c/specialFunctions/erfcx/serfcxs.c23
-rw-r--r--src/c/specialFunctions/erfinv/derfinva.c25
-rw-r--r--src/c/specialFunctions/erfinv/derfinvs.c49
-rw-r--r--src/c/specialFunctions/erfinv/serfinva.c25
-rw-r--r--src/c/specialFunctions/erfinv/serfinvs.c50
-rw-r--r--src/c/specialFunctions/includes/erf.h35
-rw-r--r--src/c/specialFunctions/includes/erfc.h36
-rw-r--r--src/c/specialFunctions/includes/erfcx.h37
-rw-r--r--src/c/specialFunctions/includes/erfinv.h35
-rw-r--r--src/c/specialFunctions/interfaces/int_erf.h32
-rw-r--r--src/c/specialFunctions/interfaces/int_erfc.h32
-rw-r--r--src/c/specialFunctions/interfaces/int_erfcx.h32
-rw-r--r--src/c/specialFunctions/interfaces/int_erfinv.h30
-rw-r--r--src/c/statisticsFunctions/includes/mad.h42
-rw-r--r--src/c/statisticsFunctions/includes/median.h46
-rw-r--r--src/c/statisticsFunctions/interfaces/int_mad.h35
-rw-r--r--src/c/statisticsFunctions/interfaces/int_median.h57
-rw-r--r--src/c/statisticsFunctions/mad/dmada.c38
-rw-r--r--src/c/statisticsFunctions/mad/dmadcola.c36
-rw-r--r--src/c/statisticsFunctions/mad/dmadrowa.c36
-rw-r--r--src/c/statisticsFunctions/mad/smada.c38
-rw-r--r--src/c/statisticsFunctions/mad/smadcola.c36
-rw-r--r--src/c/statisticsFunctions/mad/smadrowa.c36
-rw-r--r--src/c/statisticsFunctions/mad/zmada.c40
-rw-r--r--src/c/statisticsFunctions/mad/zmadcola.c36
-rw-r--r--src/c/statisticsFunctions/mad/zmadrowa.c36
-rw-r--r--src/c/statisticsFunctions/median/dmediana.c58
-rw-r--r--src/c/statisticsFunctions/median/dmediancola.c35
-rw-r--r--src/c/statisticsFunctions/median/dmedianrowa.c36
-rw-r--r--src/c/statisticsFunctions/median/smediana.c57
-rw-r--r--src/c/statisticsFunctions/median/smediancola.c35
-rw-r--r--src/c/statisticsFunctions/median/smedianrowa.c36
-rw-r--r--src/c/statisticsFunctions/median/u16mediana.c57
-rw-r--r--src/c/statisticsFunctions/median/u16mediancola.c35
-rw-r--r--src/c/statisticsFunctions/median/u16medianrowa.c36
-rw-r--r--src/c/statisticsFunctions/median/zmediana.c64
-rw-r--r--src/c/statisticsFunctions/median/zmediancola.c36
-rw-r--r--src/c/statisticsFunctions/median/zmedianrowa.c37
-rw-r--r--src/c/string/ascii/gasciia.c4
-rw-r--r--src/c/string/disp/zdispa.c2
-rw-r--r--src/c/string/disp/zdisps.c2
-rw-r--r--src/c/string/includes/ascii.h2
-rw-r--r--src/c/string/includes/disp.h1
-rw-r--r--src/c/string/interfaces/int_disp.h4
-rw-r--r--src/c/string/strcspn/gstrcspna.c45
-rw-r--r--src/c/type/doubleComplex.h16
-rw-r--r--src/c/type/floatComplex.h15
-rw-r--r--src/c/type/types.h2
-rwxr-xr-xsrc/python/serverWP.py203
304 files changed, 8184 insertions, 3822 deletions
diff --git a/src/c/auxiliaryFunctions/abs/zabss.c b/src/c/auxiliaryFunctions/abs/zabss.c
index 4e7b4dd..7ada57d 100644
--- a/src/c/auxiliaryFunctions/abs/zabss.c
+++ b/src/c/auxiliaryFunctions/abs/zabss.c
@@ -16,6 +16,7 @@
#include "sqrt.h"
#include "max.h"
#include "min.h"
+#include "doubleComplex.h"
double zabss(doubleComplex in) {
double real = dabss(zreals(in));
diff --git a/src/c/elementaryFunctions/includes/iscolumn.h b/src/c/elementaryFunctions/includes/iscolumn.h
new file mode 100644
index 0000000..e971176
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/iscolumn.h
@@ -0,0 +1,42 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#ifndef __ISCOLUMN_H__
+#define __ISCOLUMN_H__
+
+
+#include "types.h"
+#include "doubleComplex.h"
+#include "floatComplex.h"
+#include "uint16.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+char discolumna(double* , int);
+char discolumns(double);
+char siscolumna( float* , int);
+char siscolumns( float);
+char giscolumna(char* , int);
+char giscolumns(char);
+char ziscolumna(doubleComplex*, int);
+char ziscolumns(doubleComplex);
+char u16iscolumna(uint16*, int);
+char u16iscolumns(uint16);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif
diff --git a/src/c/elementaryFunctions/includes/isequal.h b/src/c/elementaryFunctions/includes/isequal.h
new file mode 100644
index 0000000..d22a804
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/isequal.h
@@ -0,0 +1,38 @@
+ /* 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 __ISEQUAL_H__
+#define __ISEQUAL_H__
+#include "types.h"
+#include "doubleComplex.h"
+#include "floatComplex.h"
+#include "uint16.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+char disequals(double inp1, double inp2);
+char disequala(double* inp1, int size1r, int size1c, double* inp2, int size2r, int size2c);
+char sisequals(float inp1, float inp2);
+char sisequala(float* inp1, int size1r, int size1c, float* inp2, int size2r, int size2c);
+char zisequals(doubleComplex inp1, doubleComplex inp2);
+char zisequala(doubleComplex* inp1, int size1r, int size1c, doubleComplex* inp2, int size2r, int size2c);
+char u16isequals(uint16 inp1, uint16 inp2);
+char u16isequala(uint16* inp1, int size1r, int size1c, uint16* inp2, int size2r, int size2c);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__ISEQUAL_H__*/
diff --git a/src/c/elementaryFunctions/includes/ismatrix.h b/src/c/elementaryFunctions/includes/ismatrix.h
new file mode 100644
index 0000000..0dd8b4a
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/ismatrix.h
@@ -0,0 +1,41 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#ifndef __ISMATRIX_H__
+#define __ISMATRIX_H__
+
+
+#include "types.h"
+#include "doubleComplex.h"
+#include "floatComplex.h"
+#include "uint16.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+char dismatrixa(double*);
+char dismatrixs(double);
+char sismatrixa(float*);
+char sismatrixs(float);
+char gismatrixa(char*);
+char gismatrixs(char);
+char zismatrixa(doubleComplex*);
+char zismatrixs(doubleComplex);
+char u16ismatrixa(uint16*);
+char u16ismatrixs(uint16);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif
diff --git a/src/c/elementaryFunctions/includes/isrow.h b/src/c/elementaryFunctions/includes/isrow.h
new file mode 100644
index 0000000..2de7da3
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/isrow.h
@@ -0,0 +1,41 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#ifndef __ISROW_H__
+#define __ISROW_H__
+
+
+#include "types.h"
+#include "doubleComplex.h"
+#include "floatComplex.h"
+#include "uint16.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+char disrowa(double* , int);
+char disrows(double);
+char sisrowa( float* , int);
+char sisrows( float);
+char gisrowa(char* , int);
+char gisrows(char);
+char zisrowa(doubleComplex*, int);
+char zisrows(doubleComplex);
+char u16isrowa(uint16*, int);
+char u16isrows(uint16);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif
diff --git a/src/c/elementaryFunctions/includes/isscalar.h b/src/c/elementaryFunctions/includes/isscalar.h
new file mode 100644
index 0000000..f488043
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/isscalar.h
@@ -0,0 +1,38 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#ifndef __ISSCALAR_H__
+#define __ISSCALAR_H__
+
+
+#include "types.h"
+#include "doubleComplex.h"
+#include "floatComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+char disscalara(double* , int);
+char disscalars(double);
+char sisscalara( float* , int);
+char sisscalars( float);
+char gisscalara(char* , int);
+char gisscalars(char);
+char zisscalara(doubleComplex*, int);
+char zisscalars(doubleComplex);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif
diff --git a/src/c/elementaryFunctions/includes/issquare.h b/src/c/elementaryFunctions/includes/issquare.h
new file mode 100644
index 0000000..70e4c45
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/issquare.h
@@ -0,0 +1,38 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#ifndef __ISSQUARE_H__
+#define __ISSQUARE_H__
+
+
+#include "types.h"
+#include "doubleComplex.h"
+#include "floatComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+char dissquarea(double* , int, int);
+char dissquares(double);
+char sissquarea( float* , int, int);
+char sissquares( float);
+char gissquarea(char* , int, int);
+char gissquares(char);
+char zissquarea(doubleComplex*, int, int);
+char zissquares(doubleComplex);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif
diff --git a/src/c/elementaryFunctions/includes/isvector.h b/src/c/elementaryFunctions/includes/isvector.h
new file mode 100644
index 0000000..75599cd
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/isvector.h
@@ -0,0 +1,38 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#ifndef __ISVECTOR_H__
+#define __ISVECTOR_H__
+
+
+#include "types.h"
+#include "doubleComplex.h"
+#include "floatComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+char disvectora(double* , int, int);
+char disvectors(double);
+char sisvectora( float* , int, int);
+char sisvectors( float);
+char gisvectora(char* , int, int );
+char gisvectors(char);
+char zisvectora(doubleComplex*, int, int);
+char zisvectors(doubleComplex);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif
diff --git a/src/c/elementaryFunctions/includes/nanmax.h b/src/c/elementaryFunctions/includes/nanmax.h
new file mode 100644
index 0000000..bea83f7
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/nanmax.h
@@ -0,0 +1,40 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#ifndef __NANMAX_H__
+#define __NANMAX_H__
+
+
+#include "types.h"
+#include "doubleComplex.h"
+#include "floatComplex.h"
+#include "int16.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+double dnanmaxa (double* , int);
+void dnanmaxrowa (double*, int , int, double*);
+void dnanmaxcola (double*, int , int, double*);
+
+float snanmaxa (float* , int);
+void snanmaxrowa (float*, int , int, float*);
+void snanmaxcola (float*, int , int, float*);
+
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif
diff --git a/src/c/elementaryFunctions/includes/nthroot.h b/src/c/elementaryFunctions/includes/nthroot.h
new file mode 100644
index 0000000..62b533a
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/nthroot.h
@@ -0,0 +1,37 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#ifndef __NTHROOT_H__
+#define __NTHROOT_H__
+
+
+#include "types.h"
+#include "doubleComplex.h"
+#include "floatComplex.h"
+#include "uint16.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void dnthroota(double* , int ,int , double*, int , int, double*);
+void dnthroot1a(double*, int , int, double, double*);
+double dnthroots(double, double);
+void snthroota(float* , int ,int , float*, int , int, double*);
+void snthroot1a(float*, int , int, float, double*);
+double snthroots(float, float);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif
diff --git a/src/c/elementaryFunctions/includes/pmodulo.h b/src/c/elementaryFunctions/includes/pmodulo.h
new file mode 100644
index 0000000..d46febc
--- /dev/null
+++ b/src/c/elementaryFunctions/includes/pmodulo.h
@@ -0,0 +1,40 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#ifndef __PMODULO_H__
+#define __PMODULO_H__
+
+
+#include "types.h"
+#include "doubleComplex.h"
+#include "floatComplex.h"
+#include "int16.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void dpmoduloa(double*, int ,double*, double*);
+double dpmodulos(double, double);
+
+void spmoduloa(float*, int ,float*, float*);
+float spmodulos(float, float);
+
+void i16pmoduloa(int16*, int ,int16*, int16*);
+int16 i16pmodulos(int16, int16);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif
diff --git a/src/c/elementaryFunctions/includes/pow.h b/src/c/elementaryFunctions/includes/pow.h
index de1eb40..2905b7e 100644
--- a/src/c/elementaryFunctions/includes/pow.h
+++ b/src/c/elementaryFunctions/includes/pow.h
@@ -15,6 +15,11 @@
#include "dynlib_elementaryfunctions.h"
#include "multiplication.h"
+#include "floatComplex.h"
+#include "doubleComplex.h"
+#include "uint8.h"
+#include "uint16.h"
+#include "int16.h"
#ifdef __cplusplus
extern "C" {
diff --git a/src/c/elementaryFunctions/interfaces/int_iscolumn.h b/src/c/elementaryFunctions/interfaces/int_iscolumn.h
new file mode 100644
index 0000000..e1011d7
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_iscolumn.h
@@ -0,0 +1,29 @@
+ /*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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+
+#ifndef __INT_ISCOLUMN_H__
+#define __INT_ISCOLUMN_H__
+
+#define d2iscolumng0(in,size ) discolumna(in, size[1])
+#define d0iscolumng0(in) discolumns(in)
+#define s2iscolumng0(in,size) siscolumna(in, size[1])
+#define s0iscolumng0(in) siscolumns(in)
+#define g2iscolumng0(in,size) giscolumna(in, size[1])
+#define g0iscolumng0(in) giscolumns(in)
+#define z2iscolumng0(in,size) ziscolumna(in , size[1])
+#define z0iscolumng0(in) ziscolumns(in)
+#define u162iscolumng0(in,size) u16iscolumna(in , size[1])
+#define u160iscolumng0(in) u16iscolumns(in)
+
+
+
+#endif
diff --git a/src/c/elementaryFunctions/interfaces/int_isequal.h b/src/c/elementaryFunctions/interfaces/int_isequal.h
new file mode 100644
index 0000000..d22ab65
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_isequal.h
@@ -0,0 +1,35 @@
+ /* 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_ISEQUAL_H__
+#define __INT_ISEQUAL_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+#define d0d0isequalg0(in1,in2) disequals(in1,in2)
+#define d2d2isequalg0(in1, s1, in2, s2) disequala(in1, s1[0], s1[1], in2, s2[0], s2[1])
+#define s0s0isequalg0(in1,in2) sisequals(in1,in2)
+#define s2s2isequalg0(in1, s1, in2, s2) sisequala(in1, s1[0], s1[1], in2, s2[0], s2[1])
+#define z0z0isequalg0(in1,in2) zisequals(in1,in2)
+#define z2z2isequalg0(in1, s1, in2, s2) zisequala(in1, s1[0], s1[1], in2, s2[0], s2[1])
+#define u160u160isequalg0(in1,in2) u16isequals(in1,in2)
+#define u162u162isequalg0(in1, s1, in2, s2) u16isequala(in1, s1[0], s1[1], in2, s2[0], s2[1])
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_ISEQUAL_H__*/
diff --git a/src/c/elementaryFunctions/interfaces/int_ismatrix.h b/src/c/elementaryFunctions/interfaces/int_ismatrix.h
new file mode 100644
index 0000000..96352d1
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_ismatrix.h
@@ -0,0 +1,28 @@
+ /*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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+
+#ifndef __INT_ISMATRIX_H__
+#define __INT_ISMATRIX_H__
+
+#define d2ismatrixg0(in, size ) dismatrixa(in)
+#define d0ismatrixg0(in) dismatrixs(in)
+#define s2ismatrixg0(in , size) sismatrixa(in)
+#define s0ismatrixg0(in) sismatrixs(in)
+#define g2ismatrixg0(in, size) gismatrixa(in)
+#define g0ismatrixg0(in) gismatrixs(in)
+#define z2ismatrixg0(in, size) zismatrixa(in)
+#define z0ismatrixg0(in) zismatrixs(in)
+#define u162ismatrixg0(in, size) u16ismatrixa(in)
+#define u160ismatrixg0(in) u16ismatrixs(in)
+
+
+#endif
diff --git a/src/c/elementaryFunctions/interfaces/int_isrow.h b/src/c/elementaryFunctions/interfaces/int_isrow.h
new file mode 100644
index 0000000..9298de9
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_isrow.h
@@ -0,0 +1,29 @@
+ /*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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+
+#ifndef __INT_ISROW_H__
+#define __INT_ISROW_H__
+
+#define d2isrowg0(in, size ) disrowa(in, size[0])
+#define d0isrowg0(in) disrows(in)
+#define s2isrowg0(in , size) sisrowa(in, size[0])
+#define s0isrowg0(in) sisrows(in)
+#define g2isrowg0(in, size) gisrowa(in, size[0])
+#define g0isrowg0(in) gisrows(in)
+#define z2isrowg0(in, size) zisrowa(in , size[0])
+#define z0isrowg0(in) zisrows(in)
+#define u162isrowg0(in, size) u16isrowa(in , size[0])
+#define u160isrowg0(in) u16isrows(in)
+
+
+
+#endif
diff --git a/src/c/elementaryFunctions/interfaces/int_isscalar.h b/src/c/elementaryFunctions/interfaces/int_isscalar.h
new file mode 100644
index 0000000..0b25be1
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_isscalar.h
@@ -0,0 +1,26 @@
+ /*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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+
+#ifndef __INT_ISSCALAR_H__
+#define __INT_ISSCALAR_H__
+
+#define d2isscalarg0(in, size ) disscalara(in, size[0])
+#define d0isscalarg0(in) disscalars(in)
+#define s2isscalarg0(in , size) sisscalara(in, size[0])
+#define s0isscalarg0(in) sisscalars(in)
+#define g2isscalarg0(in, size) gisscalara(in, size[0])
+#define g0isscalarg0(in) gisscalars(in)
+#define z2isscalarg0(in, size) zisscalara(in , size[0])
+#define z0isscalarg0(in) zisscalars(in)
+
+
+#endif
diff --git a/src/c/elementaryFunctions/interfaces/int_issquare.h b/src/c/elementaryFunctions/interfaces/int_issquare.h
new file mode 100644
index 0000000..0535788
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_issquare.h
@@ -0,0 +1,25 @@
+ /*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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+
+#ifndef __INT_ISSQUARE_H__
+#define __INT_ISSQUARE_H__
+
+#define d2issquareg0(in, size ) dissquarea(in, size[0], size[1])
+#define d0issquareg0(in) dissquares(in)
+#define s2issquareg0(in , size) sissquarea(in, size[0], size[1])
+#define s0issquareg0(in) sissquares(in)
+#define g2issquareg0(in, size) gissquarea(in, size[0], size[1])
+#define g0issquareg0(in) gissquares(in)
+#define z2issquareg0(in, size) zissquarea(in , size[0], size[1])
+#define z0issquareg0(in) zissquares(in)
+
+#endif
diff --git a/src/c/elementaryFunctions/interfaces/int_isvector.h b/src/c/elementaryFunctions/interfaces/int_isvector.h
new file mode 100644
index 0000000..a4edaea
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_isvector.h
@@ -0,0 +1,26 @@
+ /*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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+
+#ifndef __INT_ISVECTOR_H__
+#define __INT_ISVECTOR_H__
+
+#define d2isvectorg0(in, size ) disvectora(in, size[0], size[1])
+#define d0isvectorg0(in) disvectors(in)
+#define s2isvectorg0(in , size) sisvectora(in, size[0], size[1])
+#define s0isvectorg0(in) sisvectors(in)
+#define g2isvectorg0(in, size) gisvectora(in, size[0], size[1])
+#define g0isvectorg0(in) gisvectors(in)
+#define z2isvectorg0(in, size) zisvectora(in , size[0], size[1])
+#define z0isvectorg0(in) zisvectors(in)
+
+
+#endif
diff --git a/src/c/elementaryFunctions/interfaces/int_nanmax.h b/src/c/elementaryFunctions/interfaces/int_nanmax.h
new file mode 100644
index 0000000..dd3df71
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_nanmax.h
@@ -0,0 +1,27 @@
+ /*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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+
+#ifndef __INT_NANMAX_H__
+#define __INT_NANMAX_H__
+
+#define d2nanmaxd0(in1, size) dnanmaxa(in1,size[0]* size[1])
+#define d2g2nanmaxd2(in1, size1, in2, size2, out) (in2[0]=='r') ? dnanmaxrowa(in1, size1[0], size1[1], out) : dnanmaxcola(in1, size1[0] , size1[1], out)
+
+#define s2nanmaxs0(in1, size) snanmaxa(in1,size[0]* size[1])
+#define s2g2nanmaxs2(in1, size1, in2, size2, out) (in2[0]=='r') ? snanmaxrowa(in1, size1[0], size1[1], out) : snanmaxcola(in1, size1[0] , size1[1], out)
+
+
+//#define i160i160pmoduloi160(in1, in2) i16pmodulos(in1,in2)
+//#define i162i162pmoduloi162(in1, size1, in2, size2, out) i16pmoduloa(in1,size1[0]*size1[1],in2, out)
+
+
+#endif
diff --git a/src/c/elementaryFunctions/interfaces/int_nthroot.h b/src/c/elementaryFunctions/interfaces/int_nthroot.h
new file mode 100644
index 0000000..aa48fcc
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_nthroot.h
@@ -0,0 +1,23 @@
+ /*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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+
+#ifndef __INT_NTHROOT_H__
+#define __INT_NTHROOT_H__
+
+#define d2d2nthrootd2(in1, size1, in2, size2, out) dnthroota(in1, size1[0], size1[1], in2, size2[0], size2[1], out)
+#define d2d0nthrootd2(in1, size1, in2, out) dnthroot1a(in1, size1[0], size1[1], in2, out)
+#define d0d0nthrootd0(in1, in2) dnthroots(in1, in2)
+#define s2s2nthrootd2(in1, size1, in2, size2, out) snthroota(in1, size1[0], size1[1], in2, size2[0], size2[1], out)
+#define s2s0nthrootd2(in1, size1, in2, out) snthroot1a(in1, size1[0], size1[1], in2, out)
+#define s0s0nthrootd0(in1, in2) snthroots(in1, in2)
+
+#endif
diff --git a/src/c/elementaryFunctions/interfaces/int_pmodulo.h b/src/c/elementaryFunctions/interfaces/int_pmodulo.h
new file mode 100644
index 0000000..72b1277
--- /dev/null
+++ b/src/c/elementaryFunctions/interfaces/int_pmodulo.h
@@ -0,0 +1,26 @@
+ /*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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+
+#ifndef __INT_PMODULO_H__
+#define __INT_PMODULO_H__
+
+#define d0d0pmodulod0(in1, in2) dpmodulos(in1,in2)
+#define d2d2pmodulod2(in1, size1, in2, size2, out) dpmoduloa(in1,size1[0]*size1[1],in2, out)
+
+#define s0s0pmodulos0(in1, in2) spmodulos(in1,in2)
+#define s2s2pmodulos2(in1, size1, in2, size2, out) spmoduloa(in1,size1[0]*size1[1],in2, out)
+
+#define i160i160pmoduloi160(in1, in2) i16pmodulos(in1,in2)
+#define i162i162pmoduloi162(in1, size1, in2, size2, out) i16pmoduloa(in1,size1[0]*size1[1],in2, out)
+
+
+#endif
diff --git a/src/c/elementaryFunctions/iscolumn/discolumna.c b/src/c/elementaryFunctions/iscolumn/discolumna.c
new file mode 100644
index 0000000..8bebfca
--- /dev/null
+++ b/src/c/elementaryFunctions/iscolumn/discolumna.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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "iscolumn.h"
+#include "types.h"
+char discolumna(double* inp, int size1)
+{
+ char out= 'F' ;
+ if(size1==1)
+ {
+ out = 'T';
+ }
+ return out;
+}
diff --git a/src/c/elementaryFunctions/iscolumn/discolumns.c b/src/c/elementaryFunctions/iscolumn/discolumns.c
new file mode 100644
index 0000000..b81074b
--- /dev/null
+++ b/src/c/elementaryFunctions/iscolumn/discolumns.c
@@ -0,0 +1,24 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "iscolumn.h"
+#include "types.h"
+
+char discolumns(double inp)
+{
+ char out='T';
+
+ return out;
+}
diff --git a/src/c/elementaryFunctions/iscolumn/giscolumna.c b/src/c/elementaryFunctions/iscolumn/giscolumna.c
new file mode 100644
index 0000000..db6ff43
--- /dev/null
+++ b/src/c/elementaryFunctions/iscolumn/giscolumna.c
@@ -0,0 +1,27 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "iscolumn.h"
+#include "types.h"
+#include "string.h"
+char giscolumna(char *inp, int size1)
+{
+ char out='F';
+ if(size1==1)
+ {
+ out = 'T';
+ }
+ return out;
+}
diff --git a/src/c/elementaryFunctions/iscolumn/giscolumns.c b/src/c/elementaryFunctions/iscolumn/giscolumns.c
new file mode 100644
index 0000000..57b93e9
--- /dev/null
+++ b/src/c/elementaryFunctions/iscolumn/giscolumns.c
@@ -0,0 +1,24 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "iscolumn.h"
+#include "types.h"
+
+char giscolumns(char inp)
+{
+ char out='T';
+
+ return out;
+}
diff --git a/src/c/elementaryFunctions/iscolumn/siscolumna.c b/src/c/elementaryFunctions/iscolumn/siscolumna.c
new file mode 100644
index 0000000..ed4ee5b
--- /dev/null
+++ b/src/c/elementaryFunctions/iscolumn/siscolumna.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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "iscolumn.h"
+#include "types.h"
+char siscolumna(float* inp, int size1)
+{
+ char out='F';
+ if(size1==1)
+ {
+ out = 'T';
+ }
+ return out;
+}
diff --git a/src/c/elementaryFunctions/iscolumn/siscolumns.c b/src/c/elementaryFunctions/iscolumn/siscolumns.c
new file mode 100644
index 0000000..ebb89e1
--- /dev/null
+++ b/src/c/elementaryFunctions/iscolumn/siscolumns.c
@@ -0,0 +1,24 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "iscolumn.h"
+#include "types.h"
+
+char siscolumns(float inp)
+{
+ char out='T';
+
+ return out;
+}
diff --git a/src/c/elementaryFunctions/iscolumn/u16iscolumna.c b/src/c/elementaryFunctions/iscolumn/u16iscolumna.c
new file mode 100644
index 0000000..ef0821d
--- /dev/null
+++ b/src/c/elementaryFunctions/iscolumn/u16iscolumna.c
@@ -0,0 +1,27 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "iscolumn.h"
+#include "types.h"
+#include "uint16.h"
+char u16iscolumna(uint16* inp, int size1)
+{
+ char out='F';
+ if(size1==1)
+ {
+ out = 'T';
+ }
+ return out;
+}
diff --git a/src/c/elementaryFunctions/iscolumn/u16iscolumns.c b/src/c/elementaryFunctions/iscolumn/u16iscolumns.c
new file mode 100644
index 0000000..7a17464
--- /dev/null
+++ b/src/c/elementaryFunctions/iscolumn/u16iscolumns.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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "iscolumn.h"
+#include "types.h"
+#include "uint16.h"
+
+char u16iscolumns(uint16 inp)
+{
+ char out='T';
+
+ return out;
+}
diff --git a/src/c/elementaryFunctions/iscolumn/ziscolumna.c b/src/c/elementaryFunctions/iscolumn/ziscolumna.c
new file mode 100644
index 0000000..a1aca1b
--- /dev/null
+++ b/src/c/elementaryFunctions/iscolumn/ziscolumna.c
@@ -0,0 +1,28 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "doubleComplex.h"
+#include "iscolumn.h"
+#include "types.h"
+
+char ziscolumna(doubleComplex *inp, int size1)
+{
+ char out='F';
+ if(size1==1)
+ {
+ out = 'T';
+ }
+ return out;
+}
diff --git a/src/c/elementaryFunctions/iscolumn/ziscolumns.c b/src/c/elementaryFunctions/iscolumn/ziscolumns.c
new file mode 100644
index 0000000..f1d2850
--- /dev/null
+++ b/src/c/elementaryFunctions/iscolumn/ziscolumns.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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "iscolumn.h"
+#include "types.h"
+#include "doubleComplex.h"
+
+char ziscolumns(doubleComplex inp)
+{
+ char out='T';
+
+ return out;
+}
diff --git a/src/c/elementaryFunctions/isequal/disequala.c b/src/c/elementaryFunctions/isequal/disequala.c
new file mode 100644
index 0000000..8781ac7
--- /dev/null
+++ b/src/c/elementaryFunctions/isequal/disequala.c
@@ -0,0 +1,39 @@
+/* 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 <isreal.h>
+
+char disequala(double* inp1, int size1r, int size1c, double* inp2, int size2r, int size2c)
+{
+ if ((size1r != size2r) && (size1c != size2c))
+ return 'F';
+ else
+ {
+ int i, f = 0;
+ for (i = 0; i<size1r*size1c; i++)
+ {
+ if (inp1[i] != inp2[i])
+ {
+ f = 1;
+ break;
+ }
+ }
+
+ if (f == 1)
+ return 'F';
+ else
+ return 'T';
+ }
+}
+
diff --git a/src/c/elementaryFunctions/isequal/disequals.c b/src/c/elementaryFunctions/isequal/disequals.c
new file mode 100644
index 0000000..319c330
--- /dev/null
+++ b/src/c/elementaryFunctions/isequal/disequals.c
@@ -0,0 +1,24 @@
+/* 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 <isreal.h>
+
+char disequals(double inp1, double inp2)
+{
+ if (inp1 == inp2)
+ return 'T';
+ else
+ return 'F';
+}
+
diff --git a/src/c/elementaryFunctions/isequal/sisequala.c b/src/c/elementaryFunctions/isequal/sisequala.c
new file mode 100644
index 0000000..2634efd
--- /dev/null
+++ b/src/c/elementaryFunctions/isequal/sisequala.c
@@ -0,0 +1,39 @@
+/* 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 <isreal.h>
+
+char sisequala(float* inp1, int size1r, int size1c, float* inp2, int size2r, int size2c)
+{
+ if ((size1r != size2r) && (size1c != size2c))
+ return 'F';
+ else
+ {
+ int i, f = 0;
+ for (i = 0; i<size1r*size1c; i++)
+ {
+ if (inp1[i] != inp2[i])
+ {
+ f = 1;
+ break;
+ }
+ }
+
+ if (f == 1)
+ return 'F';
+ else
+ return 'T';
+ }
+}
+
diff --git a/src/c/elementaryFunctions/isequal/sisequals.c b/src/c/elementaryFunctions/isequal/sisequals.c
new file mode 100644
index 0000000..66bef36
--- /dev/null
+++ b/src/c/elementaryFunctions/isequal/sisequals.c
@@ -0,0 +1,24 @@
+/* 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 <isreal.h>
+
+char sisequals(float inp1, float inp2)
+{
+ if (inp1 == inp2)
+ return 'T';
+ else
+ return 'F';
+}
+
diff --git a/src/c/elementaryFunctions/isequal/u16isequala.c b/src/c/elementaryFunctions/isequal/u16isequala.c
new file mode 100644
index 0000000..62de1e8
--- /dev/null
+++ b/src/c/elementaryFunctions/isequal/u16isequala.c
@@ -0,0 +1,40 @@
+/* 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 <isreal.h>
+#include "uint16.h"
+
+char u16isequala(uint16* inp1, int size1r, int size1c, uint16* inp2, int size2r, int size2c)
+{
+ if ((size1r != size2r) && (size1c != size2c))
+ return 'F';
+ else
+ {
+ int i, f = 0;
+ for (i = 0; i<size1r*size1c; i++)
+ {
+ if (inp1[i] != inp2[i])
+ {
+ f = 1;
+ break;
+ }
+ }
+
+ if (f == 1)
+ return 'F';
+ else
+ return 'T';
+ }
+}
+
diff --git a/src/c/elementaryFunctions/isequal/u16isequals.c b/src/c/elementaryFunctions/isequal/u16isequals.c
new file mode 100644
index 0000000..4f797d4
--- /dev/null
+++ b/src/c/elementaryFunctions/isequal/u16isequals.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 <isreal.h>
+#include "uint16.h"
+
+char u16isequals(uint16 inp1, uint16 inp2)
+{
+ if (inp1 == inp2)
+ return 'T';
+ else
+ return 'F';
+}
+
diff --git a/src/c/elementaryFunctions/isequal/zisequala.c b/src/c/elementaryFunctions/isequal/zisequala.c
new file mode 100644
index 0000000..13d241f
--- /dev/null
+++ b/src/c/elementaryFunctions/isequal/zisequala.c
@@ -0,0 +1,40 @@
+/* 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 <isreal.h>
+#include "doubleComplex.h"
+
+char zisequala(doubleComplex* inp1, int size1r, int size1c, doubleComplex* inp2, int size2r, int size2c)
+{
+ if ((size1r != size2r) && (size1c != size2c))
+ return 'F';
+ else
+ {
+ int i, f = 0;
+ for (i = 0; i<size1r*size1c; i++)
+ {
+ if (!(zisequals(inp1[i],inp2[i])))
+ {
+ f = 1;
+ break;
+ }
+ }
+
+ if (f == 1)
+ return 'F';
+ else
+ return 'T';
+ }
+}
+
diff --git a/src/c/elementaryFunctions/isequal/zisequals.c b/src/c/elementaryFunctions/isequal/zisequals.c
new file mode 100644
index 0000000..6914dc8
--- /dev/null
+++ b/src/c/elementaryFunctions/isequal/zisequals.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 <isreal.h>
+#include "doubleComplex.h"
+
+char zisequals(doubleComplex inp1, doubleComplex inp2)
+{
+ if ((zreals(inp1) == zreals(inp2)) && (zimags(inp1) == zimags(inp2)))
+ return 'T';
+ else
+ return 'F';
+}
+
diff --git a/src/c/elementaryFunctions/ismatrix/dismatrixa.c b/src/c/elementaryFunctions/ismatrix/dismatrixa.c
new file mode 100644
index 0000000..4fe7d19
--- /dev/null
+++ b/src/c/elementaryFunctions/ismatrix/dismatrixa.c
@@ -0,0 +1,22 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "ismatrix.h"
+#include "types.h"
+char dismatrixa(double* in)
+{
+ char out= 'T' ;
+ return out;
+}
diff --git a/src/c/elementaryFunctions/ismatrix/dismatrixs.c b/src/c/elementaryFunctions/ismatrix/dismatrixs.c
new file mode 100644
index 0000000..15edcf2
--- /dev/null
+++ b/src/c/elementaryFunctions/ismatrix/dismatrixs.c
@@ -0,0 +1,22 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "ismatrix.h"
+#include "types.h"
+char dismatrixs(double in)
+{
+ char out= 'T' ;
+ return out;
+}
diff --git a/src/c/elementaryFunctions/ismatrix/gismatrixa.c b/src/c/elementaryFunctions/ismatrix/gismatrixa.c
new file mode 100644
index 0000000..f728814
--- /dev/null
+++ b/src/c/elementaryFunctions/ismatrix/gismatrixa.c
@@ -0,0 +1,22 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "ismatrix.h"
+#include "types.h"
+char gismatrixa(char* in)
+{
+ char out= 'T' ;
+ return out;
+}
diff --git a/src/c/elementaryFunctions/ismatrix/gismatrixs.c b/src/c/elementaryFunctions/ismatrix/gismatrixs.c
new file mode 100644
index 0000000..61a3062
--- /dev/null
+++ b/src/c/elementaryFunctions/ismatrix/gismatrixs.c
@@ -0,0 +1,22 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "ismatrix.h"
+#include "types.h"
+char gismatrixs(char in)
+{
+ char out= 'T' ;
+ return out;
+}
diff --git a/src/c/elementaryFunctions/ismatrix/sismatrixa.c b/src/c/elementaryFunctions/ismatrix/sismatrixa.c
new file mode 100644
index 0000000..44335b8
--- /dev/null
+++ b/src/c/elementaryFunctions/ismatrix/sismatrixa.c
@@ -0,0 +1,22 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "ismatrix.h"
+#include "types.h"
+char sismatrixa(float* in)
+{
+ char out= 'T' ;
+ return out;
+}
diff --git a/src/c/elementaryFunctions/ismatrix/sismatrixs.c b/src/c/elementaryFunctions/ismatrix/sismatrixs.c
new file mode 100644
index 0000000..d6c6f23
--- /dev/null
+++ b/src/c/elementaryFunctions/ismatrix/sismatrixs.c
@@ -0,0 +1,22 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "ismatrix.h"
+#include "types.h"
+char sismatrixs(float in)
+{
+ char out= 'T' ;
+ return out;
+}
diff --git a/src/c/elementaryFunctions/ismatrix/u16ismatrixa.c b/src/c/elementaryFunctions/ismatrix/u16ismatrixa.c
new file mode 100644
index 0000000..c16d54c
--- /dev/null
+++ b/src/c/elementaryFunctions/ismatrix/u16ismatrixa.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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "ismatrix.h"
+#include "types.h"
+#include "uint16.h"
+char u16ismatrixa(uint16* in)
+{
+ char out= 'T' ;
+ return out;
+}
diff --git a/src/c/elementaryFunctions/ismatrix/u16ismatrixs.c b/src/c/elementaryFunctions/ismatrix/u16ismatrixs.c
new file mode 100644
index 0000000..6431357
--- /dev/null
+++ b/src/c/elementaryFunctions/ismatrix/u16ismatrixs.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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "ismatrix.h"
+#include "types.h"
+#include "uint16.h"
+char u16ismatrixs(uint16 in)
+{
+ char out= 'T' ;
+ return out;
+}
diff --git a/src/c/elementaryFunctions/ismatrix/zismatrixa.c b/src/c/elementaryFunctions/ismatrix/zismatrixa.c
new file mode 100644
index 0000000..32d7260
--- /dev/null
+++ b/src/c/elementaryFunctions/ismatrix/zismatrixa.c
@@ -0,0 +1,24 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "ismatrix.h"
+#include "types.h"
+#include "uint16.h"
+#include "doubleComplex.h"
+char zismatrixa(doubleComplex* in)
+{
+ char out= 'T' ;
+ return out;
+}
diff --git a/src/c/elementaryFunctions/ismatrix/zismatrixs.c b/src/c/elementaryFunctions/ismatrix/zismatrixs.c
new file mode 100644
index 0000000..d38592c
--- /dev/null
+++ b/src/c/elementaryFunctions/ismatrix/zismatrixs.c
@@ -0,0 +1,24 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "ismatrix.h"
+#include "types.h"
+#include "uint16.h"
+#include "doubleComplex.h"
+char zismatrixs(doubleComplex in)
+{
+ char out= 'T' ;
+ return out;
+}
diff --git a/src/c/elementaryFunctions/isrow/disrowa.c b/src/c/elementaryFunctions/isrow/disrowa.c
new file mode 100644
index 0000000..826afca
--- /dev/null
+++ b/src/c/elementaryFunctions/isrow/disrowa.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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "isrow.h"
+#include "types.h"
+char disrowa(double* inp, int size1)
+{
+ char out= 'F' ;
+ if(size1==1)
+ {
+ out = 'T';
+ }
+ return out;
+}
diff --git a/src/c/elementaryFunctions/isrow/disrows.c b/src/c/elementaryFunctions/isrow/disrows.c
new file mode 100644
index 0000000..e3bdadb
--- /dev/null
+++ b/src/c/elementaryFunctions/isrow/disrows.c
@@ -0,0 +1,24 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "isrow.h"
+#include "types.h"
+
+char disrows(double inp)
+{
+ double out='T';
+
+ return out;
+}
diff --git a/src/c/elementaryFunctions/isrow/gisrowa.c b/src/c/elementaryFunctions/isrow/gisrowa.c
new file mode 100644
index 0000000..c62350f
--- /dev/null
+++ b/src/c/elementaryFunctions/isrow/gisrowa.c
@@ -0,0 +1,27 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "isrow.h"
+#include "types.h"
+#include "string.h"
+char gisrowa(char *inp, int size1)
+{
+ char out='F';
+ if(size1==1)
+ {
+ out = 'T';
+ }
+ return out;
+}
diff --git a/src/c/elementaryFunctions/isrow/gisrows.c b/src/c/elementaryFunctions/isrow/gisrows.c
new file mode 100644
index 0000000..a4393bd
--- /dev/null
+++ b/src/c/elementaryFunctions/isrow/gisrows.c
@@ -0,0 +1,24 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "isrow.h"
+#include "types.h"
+
+char gisrows(char inp)
+{
+ char out='T';
+
+ return out;
+}
diff --git a/src/c/elementaryFunctions/isrow/sisrowa.c b/src/c/elementaryFunctions/isrow/sisrowa.c
new file mode 100644
index 0000000..bf9d4c3
--- /dev/null
+++ b/src/c/elementaryFunctions/isrow/sisrowa.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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "isrow.h"
+#include "types.h"
+char sisrowa(float* inp, int size1)
+{
+ char out='F';
+ if(size1==1)
+ {
+ out = 'T';
+ }
+ return out;
+}
diff --git a/src/c/elementaryFunctions/isrow/sisrows.c b/src/c/elementaryFunctions/isrow/sisrows.c
new file mode 100644
index 0000000..331e0a9
--- /dev/null
+++ b/src/c/elementaryFunctions/isrow/sisrows.c
@@ -0,0 +1,24 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "isrow.h"
+#include "types.h"
+
+char sisrows(float inp)
+{
+ char out='T';
+
+ return out;
+}
diff --git a/src/c/elementaryFunctions/isrow/u16isrowa.c b/src/c/elementaryFunctions/isrow/u16isrowa.c
new file mode 100644
index 0000000..3ddbb0f
--- /dev/null
+++ b/src/c/elementaryFunctions/isrow/u16isrowa.c
@@ -0,0 +1,27 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "isrow.h"
+#include "types.h"
+#include "uint16.h"
+char u16isrowa(uint16* inp, int size1)
+{
+ char out='F';
+ if(size1==1)
+ {
+ out = 'T';
+ }
+ return out;
+}
diff --git a/src/c/elementaryFunctions/isrow/u16isrows.c b/src/c/elementaryFunctions/isrow/u16isrows.c
new file mode 100644
index 0000000..2942dd3
--- /dev/null
+++ b/src/c/elementaryFunctions/isrow/u16isrows.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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "isrow.h"
+#include "types.h"
+#include "uint16.h"
+
+char u16isrows(uint16 inp)
+{
+ char out='T';
+
+ return out;
+}
diff --git a/src/c/elementaryFunctions/isrow/zisrowa.c b/src/c/elementaryFunctions/isrow/zisrowa.c
new file mode 100644
index 0000000..312ddf5
--- /dev/null
+++ b/src/c/elementaryFunctions/isrow/zisrowa.c
@@ -0,0 +1,28 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "doubleComplex.h"
+#include "isrow.h"
+#include "types.h"
+
+char zisrowa(doubleComplex *inp, int size1)
+{
+ char out='F';
+ if(size1==1)
+ {
+ out = 'T';
+ }
+ return out;
+}
diff --git a/src/c/elementaryFunctions/isrow/zisrows.c b/src/c/elementaryFunctions/isrow/zisrows.c
new file mode 100644
index 0000000..96e671a
--- /dev/null
+++ b/src/c/elementaryFunctions/isrow/zisrows.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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "isrow.h"
+#include "types.h"
+#include "doubleComplex.h"
+
+char zisrows(doubleComplex inp)
+{
+ char out='T';
+
+ return out;
+}
diff --git a/src/c/elementaryFunctions/isscalar/disscalara.c b/src/c/elementaryFunctions/isscalar/disscalara.c
new file mode 100644
index 0000000..eb70cf6
--- /dev/null
+++ b/src/c/elementaryFunctions/isscalar/disscalara.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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "isscalar.h"
+#include "types.h"
+char disscalara(double* inp, int size1)
+{
+ char out= 'F' ;
+
+ return out;
+}
diff --git a/src/c/elementaryFunctions/isscalar/disscalars.c b/src/c/elementaryFunctions/isscalar/disscalars.c
new file mode 100644
index 0000000..fe7ce3e
--- /dev/null
+++ b/src/c/elementaryFunctions/isscalar/disscalars.c
@@ -0,0 +1,24 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "isscalar.h"
+#include "types.h"
+
+char disscalars(double inp)
+{
+ double out='T';
+
+ return out;
+}
diff --git a/src/c/elementaryFunctions/isscalar/gisscalara.c b/src/c/elementaryFunctions/isscalar/gisscalara.c
new file mode 100644
index 0000000..fdfac77
--- /dev/null
+++ b/src/c/elementaryFunctions/isscalar/gisscalara.c
@@ -0,0 +1,24 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "isscalar.h"
+#include "types.h"
+#include "string.h"
+char gisscalara(char *inp, int size1)
+{
+ char out='F';
+
+ return out;
+}
diff --git a/src/c/elementaryFunctions/isscalar/gisscalars.c b/src/c/elementaryFunctions/isscalar/gisscalars.c
new file mode 100644
index 0000000..5a20895
--- /dev/null
+++ b/src/c/elementaryFunctions/isscalar/gisscalars.c
@@ -0,0 +1,24 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "isscalar.h"
+#include "types.h"
+
+char giscalars(char inp)
+{
+ char out='T';
+
+ return out;
+}
diff --git a/src/c/elementaryFunctions/isscalar/sisscalara.c b/src/c/elementaryFunctions/isscalar/sisscalara.c
new file mode 100644
index 0000000..59a5165
--- /dev/null
+++ b/src/c/elementaryFunctions/isscalar/sisscalara.c
@@ -0,0 +1,22 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "isscalar.h"
+#include "types.h"
+char sisscalara(float* inp, int size1)
+{
+ char out='F';
+ return out;
+}
diff --git a/src/c/elementaryFunctions/isscalar/sisscalars.c b/src/c/elementaryFunctions/isscalar/sisscalars.c
new file mode 100644
index 0000000..6ca7c4b
--- /dev/null
+++ b/src/c/elementaryFunctions/isscalar/sisscalars.c
@@ -0,0 +1,24 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "isscalar.h"
+#include "types.h"
+
+char sisscalars(float inp)
+{
+ char out='T';
+
+ return out;
+}
diff --git a/src/c/elementaryFunctions/isscalar/zisscalara.c b/src/c/elementaryFunctions/isscalar/zisscalara.c
new file mode 100644
index 0000000..942bbb5
--- /dev/null
+++ b/src/c/elementaryFunctions/isscalar/zisscalara.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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "doubleComplex.h"
+#include "isscalar.h"
+#include "types.h"
+
+char zisscalara(doubleComplex *inp, int size1)
+{
+ char out='F';
+
+ return out;
+}
diff --git a/src/c/elementaryFunctions/isscalar/zisscalars.c b/src/c/elementaryFunctions/isscalar/zisscalars.c
new file mode 100644
index 0000000..2bf8e94
--- /dev/null
+++ b/src/c/elementaryFunctions/isscalar/zisscalars.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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "isscalar.h"
+#include "types.h"
+#include "doubleComplex.h"
+
+char zisscalars(doubleComplex inp)
+{
+ char out='T';
+
+ return out;
+}
diff --git a/src/c/elementaryFunctions/issquare/dissquarea.c b/src/c/elementaryFunctions/issquare/dissquarea.c
new file mode 100644
index 0000000..840190d
--- /dev/null
+++ b/src/c/elementaryFunctions/issquare/dissquarea.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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "issquare.h"
+#include "types.h"
+char dissquarea(double* inp, int size1, int size2)
+{
+ char out= 'F' ;
+ if(size1==size2)
+ {
+ out = 'T';
+ }
+ return out;
+}
diff --git a/src/c/elementaryFunctions/issquare/dissquares.c b/src/c/elementaryFunctions/issquare/dissquares.c
new file mode 100644
index 0000000..ac6d67e
--- /dev/null
+++ b/src/c/elementaryFunctions/issquare/dissquares.c
@@ -0,0 +1,24 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "issquare.h"
+#include "types.h"
+
+char dissquares(double inp)
+{
+ double out='T';
+
+ return out;
+}
diff --git a/src/c/elementaryFunctions/issquare/gissquarea.c b/src/c/elementaryFunctions/issquare/gissquarea.c
new file mode 100644
index 0000000..73e2b37
--- /dev/null
+++ b/src/c/elementaryFunctions/issquare/gissquarea.c
@@ -0,0 +1,27 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "issquare.h"
+#include "types.h"
+#include "string.h"
+char gissquarea(char *inp, int size1, int size2)
+{
+ char out='F';
+ if(size1==size2)
+ {
+ out = 'T';
+ }
+ return out;
+}
diff --git a/src/c/elementaryFunctions/issquare/gissquares.c b/src/c/elementaryFunctions/issquare/gissquares.c
new file mode 100644
index 0000000..572afd1
--- /dev/null
+++ b/src/c/elementaryFunctions/issquare/gissquares.c
@@ -0,0 +1,24 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "issquare.h"
+#include "types.h"
+
+char gissquares(char inp)
+{
+ char out='T';
+
+ return out;
+}
diff --git a/src/c/elementaryFunctions/issquare/sissquarea.c b/src/c/elementaryFunctions/issquare/sissquarea.c
new file mode 100644
index 0000000..856cb81
--- /dev/null
+++ b/src/c/elementaryFunctions/issquare/sissquarea.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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "issquare.h"
+#include "types.h"
+char sissquarea(float* inp, int size1, int size2)
+{
+ char out='F';
+ if(size1==size2)
+ {
+ out = 'T';
+ }
+ return out;
+}
diff --git a/src/c/elementaryFunctions/issquare/sissquares.c b/src/c/elementaryFunctions/issquare/sissquares.c
new file mode 100644
index 0000000..1a6fbf8
--- /dev/null
+++ b/src/c/elementaryFunctions/issquare/sissquares.c
@@ -0,0 +1,24 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "issquare.h"
+#include "types.h"
+
+char sissquares(float inp)
+{
+ char out='T';
+
+ return out;
+}
diff --git a/src/c/elementaryFunctions/issquare/zissquarea.c b/src/c/elementaryFunctions/issquare/zissquarea.c
new file mode 100644
index 0000000..023b8fc
--- /dev/null
+++ b/src/c/elementaryFunctions/issquare/zissquarea.c
@@ -0,0 +1,28 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "doubleComplex.h"
+#include "issquare.h"
+#include "types.h"
+
+char zissquarea(doubleComplex *inp, int size1, int size2)
+{
+ char out='F';
+ if(size1==size2)
+ {
+ out = 'T';
+ }
+ return out;
+}
diff --git a/src/c/elementaryFunctions/issquare/zissquares.c b/src/c/elementaryFunctions/issquare/zissquares.c
new file mode 100644
index 0000000..2c1bb56
--- /dev/null
+++ b/src/c/elementaryFunctions/issquare/zissquares.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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "issquare.h"
+#include "types.h"
+#include "doubleComplex.h"
+
+char zissquares(doubleComplex inp)
+{
+ char out='T';
+
+ return out;
+}
diff --git a/src/c/elementaryFunctions/isvector/disvectora.c b/src/c/elementaryFunctions/isvector/disvectora.c
new file mode 100644
index 0000000..a96485b
--- /dev/null
+++ b/src/c/elementaryFunctions/isvector/disvectora.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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "isvector.h"
+#include "types.h"
+char disvectora(double* inp, int row, int col)
+{
+ if(row ==1 || col==1)
+ return 'T';
+ return 'F';
+}
diff --git a/src/c/elementaryFunctions/isvector/disvectors.c b/src/c/elementaryFunctions/isvector/disvectors.c
new file mode 100644
index 0000000..703e667
--- /dev/null
+++ b/src/c/elementaryFunctions/isvector/disvectors.c
@@ -0,0 +1,24 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "isvector.h"
+#include "types.h"
+
+char disvectors(double inp)
+{
+ double out='F';
+
+ return out;
+}
diff --git a/src/c/elementaryFunctions/isvector/gisvectora.c b/src/c/elementaryFunctions/isvector/gisvectora.c
new file mode 100644
index 0000000..758fa87
--- /dev/null
+++ b/src/c/elementaryFunctions/isvector/gisvectora.c
@@ -0,0 +1,24 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "isvector.h"
+#include "types.h"
+#include "string.h"
+char gisvectora(char *inp, int row, int col)
+{
+ if(row ==1 || col==1)
+ return 'T';
+ return 'F';
+}
diff --git a/src/c/elementaryFunctions/isvector/gisvectors.c b/src/c/elementaryFunctions/isvector/gisvectors.c
new file mode 100644
index 0000000..7211860
--- /dev/null
+++ b/src/c/elementaryFunctions/isvector/gisvectors.c
@@ -0,0 +1,24 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "isvector.h"
+#include "types.h"
+
+char gisvectors(char inp)
+{
+ char out='F';
+
+ return out;
+}
diff --git a/src/c/elementaryFunctions/isvector/sisvectora.c b/src/c/elementaryFunctions/isvector/sisvectora.c
new file mode 100644
index 0000000..d6a4821
--- /dev/null
+++ b/src/c/elementaryFunctions/isvector/sisvectora.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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "isvector.h"
+#include "types.h"
+char sisvectora(float* inp, int row, int col)
+{
+ if(row ==1 || col==1)
+ return 'T';
+ return 'F';
+}
diff --git a/src/c/elementaryFunctions/isvector/sisvectors.c b/src/c/elementaryFunctions/isvector/sisvectors.c
new file mode 100644
index 0000000..019bd46
--- /dev/null
+++ b/src/c/elementaryFunctions/isvector/sisvectors.c
@@ -0,0 +1,24 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "isvector.h"
+#include "types.h"
+
+char sisvectors(float inp)
+{
+ char out='F';
+
+ return out;
+}
diff --git a/src/c/elementaryFunctions/isvector/zisvectora.c b/src/c/elementaryFunctions/isvector/zisvectora.c
new file mode 100644
index 0000000..0ed64a6
--- /dev/null
+++ b/src/c/elementaryFunctions/isvector/zisvectora.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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "doubleComplex.h"
+#include "isvector.h"
+#include "types.h"
+
+char zisvectora(doubleComplex *inp, int row, int col)
+{
+ if(row ==1 || col==1)
+ return 'T';
+ return 'F';
+}
diff --git a/src/c/elementaryFunctions/isvector/zisvectors.c b/src/c/elementaryFunctions/isvector/zisvectors.c
new file mode 100644
index 0000000..bc9e5ce
--- /dev/null
+++ b/src/c/elementaryFunctions/isvector/zisvectors.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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "isvector.h"
+#include "types.h"
+#include "doubleComplex.h"
+
+char zisvectors(doubleComplex inp)
+{
+ char out='F';
+
+ return out;
+}
diff --git a/src/c/elementaryFunctions/nanmax/dnanmaxa.c b/src/c/elementaryFunctions/nanmax/dnanmaxa.c
new file mode 100644
index 0000000..4ff4a1a
--- /dev/null
+++ b/src/c/elementaryFunctions/nanmax/dnanmaxa.c
@@ -0,0 +1,53 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "nanmax.h"
+#include "types.h"
+double dnanmaxa(double* in, int size)
+{
+double high;
+for(int i=0; i<size; i++)
+{
+ if( !(isnan(in[i])) )
+ {
+ high= in[i];
+ break;
+
+ }
+}
+
+
+
+ for(int i=0; i< size; i++)
+ {
+ if( !(isnan(in[i])) )
+ {
+ if( in[i] > high)
+ {
+ high= in[i];
+
+ }
+
+
+ }
+
+
+ }
+
+
+
+return high;
+
+}
diff --git a/src/c/elementaryFunctions/nanmax/dnanmaxcola.c b/src/c/elementaryFunctions/nanmax/dnanmaxcola.c
new file mode 100644
index 0000000..9db0742
--- /dev/null
+++ b/src/c/elementaryFunctions/nanmax/dnanmaxcola.c
@@ -0,0 +1,35 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "nanmax.h"
+#include "types.h"
+#include "uint16.h"
+
+void dnanmaxcola(double *in, int row, int col, double* out)
+{
+ double inter[col];
+
+
+for(int i=0; i< row; i++)
+ {
+ for(int j=0 ; j< col; j++)
+ {
+ inter[j]= in[i+ (j*row)];
+
+ }
+ out[i]= dnanmaxa( inter, col);
+
+ }
+
+
+}
diff --git a/src/c/elementaryFunctions/nanmax/dnanmaxrowa.c b/src/c/elementaryFunctions/nanmax/dnanmaxrowa.c
new file mode 100644
index 0000000..191fa01
--- /dev/null
+++ b/src/c/elementaryFunctions/nanmax/dnanmaxrowa.c
@@ -0,0 +1,36 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "nanmax.h"
+#include "types.h"
+#include "uint16.h"
+
+void dnanmaxrowa(double *in, int row, int col, double* out)
+{
+ double inter[row];
+
+
+
+for(int i=0; i< col; i++)
+ {
+ for(int j=0 ; j< row; j++)
+ {
+ inter[j]= in[j+ (i*row)];
+
+ }
+ out[i]= dnanmaxa( inter, row);
+
+ }
+
+
+}
diff --git a/src/c/elementaryFunctions/nanmax/snanmaxa.c b/src/c/elementaryFunctions/nanmax/snanmaxa.c
new file mode 100644
index 0000000..1eab1ac
--- /dev/null
+++ b/src/c/elementaryFunctions/nanmax/snanmaxa.c
@@ -0,0 +1,53 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "nanmax.h"
+#include "types.h"
+float snanmaxa(float* in, int size)
+{
+float high;
+for(int i=0; i<size; i++)
+{
+ if( !(isnan(in[i])) )
+ {
+ high= in[i];
+ break;
+
+ }
+}
+
+
+
+ for(int i=0; i< size; i++)
+ {
+ if( !(isnan(in[i])) )
+ {
+ if( in[i] > high)
+ {
+ high= in[i];
+
+ }
+
+
+ }
+
+
+ }
+
+
+
+return high;
+
+}
diff --git a/src/c/elementaryFunctions/nanmax/snanmaxcola.c b/src/c/elementaryFunctions/nanmax/snanmaxcola.c
new file mode 100644
index 0000000..b408052
--- /dev/null
+++ b/src/c/elementaryFunctions/nanmax/snanmaxcola.c
@@ -0,0 +1,35 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "nanmax.h"
+#include "types.h"
+#include "uint16.h"
+
+void snanmaxcola(float *in, int row, int col, float* out)
+{
+ float inter[col];
+
+
+for(int i=0; i< row; i++)
+ {
+ for(int j=0 ; j< col; j++)
+ {
+ inter[j]= in[i+ (j*row)];
+
+ }
+ out[i]= snanmaxa( inter, col);
+
+ }
+
+
+}
diff --git a/src/c/elementaryFunctions/nanmax/snanmaxrowa.c b/src/c/elementaryFunctions/nanmax/snanmaxrowa.c
new file mode 100644
index 0000000..ab1ce0c
--- /dev/null
+++ b/src/c/elementaryFunctions/nanmax/snanmaxrowa.c
@@ -0,0 +1,36 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "nanmax.h"
+#include "types.h"
+#include "uint16.h"
+
+void snanmaxrowa(float *in, int row, int col, float* out)
+{
+ float inter[row];
+
+
+
+for(int i=0; i< col; i++)
+ {
+ for(int j=0 ; j< row; j++)
+ {
+ inter[j]= in[j+ (i*row)];
+
+ }
+ out[i]= snanmaxa( inter, row);
+
+ }
+
+
+}
diff --git a/src/c/elementaryFunctions/nanmax/znanmaxa.c b/src/c/elementaryFunctions/nanmax/znanmaxa.c
new file mode 100644
index 0000000..6283bf1
--- /dev/null
+++ b/src/c/elementaryFunctions/nanmax/znanmaxa.c
@@ -0,0 +1,57 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "nanmax.h"
+#include "types.h"
+#include "doubleComplex.h"
+#include "abs.h"
+
+doubleComplex znanmaxa(doubleComplex* in, int size)
+{
+doubleComplex high=0; int k=0;
+for(int i=0; i<size; i++)
+{
+ if( !(isnan(in[i])) )
+ {
+ high= in[i];
+ break;
+ k= 1;
+ }
+}
+
+
+
+ for(int i=0; i< size; i++)
+ {
+ if( !(isnan(in[i])) )
+ {
+ if( zabss(in[i]) > zabss(high))
+ {
+ high= in[i];
+
+ }
+
+
+ }
+
+
+ }
+
+
+if(k != 0)
+return high;
+else
+return - 0.0/0.0;
+}
diff --git a/src/c/elementaryFunctions/nanmax/znanmaxcola.c b/src/c/elementaryFunctions/nanmax/znanmaxcola.c
new file mode 100644
index 0000000..ffb96b2
--- /dev/null
+++ b/src/c/elementaryFunctions/nanmax/znanmaxcola.c
@@ -0,0 +1,36 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "nanmax.h"
+#include "types.h"
+#include "uint16.h"
+#include "doubleComplex.h"
+
+void znanmaxcola(doubleComplex *in, int row, int col, doubleComplex* out)
+{
+ doubleComplex inter[col];
+
+
+for(int i=0; i< row; i++)
+ {
+ for(int j=0 ; j< col; j++)
+ {
+ inter[j]= in[i+ (j*row)];
+
+ }
+ out[i]= znanmaxa( inter, col);
+
+ }
+
+
+}
diff --git a/src/c/elementaryFunctions/nanmax/znanmaxrowa.c b/src/c/elementaryFunctions/nanmax/znanmaxrowa.c
new file mode 100644
index 0000000..e035e77
--- /dev/null
+++ b/src/c/elementaryFunctions/nanmax/znanmaxrowa.c
@@ -0,0 +1,37 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "nanmax.h"
+#include "types.h"
+#include "uint16.h"
+#include "doubleComplex.h"
+
+void znanmaxrowa(doubleComplex *in, int row, int col, doubleComplex* out)
+{
+ doubleComplex inter[row];
+
+
+
+for(int i=0; i< col; i++)
+ {
+ for(int j=0 ; j< row; j++)
+ {
+ inter[j]= in[j+ (i*row)];
+
+ }
+ out[i]= znanmaxa( inter, row);
+
+ }
+
+
+}
diff --git a/src/c/elementaryFunctions/nthroot/dnthroot1a.c b/src/c/elementaryFunctions/nthroot/dnthroot1a.c
new file mode 100644
index 0000000..7c65169
--- /dev/null
+++ b/src/c/elementaryFunctions/nthroot/dnthroot1a.c
@@ -0,0 +1,28 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "nthroot.h"
+#include "types.h"
+void dnthroot1a(double* inp1, int irows, int icols, double inp2, double* out)
+{
+
+
+ for(int i=0; i< irows*icols; i++)
+ {
+ out[i]= dnthroots(inp1[i], inp2);
+
+ }
+
+}
diff --git a/src/c/elementaryFunctions/nthroot/dnthroota.c b/src/c/elementaryFunctions/nthroot/dnthroota.c
new file mode 100644
index 0000000..6f33b21
--- /dev/null
+++ b/src/c/elementaryFunctions/nthroot/dnthroota.c
@@ -0,0 +1,36 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "nthroot.h"
+#include "types.h"
+void dnthroota(double* inp1, int irows, int icols, double* inp2, int crows, int ccols, double* out)
+{
+
+ if(irows==crows && icols==ccols)
+ {
+ for(int i=0; i< irows*icols; i++)
+ {
+
+ out[i]= dnthroots(inp1[i], inp2[i]);
+
+ }
+
+
+
+ }
+
+
+
+}
diff --git a/src/c/elementaryFunctions/nthroot/dnthroots.c b/src/c/elementaryFunctions/nthroot/dnthroots.c
new file mode 100644
index 0000000..99beaa1
--- /dev/null
+++ b/src/c/elementaryFunctions/nthroot/dnthroots.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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "nthroot.h"
+#include "types.h"
+
+double dnthroots(double inp1, double inp2)
+{
+
+ return pow(inp1, (1/inp2));
+}
diff --git a/src/c/elementaryFunctions/nthroot/snthroot1a.c b/src/c/elementaryFunctions/nthroot/snthroot1a.c
new file mode 100644
index 0000000..60fae3d
--- /dev/null
+++ b/src/c/elementaryFunctions/nthroot/snthroot1a.c
@@ -0,0 +1,28 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "nthroot.h"
+#include "types.h"
+void snthroot1a(float* inp1, int irows, int icols, float inp2, double* out)
+{
+
+
+ for(int i=0; i< irows*icols; i++)
+ {
+ out[i]= dnthroots(inp1[i], inp2);
+
+ }
+
+}
diff --git a/src/c/elementaryFunctions/nthroot/snthroota.c b/src/c/elementaryFunctions/nthroot/snthroota.c
new file mode 100644
index 0000000..4a04c1d
--- /dev/null
+++ b/src/c/elementaryFunctions/nthroot/snthroota.c
@@ -0,0 +1,36 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "nthroot.h"
+#include "types.h"
+void snthroota(float* inp1, int irows, int icols, float* inp2, int crows, int ccols, double* out)
+{
+
+ if(irows==crows && icols==ccols)
+ {
+ for(int i=0; i< irows*icols; i++)
+ {
+
+ out[i]= dnthroots(inp1[i], inp2[i]);
+
+ }
+
+
+
+ }
+
+
+
+}
diff --git a/src/c/elementaryFunctions/nthroot/snthroots.c b/src/c/elementaryFunctions/nthroot/snthroots.c
new file mode 100644
index 0000000..ad83dac
--- /dev/null
+++ b/src/c/elementaryFunctions/nthroot/snthroots.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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "nthroot.h"
+#include "types.h"
+
+double snthroots(float inp1, float inp2)
+{
+
+ return pow(inp1, (1/inp2));
+}
diff --git a/src/c/elementaryFunctions/nthroot/u16nthroot1a.c b/src/c/elementaryFunctions/nthroot/u16nthroot1a.c
new file mode 100644
index 0000000..4cb654c
--- /dev/null
+++ b/src/c/elementaryFunctions/nthroot/u16nthroot1a.c
@@ -0,0 +1,29 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "nthroot.h"
+#include "types.h"
+#include "uint16.h"
+void snthroot1a(uint16* inp1, int irows, int icols, uint16 inp2, double* out)
+{
+
+
+ for(int i=0; i< irows*icols; i++)
+ {
+ out[i]= dnthroots(inp1[i], inp2);
+
+ }
+
+}
diff --git a/src/c/elementaryFunctions/nthroot/u16nthroota.c b/src/c/elementaryFunctions/nthroot/u16nthroota.c
new file mode 100644
index 0000000..5d178a1
--- /dev/null
+++ b/src/c/elementaryFunctions/nthroot/u16nthroota.c
@@ -0,0 +1,37 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "nthroot.h"
+#include "types.h"
+#include "uint16.h"
+void dnthroota(uint16* inp1, int irows, int icols, uint16* inp2, int crows, int ccols, double* out)
+{
+
+ if(irows==crows && icols==ccols)
+ {
+ for(int i=0; i< irows*icols; i++)
+ {
+
+ out[i]= dnthroots(inp1[i], inp2[i]);
+
+ }
+
+
+
+ }
+
+
+
+}
diff --git a/src/c/elementaryFunctions/nthroot/u16nthroots.c b/src/c/elementaryFunctions/nthroot/u16nthroots.c
new file mode 100644
index 0000000..618d29f
--- /dev/null
+++ b/src/c/elementaryFunctions/nthroot/u16nthroots.c
@@ -0,0 +1,24 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "nthroot.h"
+#include "types.h"
+#include "uint16.h"
+
+double dnthroots(uint16 inp1, uint16 inp2)
+{
+
+ return pow(inp1, (1/inp2));
+}
diff --git a/src/c/elementaryFunctions/pmodulo/dpmoduloa.c b/src/c/elementaryFunctions/pmodulo/dpmoduloa.c
new file mode 100644
index 0000000..0817987
--- /dev/null
+++ b/src/c/elementaryFunctions/pmodulo/dpmoduloa.c
@@ -0,0 +1,32 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "pmodulo.h"
+#include "types.h"
+void dpmoduloa(double* inp1, int size, double* inp2, double* out)
+{
+
+
+ for(int i=0; i< size; i++)
+ {
+
+ out[i]= dpmodulos(inp1[i], inp2[i]);
+
+ }
+
+
+
+
+}
diff --git a/src/c/elementaryFunctions/pmodulo/dpmodulos.c b/src/c/elementaryFunctions/pmodulo/dpmodulos.c
new file mode 100644
index 0000000..6144177
--- /dev/null
+++ b/src/c/elementaryFunctions/pmodulo/dpmodulos.c
@@ -0,0 +1,54 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "pmodulo.h"
+#include "types.h"
+
+double dpmodulos(double inp1, double inp2)
+{
+ if( inp1>0 && inp2>0)
+
+ {
+ return fmod(inp1,inp2);
+
+ }
+
+
+ if( inp1>0 && inp2<0)
+
+ {
+
+ return fmod(inp1,inp2);
+
+ }
+
+
+ if(inp1<0 && inp2>0)
+
+ {
+
+ return ((fmod(inp1,inp2))+(inp2));
+
+
+ }
+
+ if(inp1<0 && inp2<0)
+ {
+
+ return ((fmod(inp1,inp2))-(inp2));
+
+ }
+
+}
diff --git a/src/c/elementaryFunctions/pmodulo/i16pmoduloa.c b/src/c/elementaryFunctions/pmodulo/i16pmoduloa.c
new file mode 100644
index 0000000..bb76d7f
--- /dev/null
+++ b/src/c/elementaryFunctions/pmodulo/i16pmoduloa.c
@@ -0,0 +1,33 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "int16.h"
+#include "pmodulo.h"
+#include "types.h"
+void i16pmoduloa(int16* inp1, int size, int16* inp2, int16* out)
+{
+
+
+ for(int i=0; i< size; i++)
+ {
+
+ out[i]= i16pmodulos(inp1[i], inp2[i]);
+
+ }
+
+
+
+
+}
diff --git a/src/c/elementaryFunctions/pmodulo/i16pmodulos.c b/src/c/elementaryFunctions/pmodulo/i16pmodulos.c
new file mode 100644
index 0000000..f7f86c5
--- /dev/null
+++ b/src/c/elementaryFunctions/pmodulo/i16pmodulos.c
@@ -0,0 +1,55 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "int16.h"
+#include "pmodulo.h"
+#include "types.h"
+
+int16 i16pmodulos(int16 inp1, int16 inp2)
+{
+ if( inp1>0 && inp2>0)
+
+ {
+ return inp1%inp2;
+
+ }
+
+
+ if( inp1>0 && inp2<0)
+
+ {
+
+ return inp1%inp2;
+
+ }
+
+
+ if(inp1<0 && inp2>0)
+
+ {
+
+ return ((inp1%inp2)+(inp2));
+
+
+ }
+
+ if(inp1<0 && inp2<0)
+ {
+
+ return ((inp1%inp2)-(inp2));
+
+ }
+
+}
diff --git a/src/c/elementaryFunctions/pmodulo/spmoduloa.c b/src/c/elementaryFunctions/pmodulo/spmoduloa.c
new file mode 100644
index 0000000..87b2a2f
--- /dev/null
+++ b/src/c/elementaryFunctions/pmodulo/spmoduloa.c
@@ -0,0 +1,32 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "pmodulo.h"
+#include "types.h"
+void spmoduloa(float* inp1, int size, float* inp2, float* out)
+{
+
+
+ for(int i=0; i< size; i++)
+ {
+
+ out[i]= spmodulos(inp1[i], inp2[i]);
+
+ }
+
+
+
+
+}
diff --git a/src/c/elementaryFunctions/pmodulo/spmodulos.c b/src/c/elementaryFunctions/pmodulo/spmodulos.c
new file mode 100644
index 0000000..9ab6bc4
--- /dev/null
+++ b/src/c/elementaryFunctions/pmodulo/spmodulos.c
@@ -0,0 +1,54 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "pmodulo.h"
+#include "types.h"
+
+float spmodulos(float inp1, float inp2)
+{
+ if( inp1>0 && inp2>0)
+
+ {
+ return fmod(inp1,inp2);
+
+ }
+
+
+ if( inp1>0 && inp2<0)
+
+ {
+
+ return fmod(inp1,inp2);
+
+ }
+
+
+ if(inp1<0 && inp2>0)
+
+ {
+
+ return ((fmod(inp1,inp2))+(inp2));
+
+
+ }
+
+ if(inp1<0 && inp2<0)
+ {
+
+ return ((fmod(inp1,inp2))-(inp2));
+
+ }
+
+}
diff --git a/src/c/elementaryFunctions/nthroot/dnthroot.c b/src/c/elementaryFunctions/type/gtype
index e69de29..e69de29 100644
--- a/src/c/elementaryFunctions/nthroot/dnthroot.c
+++ b/src/c/elementaryFunctions/type/gtype
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_RPIPeripheralDigital.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralDigital.h
index 096fed0..6b7ed27 100644
--- a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralDigital.h
+++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralDigital.h
@@ -28,6 +28,7 @@ extern "C" {
#define d0d0RPI_digitalWrite(pin,state) u8RPI_digitalWrites(pin,state);
#define u80RPI_digitalWriteByte(value) u8RPI_digitalWriteBytes(value);
+#define d0RPI_digitalWriteByte(value) u8RPI_digitalWriteBytes(value);
#ifdef __cplusplus
} /* extern "C" */
diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralGertboard.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralGertboard.h
index cea8bb6..e258068 100644
--- a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralGertboard.h
+++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralGertboard.h
@@ -21,9 +21,15 @@ extern "C" {
#endif
#define RPI_gertboardSPISetupi80() RPI_gertboardSPISetup();
+
#define u160RPI_gertboardAnalogSetupi80(pinBase) u16RPI_gertboardAnalogSetups(pinBase);
+#define d0RPI_gertboardAnalogSetupi80(pinBase) u16RPI_gertboardAnalogSetups(pinBase);
+
#define u160RPI_gertboardAnalogReadu160(pin) u160RPI_gertboardAnalogReads(pin);
+#define d0RPI_gertboardAnalogReadu160(pin) u160RPI_gertboardAnalogReads(pin);
+
#define u160u160RPI_gertboardAnalogWrite(pin,value) u160RPI_gertboardAnalogWrites(pin,value);
+#define d0d0RPI_gertboardAnalogWrite(pin,value) u160RPI_gertboardAnalogWrites(pin,value);
#ifdef __cplusplus
} /* extern "C" */
diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralI2C.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralI2C.h
index f18fd57..b93529e 100644
--- a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralI2C.h
+++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralI2C.h
@@ -21,12 +21,25 @@ extern "C" {
#endif
#define u160RPI_I2CSetupi80(arrd) u16RPI_I2CSetups(arrd);
+#define d0RPI_I2CSetupi80(arrd) u16RPI_I2CSetups(arrd);
+
#define u160RPI_I2CReadi80(fd) u16RPI_I2CReads(fd);
+#define d0RPI_I2CReadi80(fd) u16RPI_I2CReads(fd);
+
#define u160u160RPI_I2CReadReg8i80(fd,reg) u16RPI_I2CReadReg8s(fd,reg);
+#define d0d0RPI_I2CReadReg8i80(fd,reg) u16RPI_I2CReadReg8s(fd,reg);
+
#define u160u160RPI_I2CReadReg16i80(fd,reg) u16RPI_I2CReadReg16s(fd,reg);
+#define d0d0RPI_I2CReadReg16i80(fd,reg) u16RPI_I2CReadReg16s(fd,reg);
+
#define u160u160RPI_I2CWritei80(fd,data) u16RPI_I2CWrites(fd,data);
+#define d0d0RPI_I2CWritei80(fd,data) u16RPI_I2CWrites(fd,data);
+
#define u160u160u160RPI_I2CWriteReg8i80(fd,reg,data) u16RPI_I2CWriteReg8s(fd,reg,data);
+#define d0d0d0RPI_I2CWriteReg8i80(fd,reg,data) u16RPI_I2CWriteReg8s(fd,reg,data);
+
#define u160u160u160RPI_I2CWriteReg16i80(fd,reg,data) u16RPI_I2CWriteReg16s(fd,reg,data);
+#define d0d0d0RPI_I2CWriteReg16i80(fd,reg,data) u16RPI_I2CWriteReg16s(fd,reg,data);
#ifdef __cplusplus
} /* extern "C" */
diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD.h
index e4f3ca2..803f93e 100644
--- a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD.h
+++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD.h
@@ -21,17 +21,47 @@ 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);
+#define d0RPI_lcdHome(fd) u8RPI_lcdHomes(fd);
+
#define u80u80u80u80u80u80u80u80u80u80u80u80u80RPI_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 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]);;
+#define d0g2RPI_lcdPuts(fd,msg,size) u8RPI_lcdPutss(fd,msg,size[1]);;
+
#define u80g2RPI_lcdPrintf(fd,data,size) u8RPI_lcdPrintfs(fd,data,size[1]);
+#define d0g2RPI_lcdPrintf(fd,data,size) u8RPI_lcdPrintfs(fd,data,size[1]);
#ifdef __cplusplus
} /* extern "C" */
diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD128x64.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD128x64.h
index 46b6328..8bb4b17 100644
--- a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD128x64.h
+++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralLCD128x64.h
@@ -33,13 +33,16 @@ 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);
#define u80u80u80u80u80RPI_lcd128x64line(x0,y0,x1,y1,colour) u8RPI_lcd128x64lines(x0,y0,x1,y1,colour);
#define d0d0d0d0d0RPI_lcd128x64line(x0,y0,x1,y1,colour) u8RPI_lcd128x64lines(x0,y0,x1,y1,colour);
+
#define u80u80u80u80u80RPI_lcd128x64circle(x,y,r,colour,filled) u8RPI_lcd128x64circles(x,y,r,colour,filled);
#define d0d0d0d0d0RPI_lcd128x64circle(x,y,r,colour,filled) u8RPI_lcd128x64circles(x,y,r,colour,filled);
+
#define u80u80u80u80u80RPI_lcd128x64putchar(x,y,c,bgCol,fgCol) u8RPI_lcd128x64putchars(x,y,c,bgCol,fgCol);
#define d0d0d0d0u80RPI_lcd128x64putchar(x,y,c,bgCol,fgCol) u8RPI_lcd128x64putchars(x,y,c,bgCol,fgCol);
@@ -48,6 +51,7 @@ extern "C" {
#define u80u80u80u80u80u80RPI_lcd128x64rectangle(x1,y1,x2,y2,colour,filled) u8RPI_lcd128x64rectangles(x1,y1,x2,y2,colour,filled);
#define d0d0d0d0d0d0RPI_lcd128x64rectangle(x1,y1,x2,y2,colour,filled) u8RPI_lcd128x64rectangles(x1,y1,x2,y2,colour,filled);
+
#define u80u80u80u80u80u80RPI_lcd128x64ellipse(cx,cy,xRadius,yRadius,colour,filled) u8RPI_lcd128x64ellipses(cx,cy,xRadius,yRadius,colour,filled);
#define d0d0d0d0d0d0RPI_lcd128x64ellipse(cx,cy,xRadius,yRadius,colour,filled) u8RPI_lcd128x64ellipses(cx,cy,xRadius,yRadius,colour,filled);
diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralMcp.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralMcp.h
index c044cf7..7857b3a 100644
--- a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralMcp.h
+++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralMcp.h
@@ -21,10 +21,19 @@ extern "C" {
#endif
#define u160u80RPI_mcp23008Setupu80(pinBase,addr) u16RPI_mcp23008Setups(pinBase,addr);
+#define d0d0RPI_mcp23008Setupu80(pinBase,addr) u16RPI_mcp23008Setups(pinBase,addr);
+
#define u160u80RPI_mcp23016Setupu80(pinBase,addr) u16RPI_mcp23016Setups(pinBase,addr);
+#define d0d0RPI_mcp23016Setupu80(pinBase,addr) u16RPI_mcp23016Setups(pinBase,addr);
+
#define u160u80RPI_mcp23017Setupu80(pinBase,addr) u16RPI_mcp23017Setups(pinBase,addr);
+#define d0d0RPI_mcp23017Setupu80(pinBase,addr) u16RPI_mcp23017Setups(pinBase,addr);
+
#define u160u80u80RPI_mcp23s08Setupu80(pinBase,spiport,devId) u16RPI_mcp23s08Setups(pinBase,spiport,devId);
+#define d0d0d0RPI_mcp23s08Setupu80(pinBase,spiport,devId) u16RPI_mcp23s08Setups(pinBase,spiport,devId);
+
#define u160u80u80RPI_mcp23s17Setupu80(pinBase,spiport,devId) u16RPI_mcp23s17Setups(pinBase,spiport,devId);
+#define d0d0d0RPI_mcp23s17Setupu80(pinBase,spiport,devId) u16RPI_mcp23s17Setups(pinBase,spiport,devId);
#ifdef __cplusplus
} /* extern "C" */
diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralMisc.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralMisc.h
index b836d68..de065a2 100644
--- a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralMisc.h
+++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralMisc.h
@@ -21,8 +21,12 @@ extern "C" {
#endif
#define RPI_boardRevu80() RPI_boardRev();
+
#define u80u80RPI_padDrive(group,strength) u8RPI_padDrives(group,strength);
+#define d0d0RPI_padDrive(group,strength) u8RPI_padDrives(group,strength);
+
#define u160RPI_sn3218Setupi80(pinBase) u16RPI_sn3218Setups(pinBase);
+#define d0RPI_sn3218Setupi80(pinBase) u16RPI_sn3218Setups(pinBase);
#ifdef __cplusplus
} /* extern "C" */
diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPWM.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPWM.h
index 49c58c0..fd1a1b0 100644
--- a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPWM.h
+++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPWM.h
@@ -21,10 +21,18 @@ extern "C" {
#endif
#define u80u160RPI_pwmWrite(pin,value) u8RPI_pwmWrites(pin,value);
+#define d0d0RPI_pwmWrite(pin,value) u8RPI_pwmWrites(pin,value);
+
#define u320RPI_pwmRange(value) u32RPI_pwmRanges(value);
+#define d0RPI_pwmRange(value) u32RPI_pwmRanges(value);
+
#define g2RPI_pwmMode(mode) gRPI_pwmModea(mode);
+
#define u160RPI_pwmClock(divisor) u16RPI_pwmClocks(divisor);
+#define d0RPI_pwmClock(divisor) u16RPI_pwmClocks(divisor);
+
#define u80u160RPI_pwmToneWrite(pin,value) u8RPI_pwmToneWrites(pin,value);
+#define d0d0RPI_pwmToneWrite(pin,value) u8RPI_pwmToneWrites(pin,value);
#ifdef __cplusplus
} /* extern "C" */
diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPcf.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPcf.h
index e3d2009..3d0cb27 100644
--- a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPcf.h
+++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPcf.h
@@ -21,7 +21,10 @@ extern "C" {
#endif
#define u160u80RPI_pcf8574Setupu80(pinBase,addr) u16RPI_pcf8574Setups(pinBase,addr);
+#define d0d0RPI_pcf8574Setupu80(pinBase,addr) u16RPI_pcf8574Setups(pinBase,addr);
+
#define u160u80RPI_pcf8591Setupu80(pinBase,addr) u16RPI_pcf8591Setups(pinBase,addr);
+#define d0d0RPI_pcf8591Setupu80(pinBase,addr) u16RPI_pcf8591Setups(pinBase,addr);
#ifdef __cplusplus
} /* extern "C" */
diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPiGlow.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPiGlow.h
index 08056f9..8e268f6 100644
--- a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPiGlow.h
+++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPiGlow.h
@@ -21,9 +21,16 @@ extern "C" {
#endif
#define u80RPI_piGlowSetup(clear) u8RPI_piGlowSetups(clear);
+#define d0RPI_piGlowSetup(clear) u8RPI_piGlowSetups(clear);
+
#define u80u80u80RPI_piGlow1(leg,ring,intensity) u8RPI_piGlow1s(leg,ring,intensity);
+#define d0d0d0RPI_piGlow1(leg,ring,intensity) u8RPI_piGlow1s(leg,ring,intensity);
+
#define u80u80RPI_piGlowLeg(leg,intensity) u8RPI_piGlowLegs(leg,intensity);
+#define d0d0RPI_piGlowLeg(leg,intensity) u8RPI_piGlowLegs(leg,intensity);
+
#define u80u80RPI_piGlowRing(ring,intensity) u8RPI_piGlowRings(ring,intensity);
+#define d0d0RPI_piGlowRing(ring,intensity) u8RPI_piGlowRings(ring,intensity);
#ifdef __cplusplus
} /* extern "C" */
diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPinMap.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPinMap.h
index 39c5c01..8de0dc2 100644
--- a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPinMap.h
+++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralPinMap.h
@@ -21,7 +21,10 @@ extern "C" {
#endif
#define u80RPI_physToGpioi80(pin) u8RPI_physToGpios(pin);
+#define d0RPI_physToGpioi80(pin) u8RPI_physToGpios(pin);
+
#define u80RPI_wpiToGpioi80(pin) u8RPI_wpiToGpios(pin);
+#define d0RPI_wpiToGpioi80(pin) u8RPI_wpiToGpios(pin);
#ifdef __cplusplus
} /* extern "C" */
diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralSerial.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralSerial.h
index e0832f9..b308d83 100644
--- a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralSerial.h
+++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralSerial.h
@@ -21,13 +21,28 @@ extern "C" {
#endif
#define g2u320RPI_serialOpeni80(device,size,baud) gRPI_serialOpena(device,size[1],baud);
+#define g2d0RPI_serialOpeni80(device,size,baud) gRPI_serialOpena(device,size[1],baud);
+
#define u80RPI_serialClose(fd) u8RPI_serialCloses(fd);
+#define d0RPI_serialClose(fd) u8RPI_serialCloses(fd);
+
#define u80RPI_serialDataAvailu80(fd) u8RPI_serialDataAvails(fd);
+#define d0RPI_serialDataAvailu80(fd) u8RPI_serialDataAvails(fd);
+
#define u80RPI_serialFlush(fd) u8RPI_serialFlushs(fd);
+#define d0RPI_serialFlush(fd) u8RPI_serialFlushs(fd);
+
#define u80RPI_serialGetcharg2(fd,out) u8RPI_serialGetchars(fd,out);
+#define d0RPI_serialGetcharg2(fd,out) u8RPI_serialGetchars(fd,out);
+
#define u80g2RPI_serialPrintf(fd,msg,size) u8RPI_serialPrintfs(fd,msg,size[1]);
+#define d0g2RPI_serialPrintf(fd,msg,size) u8RPI_serialPrintfs(fd,msg,size[1]);
+
#define u80u80RPI_serialPutchar(fd,character) u8RPI_serialPutchars(fd,character);
+#define d0d0RPI_serialPutchar(fd,character) u8RPI_serialPutchars(fd,character);
+
#define u80g2RPI_serialPutsg2(fd,character,size) u8RPI_serialPutss(fd,character,size[1]);
+#define d0g2RPI_serialPutsg2(fd,character,size) u8RPI_serialPutss(fd,character,size[1]);
#ifdef __cplusplus
} /* extern "C" */
diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralSetup.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralSetup.h
index bd82702..6bcb163 100644
--- a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralSetup.h
+++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralSetup.h
@@ -23,18 +23,12 @@ extern "C" {
#define g2RPI_pinNumberingi80(seq,size) gRPI_pinNumberinga(seq,size[1]);
//getAlt
#define u80RPI_getAltu80(pin) u8RPI_getAlts(pin);
-#define u160RPI_getAltu80(pin) u8RPI_getAlts(pin);
-#define u320RPI_getAltu80(pin) u8RPI_getAlts(pin);
#define d0RPI_getAltu80(pin) u8RPI_getAlts(pin);
//pinModeAlt
#define u80u80RPI_pinModeAlt(pin,mode) u8RPI_pinModeAlts(pin,mode);
-#define u160u160RPI_pinModeAlt(pin,mode) u8RPI_pinModeAlts(pin,mode);
-#define u320u320RPI_pinModeAlt(pin,mode) u8RPI_pinModeAlts(pin,mode);
#define d0d0RPI_pinModeAlt(pin,mode) u8RPI_pinModeAlts(pin,mode);
//pinMode
#define u80g2RPI_pinMode(pin,mode,size) u8RPI_pinModes(pin,mode,size[1]);
-#define u160g2RPI_pinMode(pin,mode,size) u8RPI_pinModes(pin,mode,size[1]);
-#define u320g2RPI_pinMode(pin,mode,size) u8RPI_pinModes(pin,mode,size[1]);
#define d0g2RPI_pinMode(pin,mode,size) u8RPI_pinModes(pin,mode,size[1]);
//pullControl
#define u80g2RPI_pullControl(pin,mode,size) u8RPI_pullControls(pin,mode,size[1]);
diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralShift.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralShift.h
index 6b142bd..7b70ce9 100644
--- a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralShift.h
+++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralShift.h
@@ -21,8 +21,13 @@ extern "C" {
#endif
#define u80u80u80RPI_shiftInu80(dpin,cpin,order) u8RPI_shiftIns(dpin,cpin,order);
+#define d0d0d0RPI_shiftInu80(dpin,cpin,order) u8RPI_shiftIns(dpin,cpin,order);
+
#define u80u80u80u80RPI_shiftOut(dpin,cpin,order,val) u8RPI_shiftOuts(dpin,cpin,order,val);
+#define d0d0d0d0RPI_shiftOut(dpin,cpin,order,val) u8RPI_shiftOuts(dpin,cpin,order,val);
+
#define u160u80u80u80u80RPI_sr595Setupi80(pinBase,nPins,dP,cP,lP) u16RPI_sr595Setups(pinBase,nPins,dP,cP,lP);
+#define d0d0d0d0d0RPI_sr595Setupi80(pinBase,nPins,dP,cP,lP) u16RPI_sr595Setups(pinBase,nPins,dP,cP,lP);
#ifdef __cplusplus
} /* extern "C" */
diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralSoft.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralSoft.h
index 80372b2..646c524 100644
--- a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralSoft.h
+++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralSoft.h
@@ -21,11 +21,22 @@ extern "C" {
#endif
#define u80u160u160RPI_softPwmCreateu80(pin,ival,range) u8RPI_softPwmCreates(pin,ival,range);
+#define d0d0d0RPI_softPwmCreateu80(pin,ival,range) u8RPI_softPwmCreates(pin,ival,range);
+
#define u80RPI_softPwmStop(pin) u8RPI_softPwmStops(pin);
+#define d0RPI_softPwmStop(pin) u8RPI_softPwmStops(pin);
+
#define u80u160RPI_softPwmWrite(pin,value) u8RPI_softPwmWrites(pin,value);
+#define d0d0RPI_softPwmWrite(pin,value) u8RPI_softPwmWrites(pin,value);
+
#define u80RPI_softToneCreateu80(pin) u8RPI_softToneCreates(pin);
+#define d0RPI_softToneCreateu80(pin) u8RPI_softToneCreates(pin);
+
#define u80RPI_softToneStop(pin) u8RPI_softToneStops(pin);
+#define d0RPI_softToneStop(pin) u8RPI_softToneStops(pin);
+
#define u80u320RPI_softToneWrite(pin,value) u8RPI_softToneWrites(pin,value);
+#define d0d0RPI_softToneWrite(pin,value) u8RPI_softToneWrites(pin,value);
#ifdef __cplusplus
} /* extern "C" */
diff --git a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralTiming.h b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralTiming.h
index d2fae23..cbbb47a 100644
--- a/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralTiming.h
+++ b/src/c/hardware/rasberrypi/interfaces/int_RPIPeripheralTiming.h
@@ -24,6 +24,8 @@ extern "C" {
#define d0RPI_delay(time) u32RPI_delays(time);
#define u320RPI_delayMicro(time) u32RPI_delayMicros(time);
+#define d0RPI_delayMicro(time) u32RPI_delayMicros(time);
+
#define RPI_millisu320() RPI_millis();
#define RPI_microsu320() RPI_micros();
diff --git a/src/c/hardware/rasberrypi/pwm/u8RPI_pwmToneWrites.c b/src/c/hardware/rasberrypi/pwm/u8RPI_pwmToneWrites.c
index fe1b8cd..3fe0c82 100644
--- a/src/c/hardware/rasberrypi/pwm/u8RPI_pwmToneWrites.c
+++ b/src/c/hardware/rasberrypi/pwm/u8RPI_pwmToneWrites.c
@@ -12,6 +12,6 @@
#include "RPIPeripheralPWM.h"
-void u8RPI_pwmToneWrites(uint8 pin, uint16 value){
- pwmToneWrite(pin, value);
+void u8RPI_pwmToneWrites(uint8 pin,uint16 freq){
+ pwmToneWrite(pin,freq);
}
diff --git a/src/c/linearAlgebra/fullrf/dfullrfa.c b/src/c/linearAlgebra/fullrf/dfullrfa.c
new file mode 100644
index 0000000..a409ae3
--- /dev/null
+++ b/src/c/linearAlgebra/fullrf/dfullrfa.c
@@ -0,0 +1,112 @@
+/* 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: Sandeep Gupta
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+/* FULL Rank factorization function in scilab */
+
+/*
+ //[Q,M,rk]=fullrf(A)
+ //Full rank factorization : A=Q.M
+ //with range(Q)=range(A) and ker(M)=ker(A),
+ //Q full column rank , M full row rank
+ // rk = rank(A) = #columns(Q) = #rows(M)
+ //F.D.
+*/
+
+#include "fullrf.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include "svd.h"
+#include <math.h>
+#include "norm.h"
+#include "matrixTranspose.h"
+#include "matrixMultiplication.h"
+
+double dfullrfa(int ninp,double *inp1,int row,int col,double tol,double *out1,double *out2){
+
+ int i,j;
+ /* norm inp1 - norm(inp1,1)*/
+ double na1;
+ na1 = dnorma(inp1,row,col,1);
+
+ if(ninp == 1){
+ tol = sqrt(pow(2,-52));
+ }
+
+ if(na1 < pow(1,-10)){
+ out1 = NULL;
+ out2 = NULL;
+ return 0;
+ }
+
+ double tol1;
+ tol1 = tol*na1;
+
+ double *U,*S,*V;
+ U = (double *)malloc(row*row*sizeof(double));
+ S = (double *)malloc(row*col*sizeof(double));
+ V = (double *)malloc(col*col*sizeof(double));
+
+ double rk;
+ rk = dsvda(tol1,inp1,row,col,0,4,U,S,V);
+
+ /* sq = sqrt(s) */
+ for(i=0;i<row;i++){
+ for(j=0;j<col;j++){
+ if(i == j){
+ S[i*row+j] = pow(S[i*row+j],0.5);
+ }
+ else{
+ S[i*row+j] = 0;
+ }
+ }
+ }
+
+ double *Q;
+ Q = (double *)malloc(row*col*sizeof(double));
+ dmulma(U,row,row,S,row,col,Q);
+
+ double *VT;
+ VT = (double *)malloc(col*col*sizeof(double));
+ dtransposea(V,col,col,VT);
+
+ /* multiplication of sq*V' or S*VT */
+ double *M;
+ M = (double *)malloc(row*col*sizeof(double));
+ dmulma(S,row,col,VT,col,col,M);
+
+ /* This Program is not yet completed properly, as it outputs the whole matrix, instead of the exact output.
+
+ if anyone finds, how to fix the size in INITFILLscidir.sci
+please change there and change below few lines of codes accordingly.
+
+*/
+ for(i=0;i<row;i++){
+ for(j=0;j<col;j++){
+ //if(j < rk)
+ out1[i*col+j] = Q[i*col+j];
+ //else
+ // out1[i*col+j] = 0;
+ }
+ //printf("\n");
+ }
+
+ for(i=0;i<row;i++){
+ for(j=0;j<col;j++){
+ //if(i < rk)
+ out2[i*col+j] = M[i*col+j];
+ //else
+ // out2[i*col+j] = 0;
+ }
+ }
+
+ return rk;
+}
diff --git a/src/c/linearAlgebra/givens/dgivensa.c b/src/c/linearAlgebra/givens/dgivensa.c
new file mode 100644
index 0000000..9bf0637
--- /dev/null
+++ b/src/c/linearAlgebra/givens/dgivensa.c
@@ -0,0 +1,76 @@
+/* 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: Sandeep Gupta
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+/* GIVENS scilab function
+ Syntax : u=givens(xy)
+ u=givens(x,y)
+ xy = [x;y], u=givens(xy)
+ returns a 2*2 matrix u such that u*xy=[r;0].
+ c is equal to u*xy
+ givens(x,y)=givens([x;y])
+*/
+
+#include "givens.h"
+#include <stdio.h>
+#include <math.h>
+#include "norm.h"
+
+/* All variable names are according to scilab code */
+
+void dgivensa(int ninp,double *inp1,int row,int col,double *inp2,int row1,int col1,int nout,double *out1,double *out2){
+ double *x;
+ double r;
+ x = (double *)malloc((double)2*sizeof(double));
+ if(ninp == 2){
+ if(row != 1 || col != 1 || row1 != 1 || col1 != 1){
+ printf("Wrong size for input argument: A column vector expected.\n");
+ return;
+ }
+ *(x) = *(inp1);
+ *(x+1) = *(inp2);
+ }
+ else{
+ //printf("(%d %d)",row,col);
+ if(row != 2 || col != 1){
+ printf("Wrong size for input argument: A column vector expected.\n");
+ return;
+ }
+ //printf("(%lf %lf)",inp1[0],inp1[1]);
+ x[0] = inp1[0];
+ x[1] = inp1[1];
+ }
+ if(*(x+1) != 0){
+ //printf("(%lf %lf)",x[0],x[1]);
+ /*Norm of type 2 - find the maximum singular value*/
+ r = dnorma(x,2,1,2);
+ //printf("%lf \n",r);
+ *(out1) = (*(x))/r;
+ *(out1+1) = -(*(x+1))/r;
+ *(out1+2) = (*(x+1))/r;
+ *(out1+3) = (*(x))/r;
+ if(nout == 2){
+ *(out2) = r;
+ *(out2+1) = 0;
+ }
+
+ }
+ else{
+ *(out1) = 1;
+ *(out1+1) = 0;
+ *(out1+2) = 1;
+ *(out1+3) = 0;
+ if(nout == 2){
+ *(out2) = *(x);
+ *(out2+1) = *(x+1);
+ }
+ }
+}
diff --git a/src/c/linearAlgebra/hess/dhessa.c b/src/c/linearAlgebra/hess/dhessa.c
index 57f81b3..e1f2e2d 100644
--- a/src/c/linearAlgebra/hess/dhessa.c
+++ b/src/c/linearAlgebra/hess/dhessa.c
@@ -20,11 +20,13 @@
#include "matrixTranspose.h"
#include "matrixMultiplication.h"
+/* Lapack subroutines - which are used*/
extern int dgehrd_(int *, int *,int *,double *,int *,double *,double *,int *,int *);
extern int dorghr_(int *, int *,int *,double *,int *,double *,double *,int *,int *);
-
+/* All the vairbale names are given exactly the same name as scilab source code */
void dhessa(double *in1,int size,int nout,double *out1, double *out2){
+/* Variables names are done through, Lapack library. */
int i,j,k;
int N = size;
int ILO=1;
@@ -41,11 +43,11 @@ void dhessa(double *in1,int size,int nout,double *out1, double *out2){
WORK = (double *)malloc((double)LWORK*sizeof(double));
dgehrd_(&N,&ILO,&IHI,A,&LDA,TAU,WORK,&N,&INFO);
- for(i=0;i<N;i++)
+ for(i=0;i<N;i++) /* copying it in output */
for(j=0;j<N;j++)
out2[i+j*N] = A[i+j*N];
- for(j=1;j<=N-2;j++){
+ for(j=1;j<=N-2;j++){ /* copying it in output */
for(i=j+2;i<=N;i++){
out2[(i-1)+(j-1)*N] = 0;
}
diff --git a/src/c/linearAlgebra/householder/dhouseholdera.c b/src/c/linearAlgebra/householder/dhouseholdera.c
new file mode 100644
index 0000000..5a98bfa
--- /dev/null
+++ b/src/c/linearAlgebra/householder/dhouseholdera.c
@@ -0,0 +1,90 @@
+/* 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: Sandeep Gupta
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+/* Householder orthogonal reflexion matrix */
+
+/*
+Syntax :-
+ //u=householder(v [,w])
+ //Description
+ //given 2 column vectors v w of same size householder(v,w) returns a unitary
+ //column vector u, such that (eye-2*u*u')*v is proportional to w.
+ //(eye-2*u*u') is the orthogonal Householder reflexion matrix
+ //
+ // w default value is eye(v). In this case vector (eye-2*u*u')*v is the
+ // vector eye(v)*(+-norm(v))
+*/
+#include <stdio.h>
+#include <stdlib.h>
+#include "householder.h"
+#include "eye.h"
+#include "matrixTranspose.h"
+#include "matrixMultiplication.h"
+#include <math.h>
+#include "norm.h"
+
+void dhouseholdera(int ninp,double *inp1,int row,double *inp2,double *out1){
+
+ int i,j;
+ double *x;
+ x = (double *)malloc(row*sizeof(double));
+
+ for(i=0;i<row;i++)
+ x[i] = inp1[i];
+
+ if(ninp < 2){
+ deyea(x,row,1);
+ }
+ else{
+ for(i=0;i<row;i++){
+ x[i] = inp2[i];
+ }
+ }
+
+ /* vt transpose of inp1 */
+
+ double *vt;
+ vt = (double *)malloc(row*sizeof(double));
+ dtransposea(inp1,row,1,vt);
+
+ /*wt transpose of inp2 */
+ double *wt;
+ wt = (double *)malloc(row*sizeof(double));
+ dtransposea(x,row,1,wt);
+
+ /* vvt = inp1*vt */
+ double *vvt;
+ vvt = (double *)malloc(1*1*sizeof(double));
+ dmulma(vt,1,row,inp1,row,1,vvt);
+
+ /* wwt = inp2*wt */
+ double *wwt;
+ wwt = (double *)malloc(1*1*sizeof(double));
+ dmulma(wt,1,row,x,row,1,wwt);
+
+ /* a=-sqrt((v'*v)/(w'*w)) */
+ double a;
+ //a = (double *)malloc(1*1*sizeof(double));
+ a = -sqrt(vvt[0]/wwt[0]);
+
+ for(i=0;i<row;i++){
+ out1[i] = x[i]*a+inp1[i];
+ }
+
+ /* norm of out1 */
+ double r;
+ r = dnorma(out1,row,1,2);
+
+ for(i=0;i<row;i++){
+ out1[i]=out1[i]/r;
+ }
+}
diff --git a/src/c/linearAlgebra/includes/fullrf.h b/src/c/linearAlgebra/includes/fullrf.h
new file mode 100644
index 0000000..cc0a33d
--- /dev/null
+++ b/src/c/linearAlgebra/includes/fullrf.h
@@ -0,0 +1,26 @@
+ /* 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: Sandeep Gupta
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __FULLRF_H__
+#define __FULLRF_H__
+#include "types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+double dfullrfa(int ninp,double *in1,int row,int col,double tol,double *out1,double *out2);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__FULLRF_H__*/
diff --git a/src/c/linearAlgebra/includes/givens.h b/src/c/linearAlgebra/includes/givens.h
new file mode 100644
index 0000000..4aac91b
--- /dev/null
+++ b/src/c/linearAlgebra/includes/givens.h
@@ -0,0 +1,25 @@
+ /* 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: Sandeep Gupta
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __GIVENS_H__
+#define __GIVENS_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void dgivensa(int ninp,double *inp1,int row,int col,double *inp2,int row1,int col1,int nout,double *out1,double *out2);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__givens_H__*/
diff --git a/src/c/linearAlgebra/includes/householder.h b/src/c/linearAlgebra/includes/householder.h
new file mode 100644
index 0000000..64350a1
--- /dev/null
+++ b/src/c/linearAlgebra/includes/householder.h
@@ -0,0 +1,26 @@
+ /* 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: Sandeep Gupta
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __HOUSEHOLDER_H__
+#define __HOUSEHOLDER_H__
+#include "types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void dhouseholdera(int ninp,double *inp1,int row,double *inp2,double *out1);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__HOUSEHOLDER_H__*/
diff --git a/src/c/linearAlgebra/includes/qr.h b/src/c/linearAlgebra/includes/qr.h
new file mode 100644
index 0000000..2ed12e3
--- /dev/null
+++ b/src/c/linearAlgebra/includes/qr.h
@@ -0,0 +1,26 @@
+ /* 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: Sandeep Gupta
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __QR_H__
+#define __QR_H__
+#include "types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+double dqra(int ninp,int nout,double *inp1,int M,int N,double tol,double *out1,double *out2,double *out3);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__QR_H__*/
diff --git a/src/c/linearAlgebra/includes/rowcomp.h b/src/c/linearAlgebra/includes/rowcomp.h
new file mode 100644
index 0000000..faf5a2a
--- /dev/null
+++ b/src/c/linearAlgebra/includes/rowcomp.h
@@ -0,0 +1,26 @@
+ /* 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: Sandeep Gupta
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __ROWCOMP_H__
+#define __ROWCOMP_H__
+#include "types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+double drowcompa(int ninp,double *A,int row,int col,char *flag,double tol,double *w);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__ROWCOMP_H__*/
diff --git a/src/c/linearAlgebra/includes/sqroot.h b/src/c/linearAlgebra/includes/sqroot.h
new file mode 100644
index 0000000..9c1d965
--- /dev/null
+++ b/src/c/linearAlgebra/includes/sqroot.h
@@ -0,0 +1,26 @@
+ /* 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: Sandeep Gupta
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+#ifndef __SQROOT_H__
+#define __SQROOT_H__
+#include "types.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void dsqroota(double *inp,int row,int col,double *out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__SQROOT_H__*/
diff --git a/src/c/linearAlgebra/interfaces/int_fullrf.h b/src/c/linearAlgebra/interfaces/int_fullrf.h
new file mode 100644
index 0000000..1b8a067
--- /dev/null
+++ b/src/c/linearAlgebra/interfaces/int_fullrf.h
@@ -0,0 +1,28 @@
+ /* 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: Sandeep Gupta
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_FULLRF_H__
+#define __INT_FULLRF_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define d2fullrfd2d2d0(in1,size,out1,out2) dfullrfa(1,in1,size[0],size[1],0,out1,out2);
+#define d2d0fullrfd2d2d0(in1,size,in2,out1,out2) dfullrfa(2,in1,size[0],size[1],in2,out1,out2);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_FULLRF_H__*/
+
diff --git a/src/c/linearAlgebra/interfaces/int_givens.h b/src/c/linearAlgebra/interfaces/int_givens.h
new file mode 100644
index 0000000..ba30dbc
--- /dev/null
+++ b/src/c/linearAlgebra/interfaces/int_givens.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: Sandeep Gupta
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_GIVENS_H__
+#define __INT_GIVENS_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define d2givensd2(in1,size,out1) dgivensa(1,in1,size[0],size[1],NULL,0,0,1,out1,NULL);
+#define d2givensd2d2(in1,size,out1,out2) dgivensa(1,in1,size[0],size[1],NULL,0,0,2,out1,out2);
+
+#define d0d0givensd2d2(in1,in2,out1,out2) dgivensa(2,&in1,1,1,&in2,1,1,2,out1,out2);
+#define d0d0givensd2(in1,out1) dgivensa(2,&in1,1,1,&in2,1,1,1,out1,NULL);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_GIVENS_H__*/
+
diff --git a/src/c/linearAlgebra/interfaces/int_householder.h b/src/c/linearAlgebra/interfaces/int_householder.h
new file mode 100644
index 0000000..f863719
--- /dev/null
+++ b/src/c/linearAlgebra/interfaces/int_householder.h
@@ -0,0 +1,28 @@
+ /* 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: Sandeep Gupta
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_HOUSEHOLDER_H__
+#define __INT_HOUSEHOLDER_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define d2householderd2(in1,size,out1) dhouseholdera(1,in1,size[0],NULL,out2);
+#define d2d2householderd2(in1,size1,in2,size2,out1) dhouseholdera(2,in1,size1[0],in2,out1);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_HOUSEHOLDER_H__*/
+
diff --git a/src/c/linearAlgebra/interfaces/int_qr.h b/src/c/linearAlgebra/interfaces/int_qr.h
new file mode 100644
index 0000000..d34d8f4
--- /dev/null
+++ b/src/c/linearAlgebra/interfaces/int_qr.h
@@ -0,0 +1,34 @@
+ /* 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: Sandeep Gupta
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_QR_H__
+#define __INT_QR_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define d2qrd2d2(in1,size,out1,out2) dqra(1,2,in1,size[0],size[1],0,out1,out2,NULL);
+#define d2qrd2d2d2(in1,size,out1,out2,out3) dqra(1,3,in1,size[0],size[1],0,out1,out2,out3);
+#define d2g2qrd2d2(in1,size,in2,size1,out1,out2) dqra(2,2,in1,size[0],size[1],0,out1,out2,NULL);
+#define d2g2qrd2d2d2(in1,size,in2,size1,out1,out2,out3) dqra(2,3,in1,size[0],size[1],0,out1,out2,out3);
+#define d2d0qrd2d2d0d2(in1,size,in2,out1,out2,out3) dqra(2,4,in1,size[0],size[1],in2,out1,out2,out3);
+#define d2qrd2d2d0d2(in1,size,out1,out2,out3) dqra(1,4,in1,size[0],size[1],0,out1,out2,out3);
+
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_HESS_H__*/
+
diff --git a/src/c/linearAlgebra/interfaces/int_rowcomp.h b/src/c/linearAlgebra/interfaces/int_rowcomp.h
new file mode 100644
index 0000000..b72687d
--- /dev/null
+++ b/src/c/linearAlgebra/interfaces/int_rowcomp.h
@@ -0,0 +1,29 @@
+ /* 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: Sandeep Gupta
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_ROWCOMP_H__
+#define __INT_ROWCOMP_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define d2rowcompd2d0(in1,size,out1) drowcompa(1,in1,size[0],size[1],NULL,0,out1);
+#define d2g2rowcompd2d0(in1,size,flag,size1,out1) drowcompa(2,in1,size[0],size[1],flag,0,out1);
+#define d2g2d0rowcompd2d0(in1,size,flag,size1,tol,out1) drowcompa(2,in1,size[0],size[1],flag,tol,out1);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_ROWCOMP_H__*/
+
diff --git a/src/c/linearAlgebra/interfaces/int_sqroot.h b/src/c/linearAlgebra/interfaces/int_sqroot.h
new file mode 100644
index 0000000..57af2c0
--- /dev/null
+++ b/src/c/linearAlgebra/interfaces/int_sqroot.h
@@ -0,0 +1,27 @@
+ /* 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: Sandeep Gupta
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+#ifndef __INT_SQROOT_H__
+#define __INT_SQROOT_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define d2sqrootd2(inp,size,out) dsqroota(inp,size[0],size[1],out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_HESS_H__*/
+
diff --git a/src/c/linearAlgebra/proj/dproja.c b/src/c/linearAlgebra/proj/dproja.c
new file mode 100644
index 0000000..e27cd6f
--- /dev/null
+++ b/src/c/linearAlgebra/proj/dproja.c
@@ -0,0 +1,73 @@
+/* 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: Sandeep Gupta
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+/* Scilab function proj code in C */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include "proj.h"
+#include "eye.h"
+#include "matrixTranspose.h"
+#include "matrixMultiplication.h"
+#include <math.h>
+#include "norm.h"
+
+
+double dproja(double *x1,int l,int k,double *x2,int m2,int n2,double *y){
+ int i,j;
+ double *w;
+ w = (double *)malloc(l*l*sizeof(double));
+ double rk;
+ rk = drowcompa(1,x1,l,k,NULL,0,w);
+
+ double *w1;
+ w1 = (double *)malloc(rk*l*sizeof(double));
+
+ for(i=0;i<l*rk;i++){
+ w1[i]=w[i];
+ }
+
+ double *x1t;
+ x1t = (double *)malloc((l-n)*l*sizeof(double);
+
+ for(i=n;i<l;i++){
+ for(j=0;j<l;j++){
+ x1t[i-n+j*l] = w1[i+j*l];
+ }
+ }
+
+ double x1x2;
+ x1x2 = (double *)malloc((l-n+1)*n2*sizeof(double));
+ dmulma(x1t,l-n+1,l,x2,m2,n2,x1x2);
+
+ double *inx1x2;
+ inx1x2 = (double *)malloc();
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+}
diff --git a/src/c/linearAlgebra/projspec/dprojspeca.c b/src/c/linearAlgebra/projspec/dprojspeca.c
new file mode 100644
index 0000000..aea9713
--- /dev/null
+++ b/src/c/linearAlgebra/projspec/dprojspeca.c
@@ -0,0 +1,67 @@
+/* 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: Sandeep Gupta
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+/* PROJSPEC function in scilab */
+
+/*
+ //[S,P,D,index]=projspec(A)
+ //Spectral characteristics of A at 0
+ //S = reduced resolvent at 0 (S=-Drazin_inverse(A))
+ //P = spectral projection at 0
+ //D = Nilpotent operator at 0
+ //index = index of the 0 eigenvalue
+ //!
+
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "norm.h"
+#include "eye.h"
+
+#define eps pow(2,-52)
+
+double dprojspeca(double *inp1,int row,int col,double *out1,double *out2,double *out3){
+ double tol = pow(10,-6);
+ int i,j,index;
+ /*norm(A,1)*/
+ double nor;
+ nor = dnorma(inp1,row,col,1);
+
+ /* P=eye(A),D=A,S=0*P;index=1; */
+ if(nor < eps*row*row){
+ memcpy(out2,inp1,row*col*sizeof(double));
+ deyea(out2,row,col);
+ memcpy(out3,inp1,row*col*sizeof(double));
+ for(i=0;i<row;i++){
+ for(j=0;j<row;j++){
+ out1[i*row+j] = 0;
+ }
+ }
+ index = 1;
+ }
+
+ /* rcond(A) */
+ double *rcon;
+ rcon = rcond(inp1,row);
+ if(rcon > tol){
+ dinverma(inp1,out1,row);
+ for(i=0;i<row*col;i++){
+ out2[i]=0;
+ out3[i]=0;
+ }
+ index = 0;
+ return index;
+ }
+ index = 1;
+}
diff --git a/src/c/linearAlgebra/qr/dqra.c b/src/c/linearAlgebra/qr/dqra.c
new file mode 100644
index 0000000..bae4bc2
--- /dev/null
+++ b/src/c/linearAlgebra/qr/dqra.c
@@ -0,0 +1,298 @@
+/* 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: Sandeep Gupta
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+/* This C code is used to generate function for QR decomposition */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "qr.h"
+#include "lapack.h"
+#include "string.h"
+#include "matrixTranspose.h"
+
+/*For reference check Scilab source code & lapack library websites
+Names of variable are almost same for convience.
+*/
+/*
+int min(int M,int N){
+ if(M > N) return N;
+ return M;
+}
+
+int max(int M,int N){
+ if(M > N) return N;
+ return N;
+}*/
+
+/* External Function used of lapack library */
+extern double dgeqrf_(int *,int *,double *,int *,double *,double *,int *,int *);
+extern double dlacpy_(char *,int *,int *,double *,int *,double *,int *);
+extern double dgeqpf_(int *,int *,double *,int *,int *,double *,double *,int *);
+extern double dorgqr_(int *,int *,int *,double *,int *,double *,double *,int *,int *);
+extern void dlaset_(char *,int *,int *,double *,double *,double *,int *);
+
+/* function for finding qr */
+double dqra(int ninp,int nout,double *inp1,int M,int N,double tol,double *out1,double *out2,double *out3){
+ int i,j;
+ char choice;
+ double alpha=0.0,beta=0.0;
+ int minMN = min(M,N);
+
+ double *A;
+ A = (double *)malloc(M*N*sizeof(double));
+ memcpy(A,inp1,M*N*sizeof(double));
+
+ if(M <= 0 || N <= 0){
+ out1 = NULL;
+ out2 = NULL;
+ return 0;
+ }
+ /* doldqr */
+ if(nout == 4){ /* [Q,R,rk,E]=qr(X [,tol]) */
+ if(ninp == 1){
+ tol = -1;
+ }
+
+ int INFO,rk;
+
+ int *JPVT;
+ JPVT = ( int *)malloc(N*sizeof(int));
+
+ double *TAU;
+ TAU = (double *)malloc(minMN*sizeof(double));
+
+ int LWORK = 3*N;
+
+ double *WORK;
+ WORK = (double *)malloc(LWORK*sizeof(double));
+
+ for(i=1;i<=M;i++){
+ JPVT[i-1]=0.0;
+ }
+ dgeqpf_(&M,&N,A,&M,JPVT,TAU,WORK,&INFO);
+
+ choice = 'U';
+ dlacpy_(&choice,&M,&N,A,&M,out2,&M);
+
+ if(M > N){
+ for(j=1;j<=N;j++){
+ for(i=j+1;i<=M;i++){
+ out2[i-1+(j-1)*M] = 0.0;
+ }
+ }
+ }
+ else{
+ for(j=1;j<=M-1;j++){
+ for(i=j+1;i<=M;i++){
+ out2[i-1+(j-1)*M] = 0.0;
+ }
+ }
+ }
+
+ if(M > N){
+ choice = 'F';
+ dlacpy_(&choice,&M,&N,A,&M,out1,&M);
+ for(j=N+1;j<=M;j++){
+ for(i=1;i<=M;i++){
+ out1[i-1+(j-1)*M] = 0.0;
+ }
+ }
+ }
+ else{
+ choice = 'F';
+ dlacpy_(&choice,&M,&M,A,&M,out1,&M);
+ }
+
+ dorgqr_(&M,&M,&minMN,out1,&M,TAU,WORK,&LWORK,&INFO);
+
+ choice = 'F';
+ dlaset_(&choice,&N,&N,&alpha,&beta,out3,&N);
+
+ for(j=1;j<=N;j++){
+ i = JPVT[j-1];
+ out3[i-1+(j-1)*N] = 1.0;
+ }
+
+ double tt = abs(out2[0]);
+
+ if(tol == -1){
+ tol = (double)max(M,N)*pow(2,-52)*tt;
+ }
+ double ch;
+ //printf("%lf ",tol);
+ for(j=1;j<=minMN;j++){
+ //printf("%e ",out2[(j-1)+(j-1)*M]);
+ if(out2[(j-1)+(j-1)*M] < 0){
+ ch = -out2[(j-1)+(j-1)*M];
+ }
+ else{
+ ch = out2[(j-1)+(j-1)*M];
+ }
+ if(ch > tol){
+ rk = j;
+ }
+ else{
+ break;
+ }
+ }
+ //printf("\n");
+ return rk;
+ }
+ else if(ninp == 1){
+ /* (intdgeqpf3)
+ [Q,R]=qr(A)
+ [Q,R,E]=qr(A)
+ */
+ int LDA = M;
+
+ double *TAU;
+ TAU = (double *)malloc(min(M,N)*sizeof(double));
+
+ int LWORK;
+ if(nout <= 2)
+ LWORK = N;
+ else
+ LWORK = 3*N;
+
+ double *WORK;
+ WORK = (double *)malloc((LWORK+1)*sizeof(double));
+
+ int INFO;
+
+ int *JPVT;
+ JPVT = (int *)malloc(N*sizeof(int));
+
+ if(nout <= 2){
+ dgeqrf_(&M,&N,A,&M,TAU,WORK,&LWORK,&INFO);
+ }
+ else{
+ for(i=0;i<N;i++){
+ *(JPVT+i)=0.0;
+ }
+ dgeqpf_(&M,&N,A,&M,JPVT,TAU,WORK,&INFO);
+ }
+
+ /* Copying code from A to R */
+ choice = 'U';
+ dlacpy_(&choice,&M,&N,A,&M,out2,&M);
+ /*for(i=0;i<M;i++){
+ for(j=0;j<N-i;j++){
+ out2[i+j*M] = A[i+j*M];
+ }
+ }*/
+
+ if(M > N){
+ for(j=1;j<=N;j++){
+ for(i=j+1;i<=M;i++){
+ out2[i-1+(j-1)*M] = 0.0;
+ }
+ }
+ }
+ else{
+ for(j=1;j<=M-1;j++){
+ for(i=j+1;i<=M;i++){
+ out2[i-1+(j-1)*M] = 0.0;
+ }
+ }
+ }
+ /* lQ - out1 */
+ if(M > N){
+ choice = 'F';
+ dlacpy_(&choice,&M,&N,A,&M,out1,&M);
+ /*for(i=0;i<M*N;i++){
+ out1[i]=A[i];
+ }*/
+ for(j=N+1;j<=M;j++){
+ for(i=1;i<=M;i++){
+ out1[i+(j-1)*M] = 0.0;
+ }
+ }
+ }
+ else{
+ choice = 'F';
+ dlacpy_(&choice,&M,&M,A,&M,out1,&M);
+ /*for(i=0;i<M;i++){
+ for(j=0;j<M;j++){
+ out1
+ }
+ }*/
+ }
+ dorgqr_(&M,&M,&minMN,out1,&M,TAU,WORK,&LWORK,&INFO);
+
+ if(nout > 2){
+ choice = 'F';
+ dlaset_(&choice,&N,&N,&alpha,&beta,out3,&N);
+ for(j=1;j<=N;j++){
+ i = *(JPVT+j-1);
+ //printf("%d ",i-1+(j-1)*N);
+ *(out3+i-1+(j-1)*N) = 1.0;
+ }
+ //printf("\n");
+ }
+ }
+ else{/*
+ [[Q,R]=qr(A,'e')
+ [Q,R,E]=qr(A,'e') ] */
+ int *JPVT;
+ JPVT = (int *)malloc(N*sizeof(int));
+
+ double *TAU;
+ TAU = (double *)malloc(min(M,N)*sizeof(double));
+ int LWORK;
+ if(nout <= 2){
+ LWORK = N;
+ }
+ else{
+ LWORK = 3*N;
+ }
+
+ double *WORK;
+ WORK = (double *)malloc(LWORK*sizeof(double));
+
+ int INFO;
+ if(nout <= 2)
+ dgeqrf_(&M,&N,A,&M,TAU,WORK,&LWORK,&INFO);
+ else{
+ for(i=1;i<=N;i++){
+ JPVT[i-1]=0.0;
+ }
+ dgeqpf_(&M,&N,A,&M,JPVT,TAU,WORK,&INFO);
+ }
+ choice = 'U';
+
+ dlacpy_(&choice,&minMN,&N,A,&M,out2,&minMN);
+
+ if(N >= 2){
+ for(j=1;j<=N-1;j++){
+ if(j+1 <= minMN){
+ for(i=j+1;i<=minMN;i++){
+ out2[i-1+(j-1)*minMN] = 0.0;
+ }
+ }
+ }
+ }
+ choice = 'F';
+ dlacpy_(&choice,&M,&minMN,A,&M,out1,&M);
+ dorgqr_(&M,&minMN,&minMN,out1,&M,TAU,WORK,&LWORK,&INFO);
+
+ if(nout > 2){
+ choice = 'F';
+ dlaset_(&choice,&N,&N,&alpha,&beta,out3,&N);
+ for(j=1;j<=N;j++){
+ i = JPVT[j-1];
+ out3[i-1+(j-1)*N] = 1.0;
+ }
+ }
+ }
+ return 0;
+}
diff --git a/src/c/linearAlgebra/rowcomp/drowcompa.c b/src/c/linearAlgebra/rowcomp/drowcompa.c
new file mode 100644
index 0000000..3161a2d
--- /dev/null
+++ b/src/c/linearAlgebra/rowcomp/drowcompa.c
@@ -0,0 +1,79 @@
+/* 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: Sandeep Gupta
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+/* This function is used to find row compression, range */
+
+#include "rowcomp.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "svd.h"
+#include "norm.h"
+#include "eye.h"
+#include "matrixTranspose.h"
+#include "qr.h"
+
+/* All variable names, are in consideration of scilab documentation. for reference please check the scilab code.*/
+
+double drowcompa(int ninp,double *A,int row,int col,char *flag,double tol,double *w){
+ double rk;
+ double *U;
+ double *S;
+ double *V;
+ double *q,*r,*e;
+ if(row == 0 || col == 0){
+ w = NULL;
+ return 0;
+ }
+
+ double nA1 = dnorma(A,row,col,1);
+ if(nA1 < sqrt(pow(2,-52))/10){
+ deyea(w,row,col);
+ return 0;
+ }
+ if(ninp == 1){
+ flag = "svd";
+ tol = sqrt(pow(2,-52))*nA1;
+ }
+ else if(ninp == 2){
+ tol = sqrt(pow(2,-52))*nA1;
+ }
+ else{
+ if(tol < 0){ /* if tolerance is negative */
+ printf(" Wrong values for input argument #: Non-negative scalar expected");
+ }
+ }
+ int M = row,N=col;
+ int minMN = min(M,N);
+ char check[3]="qr";
+ //printf(" %s ",flag);
+ if(strcmp(check,flag) == 0){
+ /* calling qr function*/
+ //printf(" * ");
+ q = (double *)malloc(M*min(M,N)*sizeof(double));
+ r = (double *)malloc(minMN*N*sizeof(double));
+ e = (double *)malloc(N*N*sizeof(double));
+ rk = dqra(2,4,A,M,N,tol,q,r,e);
+ memcpy(w,q,row*col*sizeof(double));
+ dtransposea(q,row,row,w);
+ return rk;
+ }
+ else{
+ /* svd function type */
+ U = (double *)malloc(row*row*sizeof(double));
+ S = (double *)malloc(row*col*sizeof(double));
+ V = (double *)malloc(col*col*sizeof(double));
+ rk = dsvda(tol,A,row,col,0,4,U,S,V);
+ dtransposea(U,row,row,w);
+ return rk;
+ }
+}
diff --git a/src/c/linearAlgebra/sqroot/dsqroota.c b/src/c/linearAlgebra/sqroot/dsqroota.c
new file mode 100644
index 0000000..1ba9726
--- /dev/null
+++ b/src/c/linearAlgebra/sqroot/dsqroota.c
@@ -0,0 +1,130 @@
+/* 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: Sandeep Gupta
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
+
+/* Function - sqroot of scilab, W*W' hermitian factorization */
+
+#include <stdio.h>
+#include "stdlib.h"
+#include "string.h"
+#include <math.h>
+#include "matrixTranspose.h"
+#include "svd.h"
+#include "matrixMultiplication.h"
+
+#define eps 2.22044604925e-16
+
+/*It would be good, if you are doing conversoins for only valid inputs before
+ running the program, check all the conditions before hand.
+*/
+
+void dsqroota(double *inp,int row,int col, double *out){
+ if(row != col){
+ printf("Enter valid inputs only - matrix should be symetric\n");
+ return;
+ }
+ int i,j;
+ double *U,*S,*V;
+ double *A,*B;
+ int rk;
+
+ U = (double *)malloc((double)row*row*sizeof(double));
+ S = (double *)malloc((double)Min(row,col)*Min(row,col)*sizeof(double));
+ V = (double *)malloc((double)col*col*sizeof(double));
+ A = (double *)malloc(rk*rk*sizeof(double));
+ B = (double *)malloc(rk*row*sizeof(double));
+
+ double *Q1;
+ Q1 = (double *)malloc(row*col*sizeof(double));
+
+ dtransposea(inp,row,col,Q1);
+
+ double *Q2;
+ Q2 = (double *)malloc(col*row*sizeof(double));
+
+ /* Q2 = (inp+inp1')/2; */
+ for(i=0;i<row;i++){
+ for(j=0;j<row;j++){
+ Q2[i+j*row] = ((inp[i+j*row]+Q1[i+j*row])/2);
+ }
+ }
+
+ /* norm(Q2-Q1,1) - finding the max value from sum of columns */
+ double sum = 0;
+ double maxi=0;
+ for(i=0;i<row;i++){
+ sum = 0;
+ for(j=0;j<col;j++) sum+=(Q2[i*row+j]-inp[i*row+j]);
+ if(maxi < sum){
+ maxi = sum;
+ }
+ }
+
+ /* if norm(Q1-Q,1) > 100*%eps then */
+ if(maxi > 100*eps){
+ printf("Warning: Wrong size for input argument and Symmetric expected\n");
+ }
+ maxi = 0;
+ for(i=0;i<col;i++){
+ sum=0;
+ for(j=0;j<row;j++) sum+=Q1[i*row+j];
+ if(maxi < sum){
+ maxi = sum;
+ }
+ }
+
+ /*if norm(Q,1) < sqrt(%eps) then S=[];return;end*/
+
+ if(maxi < sqrt(eps)){
+ out = NULL;
+ }
+ else{
+ rk = dsvda(0,inp,row,col,0,4,U,S,V);
+
+ /*Will be used in complex numbers*/
+ //C = (double *)malloc(rk*row*sizeof(double));
+
+ /*for(i=0;i<row;i++){
+ for(j=0;j<row;j++){
+ printf("%lf ",S[i*row+j]);
+ }
+ printf("\n");
+ }*/
+ /*sqrt of S*/
+ //printf("%d ",rk);
+ for(i=0;i<rk;i++){
+ for(j=0;j<rk;j++){
+ A[i*rk+j] = sqrt(S[i*row+j]);
+ //printf("%lf ",A[i*rk+j]);
+ }
+ }
+ for(i=0;i<col*rk;i++){
+ B[i] = V[i];
+ //printf("%lf ",B[i]);
+ }
+ //printf("\n");
+ /*for(i=0;i<rk;i++){
+ for(j=0;j<rk;j++){
+ //A[i*rk+j] = sqrt(S[i*row+j]);
+ printf("%lf ",A[i*rk+j]);
+ }
+ printf("\n");
+ }*/
+ /*for(i=0;i<col;i++){
+ for(j=0;j<rk;j++){
+ //B[i*col+j] = VT[i*col+j];
+ printf("%lf ",B[i*col+j]);
+ }
+ printf("\n");
+ }*/
+ dmulma(B,col,rk,A,rk,rk,out);
+ }
+}
diff --git a/src/c/linearAlgebra/sva/dsvaa.c b/src/c/linearAlgebra/sva/dsvaa.c
index b7d07d8..691694e 100644
--- a/src/c/linearAlgebra/sva/dsvaa.c
+++ b/src/c/linearAlgebra/sva/dsvaa.c
@@ -20,6 +20,7 @@
#define eps 2.22044604925e-16
+/* Ref: Scilab source code */
void dsvaa(int ninp,double *in1,int row,int col,double in2,double *out1, \
double *out2,double *out3){
@@ -33,14 +34,14 @@ void dsvaa(int ninp,double *in1,int row,int col,double in2,double *out1, \
/* Calculation of svd of a given matrix */
double *U,*S,*V;
- U = (double *)malloc((double)row*min(row,col)*sizeof(double));
- S = (double *)malloc((double)min(row,col)*min(row,col)*sizeof(double));
- V = (double *)malloc((double)col*min(row,col)*sizeof(double));
+ U = (double *)malloc((double)row*Min(row,col)*sizeof(double));
+ S = (double *)malloc((double)Min(row,col)*Min(row,col)*sizeof(double));
+ V = (double *)malloc((double)col*Min(row,col)*sizeof(double));
dsvda(0,in1,M,N,1,3,U,S,V);
if (ninp == 1){ /* [u,s,v] = sva(A) when input is only matrix */
- tol = max(row,col)*S[0]*eps;
+ tol = Max(row,col)*S[0]*eps;
rk = 0;
for(i=0;i<col;i++){
if(S[i+i*row] > tol){
@@ -52,7 +53,7 @@ void dsvaa(int ninp,double *in1,int row,int col,double in2,double *out1, \
tol = in2;
if(tol > 1){
rk = tol;
- if(rk > min(row,col)){
+ if(rk > Min(row,col)){
printf("ERROR: Wrong value for input argument !");
out1 = NULL;
out2 = NULL;
@@ -70,21 +71,21 @@ void dsvaa(int ninp,double *in1,int row,int col,double in2,double *out1, \
}
}
arow = M;
- acol = min(M,N);
+ acol = Min(M,N); /* Copying, the output in required format */
for(i=0;i<arow;i++){
for(j=0;j<rk;j++){
out1[i+j*row]=U[i+j*arow];
}
}
- arow = min(M,N);
- for(i=0;i<rk;i++){
+ arow = Min(M,N);
+ for(i=0;i<rk;i++){ /* Copying, the output in required format */
for(j=0;j<rk;j++){
out2[i+j*(int)rk] = S[i+j*arow];
}
}
arow = N;
- acol = min(M,N);
- for(i=0;i<arow;i++){
+ acol = Min(M,N);
+ for(i=0;i<arow;i++){ /* Copying, the output in required format */
for(j=0;j<rk;j++){
out3[i+j*arow] = V[i+j*arow];
}
diff --git a/src/c/linearAlgebra/svd/.1.c.swp b/src/c/linearAlgebra/svd/.1.c.swp
new file mode 100644
index 0000000..81d9e9c
--- /dev/null
+++ b/src/c/linearAlgebra/svd/.1.c.swp
Binary files differ
diff --git a/src/c/linearAlgebra/svd/zsvda.c b/src/c/linearAlgebra/svd/zsvda.c
index 0d36022..c75cc50 100644
--- a/src/c/linearAlgebra/svd/zsvda.c
+++ b/src/c/linearAlgebra/svd/zsvda.c
@@ -19,6 +19,7 @@
#include "matrixTranspose.h"
#include "conj.h"
+/* Lapack functions used . */
extern doubleComplex zgesvd_( char* , char* , int* , int* ,doubleComplex *,\
int* , double* ,doubleComplex* , int* ,doubleComplex* , int* ,\
doubleComplex* , int* , double* , int* );
@@ -113,7 +114,16 @@ void zsvda(doubleComplex *in1,int row,int col,int in2,int nout, doubleComplex *o
out3[i+j*N] = zconjs(VT[j+i*N]);
out3[j+i*N] = zconjs(VT[i+j*N]);
}
- }
+ }
+ /* output from zgesvd is copied to out2 variables in required format*/
+ for(j=0;j<M;j++){
+ for(k=0;k<N;k++){
+ if(j == k)
+ out2[j*(Min(M,N))+k] = DoubleComplex(S[j],0);
+ else
+ out2[j*(Min(M,N))+k] = DoubleComplex(0,0);
+ }
+ }
//ztransposea(VT,LDVT,Min(M,N),out3);
/*for(i=0;i<N;i++){
for(j=0;j<N;j++){
@@ -124,7 +134,7 @@ void zsvda(doubleComplex *in1,int row,int col,int in2,int nout, doubleComplex *o
//free(U);
//free(VT);
}
- else{
+ else{ /*svd(x,'e')*/
LDA = M;
LDU = M;
if(M > N){
@@ -156,18 +166,18 @@ void zsvda(doubleComplex *in1,int row,int col,int in2,int nout, doubleComplex *o
for(j=0;j<N;j++){
out3[j+i*N] = zconjs(VT[i+j*Min(M,N)]);
}
- }
+ }
+ /* output from zgesvd is copied to out2 variables in required format*/
+ for(j=0;j<Min(M,N);j++){
+ for(k=0;k<Min(M,N);k++){
+ if(j == k)
+ out2[j*(Min(M,N))+k] = DoubleComplex(S[j],0);
+ else
+ out2[j*(Min(M,N))+k] = DoubleComplex(0,0);
+ }
+ }
//free(U);
//free(VT);
}
- /* output from zgesvd is copied to out2 variables in required format*/
- for(j=0;j<Min(M,N);j++){
- for(k=0;k<Min(M,N);k++){
- if(j == k)
- out2[j*(Min(M,N))+k] = DoubleComplex(S[j],0);
- else
- out2[j*(Min(M,N))+k] = DoubleComplex(0,0);
- }
- }
}
}
diff --git a/src/c/matrixOperations/cross/ccrossa.c b/src/c/matrixOperations/cross/ccrossa.c
new file mode 100644
index 0000000..5f74bb3
--- /dev/null
+++ b/src/c/matrixOperations/cross/ccrossa.c
@@ -0,0 +1,37 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <cross.h>
+#include "floatComplex.h"
+#include "stdlib.h"
+#include "string.h"
+#include "cat.h"
+
+void ccrossa (floatComplex* inp1, int size1_r, int size1_c, floatComplex* inp2, int size2_r, int size2_c ,floatComplex* oup)
+{
+ int i,j;
+
+ if (size1_c == 3 && size1_r == 1) // Calculating the cross product for a 1X3 Matrix
+ {
+ oup[0] = inp1[1]*inp2[2] - inp1[2]*inp2[1];
+ oup[1] = inp1[2]*inp2[0] - inp1[0]*inp2[2];
+ oup[2] = inp1[0]*inp2[1] - inp1[1]*inp2[0];
+ printf("%lf ", oup[0]);
+ printf("%lf ", oup[1]);
+ printf("%lf \n", oup[2]);
+ }
+ else // Calculating the cross product for a 3XN Matrix
+ {
+ for(i = 0; i < size1_r; i++)
+ {
+ for(j = 0; j < size1_c; j = j+3)
+ {
+ oup[j+(i*size1_r)] = inp1[(j+1)+(i*size1_r)] * inp2[(j+2)+(i*size1_r)] - inp1[(j+2)+(i*size1_r)] * inp2[(j+1)+(i*size1_r)];
+ oup[(j+1)+(i*size1_r)] = inp1[(j+2)+(i*size1_r)] * inp2[(j+0)+(i*size1_r)] - inp1[(j+0)+(i*size1_r)] * inp2[(j+2)+(i*size1_r)];
+ oup[(j+2)+(i*size1_r)] = inp1[(j+0)+(i*size1_r)] * inp2[(j+1)+(i*size1_r)] - inp1[(j+1)+(i*size1_r)] * inp2[(j+0)+(i*size1_r)];
+
+ }
+ }
+
+ }
+}
+
diff --git a/src/c/matrixOperations/cross/dcrossa.c b/src/c/matrixOperations/cross/dcrossa.c
new file mode 100644
index 0000000..203ec24
--- /dev/null
+++ b/src/c/matrixOperations/cross/dcrossa.c
@@ -0,0 +1,33 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <cross.h>
+
+void dcrossa (double* inp1, int size1_r, int size1_c, double* inp2, int size2_r, int size2_c ,double* oup)
+{
+ int i,j;
+
+ if (size1_c == 3 && size1_r == 1) // Calculating the cross product for a 1X3 Matrix
+ {
+ oup[0] = inp1[1]*inp2[2] - inp1[2]*inp2[1];
+ oup[1] = inp1[2]*inp2[0] - inp1[0]*inp2[2];
+ oup[2] = inp1[0]*inp2[1] - inp1[1]*inp2[0];
+ printf("%lf ", oup[0]);
+ printf("%lf ", oup[1]);
+ printf("%lf \n", oup[2]);
+ }
+ else // Calculating the cross product for a 3XN Matrix
+ {
+ for(i = 0; i < size1_r; i++)
+ {
+ for(j = 0; j < size1_c; j = j+3)
+ {
+ oup[j+(i*size1_r)] = inp1[(j+1)+(i*size1_r)] * inp2[(j+2)+(i*size1_r)] - inp1[(j+2)+(i*size1_r)] * inp2[(j+1)+(i*size1_r)];
+ oup[(j+1)+(i*size1_r)] = inp1[(j+2)+(i*size1_r)] * inp2[(j+0)+(i*size1_r)] - inp1[(j+0)+(i*size1_r)] * inp2[(j+2)+(i*size1_r)];
+ oup[(j+2)+(i*size1_r)] = inp1[(j+0)+(i*size1_r)] * inp2[(j+1)+(i*size1_r)] - inp1[(j+1)+(i*size1_r)] * inp2[(j+0)+(i*size1_r)];
+
+ }
+ }
+
+ }
+}
+
diff --git a/src/c/matrixOperations/cross/i16crossa.c b/src/c/matrixOperations/cross/i16crossa.c
new file mode 100644
index 0000000..91cdb7f
--- /dev/null
+++ b/src/c/matrixOperations/cross/i16crossa.c
@@ -0,0 +1,34 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <cross.h>
+#include "int16.h"
+
+void i16crossa (int16* inp1, int size1_r, int size1_c, int16* inp2, int size2_r, int size2_c ,int16* oup)
+{
+ int i,j;
+
+ if (size1_c == 3 && size1_r == 1) // Calculating the cross product for a 1X3 Matrix
+ {
+ oup[0] = inp1[1]*inp2[2] - inp1[2]*inp2[1];
+ oup[1] = inp1[2]*inp2[0] - inp1[0]*inp2[2];
+ oup[2] = inp1[0]*inp2[1] - inp1[1]*inp2[0];
+ printf("%lf ", oup[0]);
+ printf("%lf ", oup[1]);
+ printf("%lf \n", oup[2]);
+ }
+ else // Calculating the cross product for a 3XN Matrix
+ {
+ for(i = 0; i < size1_r; i++)
+ {
+ for(j = 0; j < size1_c; j = j+3)
+ {
+ oup[j+(i*size1_r)] = inp1[(j+1)+(i*size1_r)] * inp2[(j+2)+(i*size1_r)] - inp1[(j+2)+(i*size1_r)] * inp2[(j+1)+(i*size1_r)];
+ oup[(j+1)+(i*size1_r)] = inp1[(j+2)+(i*size1_r)] * inp2[(j+0)+(i*size1_r)] - inp1[(j+0)+(i*size1_r)] * inp2[(j+2)+(i*size1_r)];
+ oup[(j+2)+(i*size1_r)] = inp1[(j+0)+(i*size1_r)] * inp2[(j+1)+(i*size1_r)] - inp1[(j+1)+(i*size1_r)] * inp2[(j+0)+(i*size1_r)];
+
+ }
+ }
+
+ }
+}
+
diff --git a/src/c/matrixOperations/cross/i8crossa.c b/src/c/matrixOperations/cross/i8crossa.c
new file mode 100644
index 0000000..adfbd53
--- /dev/null
+++ b/src/c/matrixOperations/cross/i8crossa.c
@@ -0,0 +1,34 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <cross.h>
+#include "int8.h"
+
+void i8crossa (int8* inp1, int size1_r, int size1_c, int8* inp2, int size2_r, int size2_c ,int8* oup)
+{
+ int i,j;
+
+ if (size1_c == 3 && size1_r == 1) // Calculating the cross product for a 1X3 Matrix
+ {
+ oup[0] = inp1[1]*inp2[2] - inp1[2]*inp2[1];
+ oup[1] = inp1[2]*inp2[0] - inp1[0]*inp2[2];
+ oup[2] = inp1[0]*inp2[1] - inp1[1]*inp2[0];
+ printf("%lf ", oup[0]);
+ printf("%lf ", oup[1]);
+ printf("%lf \n", oup[2]);
+ }
+ else // Calculating the cross product for a 3XN Matrix
+ {
+ for(i = 0; i < size1_r; i++)
+ {
+ for(j = 0; j < size1_c; j = j+3)
+ {
+ oup[j+(i*size1_r)] = inp1[(j+1)+(i*size1_r)] * inp2[(j+2)+(i*size1_r)] - inp1[(j+2)+(i*size1_r)] * inp2[(j+1)+(i*size1_r)];
+ oup[(j+1)+(i*size1_r)] = inp1[(j+2)+(i*size1_r)] * inp2[(j+0)+(i*size1_r)] - inp1[(j+0)+(i*size1_r)] * inp2[(j+2)+(i*size1_r)];
+ oup[(j+2)+(i*size1_r)] = inp1[(j+0)+(i*size1_r)] * inp2[(j+1)+(i*size1_r)] - inp1[(j+1)+(i*size1_r)] * inp2[(j+0)+(i*size1_r)];
+
+ }
+ }
+
+ }
+}
+
diff --git a/src/c/matrixOperations/cross/scrossa.c b/src/c/matrixOperations/cross/scrossa.c
new file mode 100644
index 0000000..414b85a
--- /dev/null
+++ b/src/c/matrixOperations/cross/scrossa.c
@@ -0,0 +1,33 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <cross.h>
+
+void scrossa (float* inp1, int size1_r, int size1_c, float* inp2, int size2_r, int size2_c ,float* oup)
+{
+ int i,j;
+
+ if (size1_c == 3 && size1_r == 1) // Calculating the cross product for a 1X3 Matrix
+ {
+ oup[0] = inp1[1]*inp2[2] - inp1[2]*inp2[1];
+ oup[1] = inp1[2]*inp2[0] - inp1[0]*inp2[2];
+ oup[2] = inp1[0]*inp2[1] - inp1[1]*inp2[0];
+ printf("%lf ", oup[0]);
+ printf("%lf ", oup[1]);
+ printf("%lf \n", oup[2]);
+ }
+ else // Calculating the cross product for a 3XN Matrix
+ {
+ for(i = 0; i < size1_r; i++)
+ {
+ for(j = 0; j < size1_c; j = j+3)
+ {
+ oup[j+(i*size1_r)] = inp1[(j+1)+(i*size1_r)] * inp2[(j+2)+(i*size1_r)] - inp1[(j+2)+(i*size1_r)] * inp2[(j+1)+(i*size1_r)];
+ oup[(j+1)+(i*size1_r)] = inp1[(j+2)+(i*size1_r)] * inp2[(j+0)+(i*size1_r)] - inp1[(j+0)+(i*size1_r)] * inp2[(j+2)+(i*size1_r)];
+ oup[(j+2)+(i*size1_r)] = inp1[(j+0)+(i*size1_r)] * inp2[(j+1)+(i*size1_r)] - inp1[(j+1)+(i*size1_r)] * inp2[(j+0)+(i*size1_r)];
+
+ }
+ }
+
+ }
+}
+
diff --git a/src/c/matrixOperations/cross/u16crossa.c b/src/c/matrixOperations/cross/u16crossa.c
new file mode 100644
index 0000000..e0a32bc
--- /dev/null
+++ b/src/c/matrixOperations/cross/u16crossa.c
@@ -0,0 +1,34 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <cross.h>
+#include "uint16.h"
+
+void u16crossa (uint16* inp1, int size1_r, int size1_c, uint16* inp2, int size2_r, int size2_c ,uint16* oup)
+{
+ int i,j;
+
+ if (size1_c == 3 && size1_r == 1) // Calculating the cross product for a 1X3 Matrix
+ {
+ oup[0] = inp1[1]*inp2[2] - inp1[2]*inp2[1];
+ oup[1] = inp1[2]*inp2[0] - inp1[0]*inp2[2];
+ oup[2] = inp1[0]*inp2[1] - inp1[1]*inp2[0];
+ printf("%lf ", oup[0]);
+ printf("%lf ", oup[1]);
+ printf("%lf \n", oup[2]);
+ }
+ else // Calculating the cross product for a 3XN Matrix
+ {
+ for(i = 0; i < size1_r; i++)
+ {
+ for(j = 0; j < size1_c; j = j+3)
+ {
+ oup[j+(i*size1_r)] = inp1[(j+1)+(i*size1_r)] * inp2[(j+2)+(i*size1_r)] - inp1[(j+2)+(i*size1_r)] * inp2[(j+1)+(i*size1_r)];
+ oup[(j+1)+(i*size1_r)] = inp1[(j+2)+(i*size1_r)] * inp2[(j+0)+(i*size1_r)] - inp1[(j+0)+(i*size1_r)] * inp2[(j+2)+(i*size1_r)];
+ oup[(j+2)+(i*size1_r)] = inp1[(j+0)+(i*size1_r)] * inp2[(j+1)+(i*size1_r)] - inp1[(j+1)+(i*size1_r)] * inp2[(j+0)+(i*size1_r)];
+
+ }
+ }
+
+ }
+}
+
diff --git a/src/c/matrixOperations/cross/u8crossa.c b/src/c/matrixOperations/cross/u8crossa.c
new file mode 100644
index 0000000..7a8b857
--- /dev/null
+++ b/src/c/matrixOperations/cross/u8crossa.c
@@ -0,0 +1,34 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <cross.h>
+#include "uint8.h"
+
+void u8crossa (uint8* inp1, int size1_r, int size1_c, uint8* inp2, int size2_r, int size2_c ,uint8* oup)
+{
+ int i,j;
+
+ if (size1_c == 3 && size1_r == 1) // Calculating the cross product for a 1X3 Matrix
+ {
+ oup[0] = inp1[1]*inp2[2] - inp1[2]*inp2[1];
+ oup[1] = inp1[2]*inp2[0] - inp1[0]*inp2[2];
+ oup[2] = inp1[0]*inp2[1] - inp1[1]*inp2[0];
+ printf("%lf ", oup[0]);
+ printf("%lf ", oup[1]);
+ printf("%lf \n", oup[2]);
+ }
+ else // Calculating the cross product for a 3XN Matrix
+ {
+ for(i = 0; i < size1_r; i++)
+ {
+ for(j = 0; j < size1_c; j = j+3)
+ {
+ oup[j+(i*size1_r)] = inp1[(j+1)+(i*size1_r)] * inp2[(j+2)+(i*size1_r)] - inp1[(j+2)+(i*size1_r)] * inp2[(j+1)+(i*size1_r)];
+ oup[(j+1)+(i*size1_r)] = inp1[(j+2)+(i*size1_r)] * inp2[(j+0)+(i*size1_r)] - inp1[(j+0)+(i*size1_r)] * inp2[(j+2)+(i*size1_r)];
+ oup[(j+2)+(i*size1_r)] = inp1[(j+0)+(i*size1_r)] * inp2[(j+1)+(i*size1_r)] - inp1[(j+1)+(i*size1_r)] * inp2[(j+0)+(i*size1_r)];
+
+ }
+ }
+
+ }
+}
+
diff --git a/src/c/matrixOperations/cross/zcrossa.c b/src/c/matrixOperations/cross/zcrossa.c
new file mode 100644
index 0000000..85a1960
--- /dev/null
+++ b/src/c/matrixOperations/cross/zcrossa.c
@@ -0,0 +1,37 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <cross.h>
+#include "doubleComplex.h"
+#include "stdlib.h"
+#include "string.h"
+#include "cat.h"
+
+void zcrossa (doubleComplex* inp1, int size1_r, int size1_c, doubleComplex* inp2, int size2_r, int size2_c ,doubleComplex* oup)
+{
+ int i,j;
+
+ if (size1_c == 3 && size1_r == 1) // Calculating the cross product for a 1X3 Matrix
+ {
+ oup[0] = inp1[1]*inp2[2] - inp1[2]*inp2[1];
+ oup[1] = inp1[2]*inp2[0] - inp1[0]*inp2[2];
+ oup[2] = inp1[0]*inp2[1] - inp1[1]*inp2[0];
+ printf("%lf ", oup[0]);
+ printf("%lf ", oup[1]);
+ printf("%lf \n", oup[2]);
+ }
+ else // Calculating the cross product for a 3XN Matrix
+ {
+ for(i = 0; i < size1_r; i++)
+ {
+ for(j = 0; j < size1_c; j = j+3)
+ {
+ oup[j+(i*size1_r)] = inp1[(j+1)+(i*size1_r)] * inp2[(j+2)+(i*size1_r)] - inp1[(j+2)+(i*size1_r)] * inp2[(j+1)+(i*size1_r)];
+ oup[(j+1)+(i*size1_r)] = inp1[(j+2)+(i*size1_r)] * inp2[(j+0)+(i*size1_r)] - inp1[(j+0)+(i*size1_r)] * inp2[(j+2)+(i*size1_r)];
+ oup[(j+2)+(i*size1_r)] = inp1[(j+0)+(i*size1_r)] * inp2[(j+1)+(i*size1_r)] - inp1[(j+1)+(i*size1_r)] * inp2[(j+0)+(i*size1_r)];
+
+ }
+ }
+
+ }
+}
+
diff --git a/src/c/matrixOperations/includes/cross.h b/src/c/matrixOperations/includes/cross.h
new file mode 100644
index 0000000..0abd001
--- /dev/null
+++ b/src/c/matrixOperations/includes/cross.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 __CROSS_H__
+#define __CROSS_H__
+#include "types.h"
+#include "doubleComplex.h"
+#include "floatComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void dcrossa (double* inp1, int size1_r, int size1_c, double* inp2, int size2_r, int size2_c ,double* oup);
+void zcrossa (doubleComplex* inp1, int size1_r, int size1_c, doubleComplex* inp2, int size2_r, int size2_c ,doubleComplex* oup);
+void ccrossa (floatComplex* inp1, int size1_r, int size1_c, floatComplex* inp2, int size2_r, int size2_c ,floatComplex* oup);
+void scrossa (float* inp1, int size1_r, int size1_c, float* inp2, int size2_r, int size2_c ,float* oup);
+void u8crossa (uint8* inp1, int size1_r, int size1_c, uint8* inp2, int size2_r, int size2_c ,uint8* oup);
+void u16crossa (uint16* inp1, int size1_r, int size1_c, uint16* inp2, int size2_r, int size2_c ,uint16* oup);
+void i8crossa (int8* inp1, int size1_r, int size1_c, int8* inp2, int size2_r, int size2_c ,int8* oup);
+void i16crossa (int16* inp1, int size1_r, int size1_c, int16* inp2, int size2_r, int size2_c ,int16* oup);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__CROSS_H__*/
diff --git a/src/c/matrixOperations/includes/matrix.h b/src/c/matrixOperations/includes/matrix.h
new file mode 100644
index 0000000..582fd22
--- /dev/null
+++ b/src/c/matrixOperations/includes/matrix.h
@@ -0,0 +1,36 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#ifndef __MATRIX_H__
+#define __MATRIX_H__
+
+#include "types.h"
+#include "doubleComplex.h"
+#include "uint16.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void dmatrixa(double* , int , int , int , int , double*);
+void smatrixa( float* , int , int , int , int , float*);
+void u16matrixa(uint16 *, int , int , int , int ,uint16 *out);
+void zmatrixa(doubleComplex *, int , int , int , int ,doubleComplex *);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__MATRIX_H__*/
diff --git a/src/c/matrixOperations/includes/nnz.h b/src/c/matrixOperations/includes/nnz.h
new file mode 100644
index 0000000..c7d2d49
--- /dev/null
+++ b/src/c/matrixOperations/includes/nnz.h
@@ -0,0 +1,37 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#ifndef __NNZ_H__
+#define __NNZ_H__
+
+#include "types.h"
+#include "doubleComplex.h"
+#include "uint16.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+uint16 dnnza(double* , int , int);
+uint16 dnnzs(double);
+uint16 snnza( float* , int , int);
+uint16 snnzs( float);
+uint16 znnza(doubleComplex *, int , int);
+uint16 znnzs(doubleComplex);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__NNZ_H__*/
diff --git a/src/c/matrixOperations/includes/norm.h b/src/c/matrixOperations/includes/norm.h
index dc9d351..4fe3872 100644
--- a/src/c/matrixOperations/includes/norm.h
+++ b/src/c/matrixOperations/includes/norm.h
@@ -5,7 +5,7 @@
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: Siddhesh Wani
+ Author: Sandeep Gupta
Organization: FOSSEE, IIT Bombay
Email: toolbox@scilab.in
*/
diff --git a/src/c/matrixOperations/includes/spec.h b/src/c/matrixOperations/includes/spec.h
deleted file mode 100644
index b7b7d35..0000000
--- a/src/c/matrixOperations/includes/spec.h
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- * Copyright (C) 2008 - INRIA - Arnaud TORSET
- *
- * 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 __SPEC_H__
-#define __SPEC_H__
-
-#include "dynlib_matrixoperations.h"
-#include "doubleComplex.h"
-#include "floatComplex.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* spec gives only the eigenvalues
- If you want the eigenvalues and the eigenvectors, use spec2 */
-
-/* spec */
-#define sspecs(in) in
-#define dspecs(in) in
-#define cspecs(in) in
-#define zspecs(in) in
-
-EXTERN_MATOPS void sspeca(float* in, int rows, float* out);
-EXTERN_MATOPS void dspeca(double* in, int rows, double* out);
-EXTERN_MATOPS void cspeca(floatComplex* in, int rows, floatComplex* out);
-EXTERN_MATOPS void zspeca(doubleComplex* in, int rows,doubleComplex* out);
-
-
-
-/* spec2 */
-#define sspec2s(in,out) sspecs(1);*out=in;
-#define dspec2s(in,out) dspecs(1);*out=in;
-#define cspec2s(in,out) cspecs(FloatComplex(1,0));*out=FloatComplex(creals(in),cimags(in));
-#define zspec2s(in,out) zspecs(DoubleComplex(1,0));*out=DoubleComplex(zreals(in),zimags(in));
-
-EXTERN_MATOPS void sspec2a(float* in, int rows, float* eigenvalues,float* eigenvectors);
-EXTERN_MATOPS void dspec2a(double* in, int rows, double* eigenvalues,double* eigenvectors);
-EXTERN_MATOPS void cspec2a(floatComplex* in, int rows, floatComplex* eigenvalues,floatComplex* eigenvectors);
-EXTERN_MATOPS void zspec2a(doubleComplex* in, int rows,doubleComplex* eigenvalues,doubleComplex* eigenvectors);
-
-#ifdef __cplusplus
-} /* extern "C" */
-#endif
-
-#endif /* __SPEC_H__ */
diff --git a/src/c/matrixOperations/includes/toeplitz.h b/src/c/matrixOperations/includes/toeplitz.h
new file mode 100644
index 0000000..7384b43
--- /dev/null
+++ b/src/c/matrixOperations/includes/toeplitz.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 __TOEPLITZ_H__
+#define __TOEPLITZ_H__
+#include "types.h"
+#include "doubleComplex.h"
+#include "floatComplex.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+void dtoeplitza(double* inp1,int size1,double* inp2,int size2,double* oup);
+void u8toeplitza(uint8* inp1,int size1,uint8* inp2,int size2,uint8* oup);
+void u16toeplitza(uint16* inp1,int size1,uint16* inp2,int size2,uint16* oup);
+void ztoeplitza(doubleComplex* inp1,int size1,doubleComplex* inp2,int size2,doubleComplex* oup);
+void gtoeplitza(char* inp1,int size1,char* inp2,int size2,char* oup);
+void stoeplitza(float* inp1,int size1,float* inp2,int size2,float* oup);
+void ctoeplitza(floatComplex* inp1,int size1,floatComplex* inp2,int size2,floatComplex* oup);
+void i8toeplitza(int8* inp1,int size1,int8* inp2,int size2,int8* oup);
+void i16toeplitza(int16* inp1,int size1,int16* inp2,int size2,int16* oup);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__TOEPLITZ_H__*/
diff --git a/src/c/matrixOperations/interfaces/int_cross.h b/src/c/matrixOperations/interfaces/int_cross.h
new file mode 100644
index 0000000..8f4e782
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_cross.h
@@ -0,0 +1,35 @@
+ /* 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_CROSS_H__
+#define __INT_CROSS_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+#define d2d2crossd2(in1,size1,in2,size2,out) dcrossa(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+#define z2z2crossz2(in1,size1,in2,size2,out) zcrossa(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+#define c2c2crossc2(in1,size1,in2,size2,out) ccrossa(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+#define s2s2crosss2(in1,size1,in2,size2,out) scrossa(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+#define u82u82crossu82(in1,size1,in2,size2,out) u8crossa(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+#define i82i82crossi82(in1,size1,in2,size2,out) i8crossa(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+#define u162u162crossu162(in1,size1,in2,size2,out) u16crossa(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+#define i162i162crossi162(in1,size1,in2,size2,out) i16crossa(in1,size1[0],size1[1],in2,size2[0],size2[1],out)
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_CROSS_H__*/
diff --git a/src/c/matrixOperations/interfaces/int_matrix.h b/src/c/matrixOperations/interfaces/int_matrix.h
new file mode 100644
index 0000000..5935f4a
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_matrix.h
@@ -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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#ifndef __INT_MATRIX_H__
+#define __INT_MATRIX_H__
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define d2d0d0matrixd2(in1, size, in2, in3, out ) dmatrixa(in1, size[0], size[1], in2, in3, out)
+#define d2s0s0matrixd2(in1, size, in2, in3, out ) dmatrixa(in1, size[0], size[1], in2, in3, out)
+//#define d2u160u160matrixd2(in1, size, in2, in3, out ) dmatrixa(in1, size[0], size[1], in2, in3, out)
+//#define d2u80u80matrixd2(in1, size, in2, in3, out ) dmatrixa(in1, size[0], size[1], in2, in3, out)
+
+#define s2d0d0matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
+#define s2s0s0matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
+//#define s2u160u160matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
+//#define s2u80u80matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
+
+#define u162d0d0matrixu162(in1, size, in2, in3, out ) u16matrixa(in1, size[0], size[1], in2, in3, out)
+#define u162s0s0matrixu162(in1, size, in2, in3, out ) u16matrixa(in1, size[0], size[1], in2, in3, out)
+//#define s2u160u160matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
+//#define s2u80u80matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
+
+#define z2d0d0matrixz2(in1, size, in2, in3, out ) zmatrixa(in1, size[0], size[1], in2, in3, out)
+#define z2s0s0matrixz2(in1, size, in2, in3, out ) zmatrixa(in1, size[0], size[1], in2, in3, out)
+//#define s2u160u160matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
+//#define s2u80u80matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
+
+
+
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_MATRIX_H__*/
diff --git a/src/c/matrixOperations/interfaces/int_nnz.h b/src/c/matrixOperations/interfaces/int_nnz.h
new file mode 100644
index 0000000..0ef3953
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_nnz.h
@@ -0,0 +1,35 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#ifndef __INT_NNZ_H__
+#define __INT_NNZ_H__
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define d2nnzu160(in1, size) dnnza(in1, size[0], size[1])
+#define d0nnzu160(in) dnnzs(in)
+
+#define s2nnzu160(in1, size) snnza(in1, size[0], size[1])
+#define s0nnzu160(in) snnzs(in)
+
+#define z2nnzu160(in1, size) znnza(in1, size[0], size[1])
+#define z0nnzu160(in) znnzs(in)
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_NNZ_H__*/
diff --git a/src/c/matrixOperations/interfaces/int_spec.h b/src/c/matrixOperations/interfaces/int_spec.h
deleted file mode 100644
index 77ab55e..0000000
--- a/src/c/matrixOperations/interfaces/int_spec.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * 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
- *
- */
-
-/* THIS IS AN AUTOMATICALLY GENERATED FILE : DO NOT EDIT BY HAND. */
-
-#ifndef __INT_SPEC_H__
-#define __INT_SPEC_H__
-
-/* Only eigenvalues */
-
-#define s0specc0(in) FloatComplex (sspecs(in) , 0)
-
-#define d0specz0(in) DoubleComplex ( dspecs(in) , 0)
-
-#define c0specc0(in) cspecs(in)
-
-#define z0specz0(in) zspecs(in)
-
-#define s2specc2(in,size,out) {float* ZEROS;\
- ZEROS=malloc((uint)(size[0]*size[0]*sizeof(float)));\
- szerosa(ZEROS,size[0],size[0]);\
- cspeca(FloatComplexMatrix(in,ZEROS,size[0]*size[0]), size[0], out);\
- }
-
-#define d2specz2(in,size,out) {double* ZEROS;\
- ZEROS=malloc((uint)(size[0]*size[0]*sizeof(double)));\
- dzerosa(ZEROS,size[0],size[0]);\
- zspeca(DoubleComplexMatrix(in,ZEROS,size[0]*size[0]), size[0] , out);\
- }
-
-#define c2specc2(in,size,out) cspeca(in, size[0], out)
-
-#define z2specz2(in,size,out) zspeca(in, size[0], out)
-
-/* Eigenvalues and eigenvectors */
-
-#define s0specc0c0(in,out) cspec2s(FloatComplex( in,0) ,out)
-
-#define d0specz0z0(in,out) zspec2s(DoubleComplex(in,0) ,out)
-
-#define c0specc0c0(in,out) cspec2s(in,out)
-
-#define z0specz0z0(in,out) zspec2s(in,out)
-
-#define s2specc2c2(in,size,out1,out2) {float* ZEROS;\
- ZEROS=malloc((uint)(size[0]*size[0]*sizeof(float)));\
- szerosa(ZEROS,size[0],size[0]);\
- cspec2a(FloatComplexMatrix(in,ZEROS,size[0]*size[0]), size[0] , out1 , out2 );\
- }
-
-#define d2specz2z2(in,size,out1,out2) {double* ZEROS;\
- ZEROS=malloc((uint)(size[0]*size[0]*sizeof(double)));\
- dzerosa(ZEROS,size[0],size[0]);\
- zspec2a(DoubleComplexMatrix(in,ZEROS,size[0]*size[0]), size[0] , out1 , out2 );\
- }
-
-
-#define c2specc2c2(in,size,out1,out2) cspec2a(in, size[0], out2, out1)
-
-#define z2specz2z2(in,size,out1,out2) zspec2a(in, size[0], out2, out1)
-
-#endif /* !__INT_SPEC_H__ */
diff --git a/src/c/matrixOperations/interfaces/int_toeplitz.h b/src/c/matrixOperations/interfaces/int_toeplitz.h
new file mode 100644
index 0000000..b602e9a
--- /dev/null
+++ b/src/c/matrixOperations/interfaces/int_toeplitz.h
@@ -0,0 +1,50 @@
+ /* 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_TOEPLITZ_H__
+#define __INT_TOEPLITZ_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define d2d2toeplitzd2(in1,size1,in2,size2,out) dtoeplitza(in1,size1[1],in2,size2[1],out)
+#define d2toeplitzd2(in1,size1,out) dtoeplitza(in1,size1[1],in1,size1[1],out)
+
+#define u82u82toeplitzu82(in1,size1,in2,size2,out) u8toeplitza(in1,size1[1],in2,size2[1],out)
+#define u82toeplitzu82(in1,size1,out) u8toeplitza(in1,size1[1],in1,size1[1],out)
+
+#define u162u162toeplitzu162(in1,size1,in2,size2,out) u16toeplitza(in1,size1[1],in2,size2[1],out)
+#define u162toeplitzu162(in1,size1,out) u16toeplitza(in1,size1[1],in1,size1[1],out)
+
+#define g2g2toeplitzg2(in1,size1,in2,size2,out) gtoeplitza(in1,size1[1],in2,size2[1],out)
+#define g2toeplitzg2(in1,size1,out) gtoeplitza(in1,size1[1],in1,size1[1],out)
+
+#define z2z2toeplitzz2(in1,size1,in2,size2,out) ztoeplitza(in1,size1[1],in2,size2[1],out)
+#define z2toeplitzz2(in1,size1,out) ztoeplitza(in1,size1[1],in1,size1[1],out)
+
+#define s2s2toeplitzs2(in1,size1,in2,size2,out) stoeplitza(in1,size1[1],in2,size2[1],out)
+#define s2toeplitzs2(in1,size1,out) stoeplitza(in1,size1[1],in1,size1[1],out)
+
+#define c2c2toeplitzc2(in1,size1,in2,size2,out) ctoeplitza(in1,size1[1],in2,size2[1],out)
+#define c2toeplitzc2(in1,size1,out) ctoeplitza(in1,size1[1],in1,size1[1],out)
+
+#define i82i82toeplitzi82(in1,size1,in2,size2,out) i8toeplitza(in1,size1[1],in2,size2[1],out)
+#define i82toeplitzi82(in1,size1,out) i8toeplitza(in1,size1[1],in1,size1[1],out)
+
+#define i162i162toeplitzi162(in1,size1,in2,size2,out) i16toeplitza(in1,size1[1],in2,size2[1],out)
+#define i162toeplitzi162(in1,size1,out) i16toeplitza(in1,size1[1],in1,size1[1],out)
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_TOEPLITZ_H__*/
diff --git a/src/c/matrixOperations/matrix/dmatrixa.c b/src/c/matrixOperations/matrix/dmatrixa.c
new file mode 100644
index 0000000..649dbc3
--- /dev/null
+++ b/src/c/matrixOperations/matrix/dmatrixa.c
@@ -0,0 +1,33 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+/*Function returns cumulative sum of members of array/matrix*/
+
+#include "matrix.h"
+#include "types.h"
+#include "uint16.h"
+
+void dmatrixa(double *in, int irow, int icolumn, int orow, int ocolumn ,double *out)
+{
+ int i;
+ if(irow*icolumn==orow*ocolumn)
+ {
+ for(i=0;i<irow*icolumn ; i++)
+ {
+ out[i]=in[i];
+ }
+ }
+ else
+ {
+ printf("The given dimensions are not valid for matrix reshaping");
+ }
+}
diff --git a/src/c/matrixOperations/matrix/smatrixa.c b/src/c/matrixOperations/matrix/smatrixa.c
new file mode 100644
index 0000000..f432023
--- /dev/null
+++ b/src/c/matrixOperations/matrix/smatrixa.c
@@ -0,0 +1,33 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+/*Function returns cumulative sum of members of array/matrix*/
+
+#include "matrix.h"
+#include "types.h"
+#include "uint16.h"
+
+void smatrixa(float *in, int irow, int icolumn, int orow, int ocolumn ,float *out)
+{
+ int i;
+ if(irow*icolumn==orow*ocolumn)
+ {
+ for(i=0;i<irow*icolumn ; i++)
+ {
+ out[i]=in[i];
+ }
+ }
+ else
+ {
+ printf("The given dimensions are not valid for matrix reshaping");
+ }
+}
diff --git a/src/c/matrixOperations/matrix/u16matrixa.c b/src/c/matrixOperations/matrix/u16matrixa.c
new file mode 100644
index 0000000..e60d880
--- /dev/null
+++ b/src/c/matrixOperations/matrix/u16matrixa.c
@@ -0,0 +1,33 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+/*Function returns cumulative sum of members of array/matrix*/
+
+#include "matrix.h"
+#include "types.h"
+#include "uint16.h"
+
+void u16matrixa(uint16 *in, int irow, int icolumn, int orow, int ocolumn ,uint16 *out)
+{
+ int i;
+ if(irow*icolumn==orow*ocolumn)
+ {
+ for(i=0;i<irow*icolumn ; i++)
+ {
+ out[i]=in[i];
+ }
+ }
+ else
+ {
+ printf("The given dimensions are not valid for matrix reshaping");
+ }
+}
diff --git a/src/c/matrixOperations/matrix/zmatrixa.c b/src/c/matrixOperations/matrix/zmatrixa.c
new file mode 100644
index 0000000..5e5651b
--- /dev/null
+++ b/src/c/matrixOperations/matrix/zmatrixa.c
@@ -0,0 +1,33 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+/*Function returns cumulative sum of members of array/matrix*/
+
+#include "matrix.h"
+#include "types.h"
+#include "doubleComplex.h"
+
+void zmatrixa(doubleComplex *in, int irow, int icolumn, int orow, int ocolumn ,doubleComplex *out)
+{
+ int i;
+ if(irow*icolumn==orow*ocolumn)
+ {
+ for(i=0;i<irow*icolumn ; i++)
+ {
+ out[i]=in[i];
+ }
+ }
+ else
+ {
+ printf("The given dimensions are not valid for matrix reshaping");
+ }
+}
diff --git a/src/c/matrixOperations/nnz/dnnza.c b/src/c/matrixOperations/nnz/dnnza.c
new file mode 100644
index 0000000..b4d40bd
--- /dev/null
+++ b/src/c/matrixOperations/nnz/dnnza.c
@@ -0,0 +1,33 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+/*Function returns cumulative sum of members of array/matrix*/
+
+#include "nnz.h"
+#include "types.h"
+#include "uint16.h"
+
+uint16 dnnza(double *in, int irow, int icolumn)
+{
+ int i;
+ uint16 final=0;
+ for(i=0; i< irow*icolumn ; i++)
+ {
+ if( in[i] != 0)
+ {
+ final++;
+
+ }
+
+ }
+return final;
+}
diff --git a/src/c/matrixOperations/nnz/dnnzs.c b/src/c/matrixOperations/nnz/dnnzs.c
new file mode 100644
index 0000000..c878d33
--- /dev/null
+++ b/src/c/matrixOperations/nnz/dnnzs.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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+/*Function returns cumulative sum of members of array/matrix*/
+
+#include "nnz.h"
+#include "types.h"
+#include "uint16.h"
+
+uint16 dnnzs(double in)
+{
+ if(in !=0)
+ return 1;
+ else
+ return 0;
+}
diff --git a/src/c/matrixOperations/nnz/snnza.c b/src/c/matrixOperations/nnz/snnza.c
new file mode 100644
index 0000000..df27f0f
--- /dev/null
+++ b/src/c/matrixOperations/nnz/snnza.c
@@ -0,0 +1,33 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+/*Function returns cumulative sum of members of array/matrix*/
+
+#include "nnz.h"
+#include "types.h"
+#include "uint16.h"
+
+uint16 snnza(float*in, int irow, int icolumn)
+{
+ int i;
+ uint16 final=0;
+ for(i=0; i< irow*icolumn ; i++)
+ {
+ if( in[i] != 0)
+ {
+ final++;
+
+ }
+
+ }
+return final;
+}
diff --git a/src/c/matrixOperations/nnz/snnzs.c b/src/c/matrixOperations/nnz/snnzs.c
new file mode 100644
index 0000000..674d4fa
--- /dev/null
+++ b/src/c/matrixOperations/nnz/snnzs.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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+/*Function returns cumulative sum of members of array/matrix*/
+
+#include "nnz.h"
+#include "types.h"
+#include "uint16.h"
+
+uint16 snnzs(float in)
+{
+ if(in !=0)
+ return 1;
+ else
+ return 0;
+}
diff --git a/src/c/matrixOperations/nnz/znnza.c b/src/c/matrixOperations/nnz/znnza.c
new file mode 100644
index 0000000..3b913e8
--- /dev/null
+++ b/src/c/matrixOperations/nnz/znnza.c
@@ -0,0 +1,33 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+/*Function returns cumulative sum of members of array/matrix*/
+
+#include "nnz.h"
+#include "types.h"
+#include "uint16.h"
+#include "doubleComplex.h"
+uint16 znnza(doubleComplex* in, int irow, int icolumn)
+{
+ int i;
+ uint16 final=0;
+ for(i=0; i< irow*icolumn ; i++)
+ {
+ if(( zreals(in[i]) !=0 )||( zimags(in[i])!=0))
+ {
+ final++;
+
+ }
+
+ }
+return final;
+}
diff --git a/src/c/matrixOperations/nnz/znnzs.c b/src/c/matrixOperations/nnz/znnzs.c
new file mode 100644
index 0000000..2907afc
--- /dev/null
+++ b/src/c/matrixOperations/nnz/znnzs.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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+/*Function returns cumulative sum of members of array/matrix*/
+
+#include "nnz.h"
+#include "types.h"
+#include "uint16.h"
+#include "doubleComplex.h"
+
+uint16 znnzs(doubleComplex in)
+{
+ if((zreals(in)== 0 ) && (zimags(in)==0))
+ return 0;
+ else
+ return 1;
+}
diff --git a/src/c/matrixOperations/norm/dnorma.c b/src/c/matrixOperations/norm/dnorma.c
index c912f85..2bb9b8b 100644
--- a/src/c/matrixOperations/norm/dnorma.c
+++ b/src/c/matrixOperations/norm/dnorma.c
@@ -6,6 +6,8 @@
are also available at
http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
Author: Siddhesh Wani
+
+ Edited by: Sandeep Gupta
Organization: FOSSEE, IIT Bombay
Email: toolbox@scilab.in
*/
@@ -14,13 +16,17 @@
/*Acceptable norms are: 1, 2, 'inf', 'fro', */
#include "norm.h"
+#include "svd.h"
#include <math.h>
+#include <stdio.h>
+#include<stdlib.h>
double dnorma (double *in, int row, int col, int norm)
{
double res = 0, sum = 0;
int col_count, row_count;
-
+ double *S;
+ S = (double *)malloc(min(row,col)*sizeof(double));
switch (norm)
{
case 1: /*largest column sum*/
@@ -37,6 +43,8 @@ double dnorma (double *in, int row, int col, int norm)
break;
case 2: /*Largest singular value of the matrix*/
+ dsvda(0,in,row,col,0,1,S,NULL,NULL);
+ res = S[0];
break;
case 3: /*inf: largest row sum*/
@@ -69,4 +77,4 @@ double dnorma (double *in, int row, int col, int norm)
return res;
-} \ No newline at end of file
+}
diff --git a/src/c/matrixOperations/spec/Makefile.am b/src/c/matrixOperations/spec/Makefile.am
deleted file mode 100644
index 90dbd0a..0000000
--- a/src/c/matrixOperations/spec/Makefile.am
+++ /dev/null
@@ -1,70 +0,0 @@
-##
-## 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
-##
-##
-
-libSpec_la_CFLAGS = -I $(top_builddir)/src/c/type \
- -I $(top_builddir)/src/c/matrixOperations/includes \
- -I $(top_builddir)/src/c/operations/includes \
- -I $(top_builddir)/src/c/elementaryFunctions/includes\
- -I $(top_builddir)/src/c/auxiliaryFunctions/includes
-
-
-instdir = $(top_builddir)/lib
-
-pkglib_LTLIBRARIES = libSpec.la
-
-HEAD = ../includes/spec.h
-
-libSpec_la_SOURCES = $(HEAD) \
- sspeca.c \
- dspeca.c \
- cspeca.c \
- zspeca.c
-
-
-############
-## CHECK
-############
-
-
-check_PROGRAMS = testDoubleSpec testFloatSpec
-
-check_LDADD = $(top_builddir)/src/c/type/libDoubleComplex.la \
- $(top_builddir)/src/c/type/libFloatComplex.la \
- $(top_builddir)/src/c/elementaryFunctions/sqrt/libSqrt.la \
- $(top_builddir)/src/fortran/lapack/libscilapack.la \
- $(top_builddir)/src/fortran/blas/libsciblas.la \
- $(top_builddir)/src/c/auxiliaryFunctions/abs/libAbs.la \
- $(top_builddir)/src/c/auxiliaryFunctions/conj/libConj.la \
- $(top_builddir)/src/c/auxiliaryFunctions/sign/libSign.la \
- $(top_builddir)/src/c/auxiliaryFunctions/pythag/libPythag.la \
- $(top_builddir)/src/c/operations/addition/libAddition.la \
- $(top_builddir)/src/c/operations/multiplication/libMultiplication.la \
- $(top_builddir)/src/c/matrixOperations/inversion/libMatrixInversion.la\
- $(top_builddir)/src/c/matrixOperations/zeros/libMatrixZeros.la\
- libSpec.la
-
-check_INCLUDES = -I $(top_builddir)/src/c/type \
- -I $(top_builddir)/src/c/matrixOperations/includes \
- -I $(top_builddir)/src/c/operations/includes \
- -I $(top_builddir)/src/c/elementaryFunctions/includes\
- -I $(top_builddir)/src/c/auxiliaryFunctions/includes
-
-testDoubleSpec_SOURCES = testDoubleSpec.c
-testDoubleSpec_LDADD = $(check_LDADD)
-testDoubleSpec_CFLAGS = $(check_INCLUDES)
-
-testFloatSpec_SOURCES = testFloatSpec.c
-testFloatSpec_LDADD = $(check_LDADD)
-testFloatSpec_CFLAGS = $(check_INCLUDES)
-
-TESTS = testDoubleSpec testFloatSpec
-
diff --git a/src/c/matrixOperations/spec/Makefile.in b/src/c/matrixOperations/spec/Makefile.in
deleted file mode 100644
index 9c34c9e..0000000
--- a/src/c/matrixOperations/spec/Makefile.in
+++ /dev/null
@@ -1,755 +0,0 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-check_PROGRAMS = testDoubleSpec$(EXEEXT) testFloatSpec$(EXEEXT)
-TESTS = testDoubleSpec$(EXEEXT) testFloatSpec$(EXEEXT)
-subdir = src/c/matrixOperations/spec
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/includes/machine.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__installdirs = "$(DESTDIR)$(pkglibdir)"
-LTLIBRARIES = $(pkglib_LTLIBRARIES)
-libSpec_la_LIBADD =
-am__objects_1 =
-am_libSpec_la_OBJECTS = $(am__objects_1) libSpec_la-sspeca.lo \
- libSpec_la-dspeca.lo libSpec_la-cspeca.lo libSpec_la-zspeca.lo
-libSpec_la_OBJECTS = $(am_libSpec_la_OBJECTS)
-libSpec_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libSpec_la_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-am_testDoubleSpec_OBJECTS = testDoubleSpec-testDoubleSpec.$(OBJEXT)
-testDoubleSpec_OBJECTS = $(am_testDoubleSpec_OBJECTS)
-testDoubleSpec_DEPENDENCIES = $(check_LDADD)
-testDoubleSpec_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(testDoubleSpec_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-am_testFloatSpec_OBJECTS = testFloatSpec-testFloatSpec.$(OBJEXT)
-testFloatSpec_OBJECTS = $(am_testFloatSpec_OBJECTS)
-testFloatSpec_DEPENDENCIES = $(check_LDADD)
-testFloatSpec_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(testFloatSpec_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/includes
-depcomp = $(SHELL) $(top_srcdir)/config/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-SOURCES = $(libSpec_la_SOURCES) $(testDoubleSpec_SOURCES) \
- $(testFloatSpec_SOURCES)
-DIST_SOURCES = $(libSpec_la_SOURCES) $(testDoubleSpec_SOURCES) \
- $(testFloatSpec_SOURCES)
-ETAGS = etags
-CTAGS = ctags
-am__tty_colors = \
-red=; grn=; lgn=; blu=; std=
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBMATH = @LIBMATH@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-VERSION = @VERSION@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-ac_ct_F77 = @ac_ct_F77@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-libSpec_la_CFLAGS = -I $(top_builddir)/src/c/type \
- -I $(top_builddir)/src/c/matrixOperations/includes \
- -I $(top_builddir)/src/c/operations/includes \
- -I $(top_builddir)/src/c/elementaryFunctions/includes\
- -I $(top_builddir)/src/c/auxiliaryFunctions/includes
-
-instdir = $(top_builddir)/lib
-pkglib_LTLIBRARIES = libSpec.la
-HEAD = ../includes/spec.h
-libSpec_la_SOURCES = $(HEAD) \
- sspeca.c \
- dspeca.c \
- cspeca.c \
- zspeca.c
-
-check_LDADD = $(top_builddir)/src/c/type/libDoubleComplex.la \
- $(top_builddir)/src/c/type/libFloatComplex.la \
- $(top_builddir)/src/c/elementaryFunctions/sqrt/libSqrt.la \
- $(top_builddir)/src/fortran/lapack/libscilapack.la \
- $(top_builddir)/src/fortran/blas/libsciblas.la \
- $(top_builddir)/src/c/auxiliaryFunctions/abs/libAbs.la \
- $(top_builddir)/src/c/auxiliaryFunctions/conj/libConj.la \
- $(top_builddir)/src/c/auxiliaryFunctions/sign/libSign.la \
- $(top_builddir)/src/c/auxiliaryFunctions/pythag/libPythag.la \
- $(top_builddir)/src/c/operations/addition/libAddition.la \
- $(top_builddir)/src/c/operations/multiplication/libMultiplication.la \
- $(top_builddir)/src/c/matrixOperations/inversion/libMatrixInversion.la\
- $(top_builddir)/src/c/matrixOperations/zeros/libMatrixZeros.la\
- libSpec.la
-
-check_INCLUDES = -I $(top_builddir)/src/c/type \
- -I $(top_builddir)/src/c/matrixOperations/includes \
- -I $(top_builddir)/src/c/operations/includes \
- -I $(top_builddir)/src/c/elementaryFunctions/includes\
- -I $(top_builddir)/src/c/auxiliaryFunctions/includes
-
-testDoubleSpec_SOURCES = testDoubleSpec.c
-testDoubleSpec_LDADD = $(check_LDADD)
-testDoubleSpec_CFLAGS = $(check_INCLUDES)
-testFloatSpec_SOURCES = testFloatSpec.c
-testFloatSpec_LDADD = $(check_LDADD)
-testFloatSpec_CFLAGS = $(check_INCLUDES)
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/c/matrixOperations/spec/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --foreign src/c/matrixOperations/spec/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
- @$(NORMAL_INSTALL)
- test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)"
- @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
- list2=; for p in $$list; do \
- if test -f $$p; then \
- list2="$$list2 $$p"; \
- else :; fi; \
- done; \
- test -z "$$list2" || { \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \
- }
-
-uninstall-pkglibLTLIBRARIES:
- @$(NORMAL_UNINSTALL)
- @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
- for p in $$list; do \
- $(am__strip_dir) \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
- done
-
-clean-pkglibLTLIBRARIES:
- -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
- @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
- dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" != "$$p" || dir=.; \
- echo "rm -f \"$${dir}/so_locations\""; \
- rm -f "$${dir}/so_locations"; \
- done
-libSpec.la: $(libSpec_la_OBJECTS) $(libSpec_la_DEPENDENCIES)
- $(libSpec_la_LINK) -rpath $(pkglibdir) $(libSpec_la_OBJECTS) $(libSpec_la_LIBADD) $(LIBS)
-
-clean-checkPROGRAMS:
- @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
- echo " rm -f" $$list; \
- rm -f $$list || exit $$?; \
- test -n "$(EXEEXT)" || exit 0; \
- list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f" $$list; \
- rm -f $$list
-testDoubleSpec$(EXEEXT): $(testDoubleSpec_OBJECTS) $(testDoubleSpec_DEPENDENCIES)
- @rm -f testDoubleSpec$(EXEEXT)
- $(testDoubleSpec_LINK) $(testDoubleSpec_OBJECTS) $(testDoubleSpec_LDADD) $(LIBS)
-testFloatSpec$(EXEEXT): $(testFloatSpec_OBJECTS) $(testFloatSpec_DEPENDENCIES)
- @rm -f testFloatSpec$(EXEEXT)
- $(testFloatSpec_LINK) $(testFloatSpec_OBJECTS) $(testFloatSpec_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSpec_la-cspeca.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSpec_la-dspeca.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSpec_la-sspeca.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSpec_la-zspeca.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testDoubleSpec-testDoubleSpec.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testFloatSpec-testFloatSpec.Po@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
-
-.c.obj:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
-
-.c.lo:
-@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
-
-libSpec_la-sspeca.lo: sspeca.c
-@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSpec_la_CFLAGS) $(CFLAGS) -MT libSpec_la-sspeca.lo -MD -MP -MF $(DEPDIR)/libSpec_la-sspeca.Tpo -c -o libSpec_la-sspeca.lo `test -f 'sspeca.c' || echo '$(srcdir)/'`sspeca.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSpec_la-sspeca.Tpo $(DEPDIR)/libSpec_la-sspeca.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sspeca.c' object='libSpec_la-sspeca.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSpec_la_CFLAGS) $(CFLAGS) -c -o libSpec_la-sspeca.lo `test -f 'sspeca.c' || echo '$(srcdir)/'`sspeca.c
-
-libSpec_la-dspeca.lo: dspeca.c
-@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSpec_la_CFLAGS) $(CFLAGS) -MT libSpec_la-dspeca.lo -MD -MP -MF $(DEPDIR)/libSpec_la-dspeca.Tpo -c -o libSpec_la-dspeca.lo `test -f 'dspeca.c' || echo '$(srcdir)/'`dspeca.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSpec_la-dspeca.Tpo $(DEPDIR)/libSpec_la-dspeca.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dspeca.c' object='libSpec_la-dspeca.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSpec_la_CFLAGS) $(CFLAGS) -c -o libSpec_la-dspeca.lo `test -f 'dspeca.c' || echo '$(srcdir)/'`dspeca.c
-
-libSpec_la-cspeca.lo: cspeca.c
-@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSpec_la_CFLAGS) $(CFLAGS) -MT libSpec_la-cspeca.lo -MD -MP -MF $(DEPDIR)/libSpec_la-cspeca.Tpo -c -o libSpec_la-cspeca.lo `test -f 'cspeca.c' || echo '$(srcdir)/'`cspeca.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSpec_la-cspeca.Tpo $(DEPDIR)/libSpec_la-cspeca.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cspeca.c' object='libSpec_la-cspeca.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSpec_la_CFLAGS) $(CFLAGS) -c -o libSpec_la-cspeca.lo `test -f 'cspeca.c' || echo '$(srcdir)/'`cspeca.c
-
-libSpec_la-zspeca.lo: zspeca.c
-@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSpec_la_CFLAGS) $(CFLAGS) -MT libSpec_la-zspeca.lo -MD -MP -MF $(DEPDIR)/libSpec_la-zspeca.Tpo -c -o libSpec_la-zspeca.lo `test -f 'zspeca.c' || echo '$(srcdir)/'`zspeca.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSpec_la-zspeca.Tpo $(DEPDIR)/libSpec_la-zspeca.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='zspeca.c' object='libSpec_la-zspeca.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSpec_la_CFLAGS) $(CFLAGS) -c -o libSpec_la-zspeca.lo `test -f 'zspeca.c' || echo '$(srcdir)/'`zspeca.c
-
-testDoubleSpec-testDoubleSpec.o: testDoubleSpec.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleSpec_CFLAGS) $(CFLAGS) -MT testDoubleSpec-testDoubleSpec.o -MD -MP -MF $(DEPDIR)/testDoubleSpec-testDoubleSpec.Tpo -c -o testDoubleSpec-testDoubleSpec.o `test -f 'testDoubleSpec.c' || echo '$(srcdir)/'`testDoubleSpec.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testDoubleSpec-testDoubleSpec.Tpo $(DEPDIR)/testDoubleSpec-testDoubleSpec.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testDoubleSpec.c' object='testDoubleSpec-testDoubleSpec.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleSpec_CFLAGS) $(CFLAGS) -c -o testDoubleSpec-testDoubleSpec.o `test -f 'testDoubleSpec.c' || echo '$(srcdir)/'`testDoubleSpec.c
-
-testDoubleSpec-testDoubleSpec.obj: testDoubleSpec.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleSpec_CFLAGS) $(CFLAGS) -MT testDoubleSpec-testDoubleSpec.obj -MD -MP -MF $(DEPDIR)/testDoubleSpec-testDoubleSpec.Tpo -c -o testDoubleSpec-testDoubleSpec.obj `if test -f 'testDoubleSpec.c'; then $(CYGPATH_W) 'testDoubleSpec.c'; else $(CYGPATH_W) '$(srcdir)/testDoubleSpec.c'; fi`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testDoubleSpec-testDoubleSpec.Tpo $(DEPDIR)/testDoubleSpec-testDoubleSpec.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testDoubleSpec.c' object='testDoubleSpec-testDoubleSpec.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleSpec_CFLAGS) $(CFLAGS) -c -o testDoubleSpec-testDoubleSpec.obj `if test -f 'testDoubleSpec.c'; then $(CYGPATH_W) 'testDoubleSpec.c'; else $(CYGPATH_W) '$(srcdir)/testDoubleSpec.c'; fi`
-
-testFloatSpec-testFloatSpec.o: testFloatSpec.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatSpec_CFLAGS) $(CFLAGS) -MT testFloatSpec-testFloatSpec.o -MD -MP -MF $(DEPDIR)/testFloatSpec-testFloatSpec.Tpo -c -o testFloatSpec-testFloatSpec.o `test -f 'testFloatSpec.c' || echo '$(srcdir)/'`testFloatSpec.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testFloatSpec-testFloatSpec.Tpo $(DEPDIR)/testFloatSpec-testFloatSpec.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testFloatSpec.c' object='testFloatSpec-testFloatSpec.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatSpec_CFLAGS) $(CFLAGS) -c -o testFloatSpec-testFloatSpec.o `test -f 'testFloatSpec.c' || echo '$(srcdir)/'`testFloatSpec.c
-
-testFloatSpec-testFloatSpec.obj: testFloatSpec.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatSpec_CFLAGS) $(CFLAGS) -MT testFloatSpec-testFloatSpec.obj -MD -MP -MF $(DEPDIR)/testFloatSpec-testFloatSpec.Tpo -c -o testFloatSpec-testFloatSpec.obj `if test -f 'testFloatSpec.c'; then $(CYGPATH_W) 'testFloatSpec.c'; else $(CYGPATH_W) '$(srcdir)/testFloatSpec.c'; fi`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testFloatSpec-testFloatSpec.Tpo $(DEPDIR)/testFloatSpec-testFloatSpec.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testFloatSpec.c' object='testFloatSpec-testFloatSpec.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatSpec_CFLAGS) $(CFLAGS) -c -o testFloatSpec-testFloatSpec.obj `if test -f 'testFloatSpec.c'; then $(CYGPATH_W) 'testFloatSpec.c'; else $(CYGPATH_W) '$(srcdir)/testFloatSpec.c'; fi`
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- set x; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-check-TESTS: $(TESTS)
- @failed=0; all=0; xfail=0; xpass=0; skip=0; \
- srcdir=$(srcdir); export srcdir; \
- list=' $(TESTS) '; \
- $(am__tty_colors); \
- if test -n "$$list"; then \
- for tst in $$list; do \
- if test -f ./$$tst; then dir=./; \
- elif test -f $$tst; then dir=; \
- else dir="$(srcdir)/"; fi; \
- if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
- all=`expr $$all + 1`; \
- case " $(XFAIL_TESTS) " in \
- *[\ \ ]$$tst[\ \ ]*) \
- xpass=`expr $$xpass + 1`; \
- failed=`expr $$failed + 1`; \
- col=$$red; res=XPASS; \
- ;; \
- *) \
- col=$$grn; res=PASS; \
- ;; \
- esac; \
- elif test $$? -ne 77; then \
- all=`expr $$all + 1`; \
- case " $(XFAIL_TESTS) " in \
- *[\ \ ]$$tst[\ \ ]*) \
- xfail=`expr $$xfail + 1`; \
- col=$$lgn; res=XFAIL; \
- ;; \
- *) \
- failed=`expr $$failed + 1`; \
- col=$$red; res=FAIL; \
- ;; \
- esac; \
- else \
- skip=`expr $$skip + 1`; \
- col=$$blu; res=SKIP; \
- fi; \
- echo "$${col}$$res$${std}: $$tst"; \
- done; \
- if test "$$all" -eq 1; then \
- tests="test"; \
- All=""; \
- else \
- tests="tests"; \
- All="All "; \
- fi; \
- if test "$$failed" -eq 0; then \
- if test "$$xfail" -eq 0; then \
- banner="$$All$$all $$tests passed"; \
- else \
- if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
- banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
- fi; \
- else \
- if test "$$xpass" -eq 0; then \
- banner="$$failed of $$all $$tests failed"; \
- else \
- if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
- banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
- fi; \
- fi; \
- dashes="$$banner"; \
- skipped=""; \
- if test "$$skip" -ne 0; then \
- if test "$$skip" -eq 1; then \
- skipped="($$skip test was not run)"; \
- else \
- skipped="($$skip tests were not run)"; \
- fi; \
- test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
- dashes="$$skipped"; \
- fi; \
- report=""; \
- if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
- report="Please report to $(PACKAGE_BUGREPORT)"; \
- test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
- dashes="$$report"; \
- fi; \
- dashes=`echo "$$dashes" | sed s/./=/g`; \
- if test "$$failed" -eq 0; then \
- echo "$$grn$$dashes"; \
- else \
- echo "$$red$$dashes"; \
- fi; \
- echo "$$banner"; \
- test -z "$$skipped" || echo "$$skipped"; \
- test -z "$$report" || echo "$$report"; \
- echo "$$dashes$$std"; \
- test "$$failed" -eq 0; \
- else :; fi
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
- $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
- $(MAKE) $(AM_MAKEFLAGS) check-TESTS
-check: check-am
-all-am: Makefile $(LTLIBRARIES)
-installdirs:
- for dir in "$(DESTDIR)$(pkglibdir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
- clean-pkglibLTLIBRARIES mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-pkglibLTLIBRARIES
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-pkglibLTLIBRARIES
-
-.MAKE: check-am install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
- clean-checkPROGRAMS clean-generic clean-libtool \
- clean-pkglibLTLIBRARIES ctags distclean distclean-compile \
- distclean-generic distclean-libtool distclean-tags distdir dvi \
- dvi-am html html-am info info-am install install-am \
- install-data install-data-am install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-man install-pdf \
- install-pdf-am install-pkglibLTLIBRARIES install-ps \
- install-ps-am install-strip installcheck installcheck-am \
- installdirs maintainer-clean maintainer-clean-generic \
- mostlyclean mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
- uninstall-am uninstall-pkglibLTLIBRARIES
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/c/matrixOperations/spec/cspeca.c b/src/c/matrixOperations/spec/cspeca.c
deleted file mode 100644
index a2b6548..0000000
--- a/src/c/matrixOperations/spec/cspeca.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- * Copyright (C) 2008 - INRIA - Arnaud TORSET
- *
- * 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 <stdlib.h>
-#include "spec.h"
-
-
-
-void cspeca(floatComplex* in, int rows, floatComplex* out){
- /* As we use Lapack to find the eigenvalues, we must cast the floatComplex input into doubleComplex
- and the doubleComplex output of dspeca into floatComplex*/
-
- int i;
- doubleComplex* dblin;
- doubleComplex* dblout;
-
- dblin=(doubleComplex*)malloc((unsigned int)(rows*rows)*sizeof(doubleComplex));
- dblout=(doubleComplex*)malloc((unsigned int)rows*sizeof(doubleComplex));
-
- for (i=0;i<rows*rows;i++) dblin[i]=DoubleComplex((double)creals(in[i]),(double)cimags(in[i]));
-
- zspeca(dblin,rows,dblout);
-
- for (i=0;i<rows;i++) out[i]=FloatComplex((float)zreals(dblout[i]),(float)zimags(dblout[i]));
-}
diff --git a/src/c/matrixOperations/spec/dspeca.c b/src/c/matrixOperations/spec/dspeca.c
deleted file mode 100644
index 1131ecf..0000000
--- a/src/c/matrixOperations/spec/dspeca.c
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- * Copyright (C) 2008 - INRIA - Arnaud TORSET
- *
- * 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 <stdlib.h>
-#include "spec.h"
-#include "lapack.h"
-#include "zeros.h"
-#include "max.h"
-
-void dspeca(double* in, int rows,double* out){
- int i=0, j=0;
- int symmetric=0;
- int INFO=0;
- int iWorkSize = 0;
- double* pdblWork;
- double* outReal;
- double* outImag;
- double* pdblLeftvectors;
- double* pdblRightvectors;
- double* inCopy;
-
- inCopy = (double*)malloc((unsigned int)(rows*rows) * sizeof(double));
- outReal = (double*)malloc((unsigned int)rows * sizeof(double));
- outImag = (double*)malloc((unsigned int)rows * sizeof(double));
- pdblLeftvectors=NULL;
- pdblRightvectors=NULL;
-
-
- iWorkSize = 3*rows;
- pdblWork = (double*)malloc((unsigned int)iWorkSize * sizeof(double));
-
- for(i=0;i<rows*rows;i++) inCopy[i]=in[i];
- /* look if the matrix is symmetric */
- for (i=0;i<rows;i++)
- for (j=0;j<rows;j++)
- if (in[i*rows+j]!=in[i+j*rows]) break;
-
- /* the matrix is symmetric if the 2 loops goes to end i.e
- i==rows and j==rows */
- if ((i==rows)&&(j==rows)) symmetric=1;
-
-
- /* apply lapack function according to symmetry */
- if(symmetric){
- C2F(dsyev)( "N", "U", &rows, in, &rows, outReal, pdblWork, &iWorkSize, &INFO );
- }
- else {
- C2F(dgeev)( "N", "N", &rows, inCopy, &rows, outReal, outImag,
- pdblLeftvectors, &rows, pdblRightvectors, &rows, pdblWork, &iWorkSize, &INFO );
- }
-
- for (i=0;i<rows;i++) out[i]=outReal[i];
-
-
- free(inCopy);
- free(outReal);
- free(outImag);
- free(pdblWork);
- free(pdblLeftvectors);
- free(pdblRightvectors);
-}
-
diff --git a/src/c/matrixOperations/spec/sspeca.c b/src/c/matrixOperations/spec/sspeca.c
deleted file mode 100644
index 50751a2..0000000
--- a/src/c/matrixOperations/spec/sspeca.c
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- * Copyright (C) 2008 - INRIA - Arnaud TORSET
- *
- * 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 <stdlib.h>
-#include "spec.h"
-
-
-
-void sspeca(float* in, int rows, float* out){
- /* As we use Lapack to find the eigenvalues, we must cast the float input into double
- and the doubleComplex output of dspeca into floatComplex*/
-
- int i;
- double* dblin;
- double* dblout;
-
- dblin=(double*)malloc((unsigned int)(rows*rows)*sizeof(double));
- dblout=(double*)malloc((unsigned int)rows*sizeof(double));
-
- for (i=0;i<rows*rows;i++) dblin[i]=(double)in[i];
-
- dspeca(dblin,rows,dblout);
-
- for (i=0;i<rows;i++) out[i]=(float)dblout[i];
-}
diff --git a/src/c/matrixOperations/spec/testDoubleSpec.c b/src/c/matrixOperations/spec/testDoubleSpec.c
deleted file mode 100644
index 25c8806..0000000
--- a/src/c/matrixOperations/spec/testDoubleSpec.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- * Copyright (C) 2008 - INRIA - Arnaud TORSET
- *
- * 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 <stdlib.h>
-#include "spec.h"
-#include "stdio.h"
-#include "assert.h"
-#include "math.h"
-
-static void dspecaTest(void){
- double in[4]={1,1,1,3};
- double resultR[2]={0.5857864376269050765700,3.4142135623730949234300};
-
-
- double *out;
-
- int i;
-
- out=(double*)malloc((unsigned int)2*sizeof(double));
-
- dspeca(in,2,out);
- for(i=0;i<2;i++){
- if (out[i]>1e-16) assert( fabs(out[i]-resultR[i]) / fabs(out[i]) <3e-16);
- else assert(1);
- }
-
-}
-
-
-
-
-static void zspecaTest(void){
- double inR[4]={1,1,1,3};
- double inI[4]={0,0,0,0};
- double resultR[2]={0.5857864376269050765700,3.4142135623730949234300};
- double resultI[2]={0,0};
-
- double in2R[4]={1,1,-2,3};
- double in2I[4]={0,0,0,0};
- double result2R[2]={1.9999999999999997779554,1.9999999999999997779554};
- double result2I[2]={0.9999999999999997779554,-0.9999999999999997779554};
-
- double in3R[16]={0.0603054538369178771973,0.631347181741148233414 ,0.0241030259057879447937,0.1527438252232968807221,
- 0.9481177683919668197632,0.2744265575893223285675,0.4794727200642228126526,0.485576837789267301559,
- 0.676400367170572280884,0.8321249918080866336823,0.0125875836238265037537,0.5453779897652566432953,
- 0.8426716942340135574341,0.9029165101237595081329,0.4409482078626751899719,0.8332359003834426403046 };
- double in3I[16]={0.7233976423740386962891,0.4377150186337530612946,0.3080607382580637931824,0.8749813153408467769623,
- 0.5355882328003644943237 ,0.3085998897440731525421,0.3354632416740059852600,0.2342486302368342876434,
- 0.2589411698281764984131,0.8521509231068193912506,0.4821739485487341880798,0.6095217890106141567230,
- 0.9872822705656290054321,0.9811426815576851367950,0.3303113700821995735169,0.3589145573787391185761};
- double result3R[4]={1.9486046375762748894545,0.2315060459861970343365,- 0.7694743345806510648188,- 0.2300808535483104266817};
- double result3I[4]={2.1242015857341254303492,- 0.4115101262891645017561,- 0.1980716835789462781925,0.3584662621795701720195};
-
- doubleComplex *in,*in2,*in3,out[2],out2[4];
-
- int i;
-
- in=DoubleComplexMatrix(inR,inI,4);
- in2=DoubleComplexMatrix(in2R,in2I,4);
- in3=DoubleComplexMatrix(in3R,in3I,16);
-
- zspeca(in,2,out);
- for(i=0;i<2;i++){
- if (zreals(out[i])>1e-16) assert( fabs(zreals(out[i])-resultR[i]) / fabs(zreals(out[i])) <3e-16);
- else assert(1);
- if (zimags(out[i])>1e-16) assert( fabs(zimags(out[i])-resultI[i]) / fabs(zimags(out[i])) <1e-16);
- else assert(1);
- }
-
-
- zspeca(in2,2,out);
- for(i=0;i<2;i++){
- if (zreals(out[i])>1e-16) assert( fabs(zreals(out[i])-result2R[i]) / fabs(zreals(out[i])) <3e-16);
- else assert(1);
- if (zimags(out[i])>1e-16) assert( fabs(zimags(out[i])-result2I[i]) / fabs(zimags(out[i])) <3e-15);
- else assert(1);
- }
-
-
- zspeca(in3,4,out2);
- for(i=0;i<4;i++){
- if (zreals(out2[i])>1e-16) assert( fabs(zreals(out2[i])-result3R[i]) / fabs(zreals(out2[i])) <3e-15);
- else assert(1);
- if (zimags(out2[i])>1e-16) assert( fabs(zimags(out2[i])-result3I[i]) / fabs(zimags(out2[i])) <3e-15);
- else assert(1);
- }
-
-
-}
-
-
-static int testSpec(void){
- printf(">>> Double Spec Tests <<<\n");
- printf(">>> Double <<<\n");
- dspecaTest();
- printf(">>> DoubleComplex <<<\n");
- zspecaTest();
- return 0;
-}
-
-
-int main(void){
- assert (testSpec()==0);
-
-
- return 0;
-}
diff --git a/src/c/matrixOperations/spec/testFloatSpec.c b/src/c/matrixOperations/spec/testFloatSpec.c
deleted file mode 100644
index 9bd46ad..0000000
--- a/src/c/matrixOperations/spec/testFloatSpec.c
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- * Copyright (C) 2008 - INRIA - Arnaud TORSET
- *
- * 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 <stdlib.h>
-#include "spec.h"
-#include "stdio.h"
-#include "assert.h"
-#include "math.h"
-
-static void sspecaTest(void){
- float in[4]={1.0f,1.0f,1.0f,3.0f};
- float resultR[2]={0.5857864376269050765700f,3.4142135623730949234300f};
-
- float in1[4]={0.0f,4.0f,1.0f,0.0f};
- float result[2]={2.0f,-2.0f};
-
- float in2[4]={1.0f,1.0f,-2.0f,3.0f};
-
- float *out;
-
- int i;
-
- out=(float *)malloc((unsigned int)2*sizeof(float));
-
- sspeca(in,2,out);
- for (i=0;i<2;i++) printf("%f\n",out[i]);
- for(i=0;i<2;i++){
- if (out[i]>1e-16) assert( fabs(out[i]-resultR[i]) / fabs(out[i]) <1e-16);
- else assert(1);
- }
-
-
- sspeca(in1,2,out);
- for (i=0;i<2;i++) printf("%f\n",out[i]);
- for(i=0;i<2;i++){
- if (out[i]>1e-16) assert( fabs(out[i]-result[i]) / fabs(out[i]) <1e-16);
- else assert(1);
- }
-
- sspeca(in2,2,out);
- for (i=0;i<2;i++) printf("%f\n",out[i]);
-
-}
-
-
-static void cspecaTest(void){
- float inR[4]={1.0f,1.0f,1.0f,3.0f};
- float inI[4]={0.0f,0.0f,0.0f,0.0f};
- float resultR[2]={0.5857864376269050765700f,3.4142135623730949234300f};
- float resultI[2]={0,0};
-
- float in2R[4]={1.0f,1.0f,-2.0f,3.0f};
- float in2I[4]={0.0f,0.0f,0.0f,0.0f};
- float result2R[2]={1.9999999999999997779554f,1.9999999999999997779554f};
- float result2I[2]={0.9999999999999997779554f,-0.9999999999999997779554f};
-
- floatComplex *in,*in2,out[4];
-
- int i;
-
- in=FloatComplexMatrix(inR,inI,4);
- in2=FloatComplexMatrix(in2R,in2I,4);
-
- cspeca(in,2,out);
- for(i=0;i<2;i++){
- if (creals(out[i])>1e-16) assert( fabs(creals(out[i])-resultR[i]) / fabs(creals(out[i])) <1e-15);
- else assert(1);
- if (cimags(out[i])>1e-16) assert( fabs(cimags(out[i])-resultI[i]) / fabs(cimags(out[i])) <1e-16);
- else assert(1);
- }
-
-
- cspeca(in2,2,out);
- for(i=0;i<2;i++){
- if (creals(out[i])>1e-16) assert( fabs(creals(out[i])-result2R[i]) / fabs(creals(out[i])) <1e-15);
- else assert(1);
- if (cimags(out[i])>1e-16) assert( fabs(cimags(out[i])-result2I[i]) / fabs(cimags(out[i])) <1e-15);
- else assert(1);
- }
-
-}
-
-
-
-
-static int testSpec(void){
- printf(">>> Float Spec Tests <<<\n");
- printf(">>> Float <<<\n");
- sspecaTest();
- printf(">>> FloatComplex <<<\n");
- cspecaTest();
- return 0;
-}
-
-
-int main(void){
- assert (testSpec()==0);
-
-
- return 0;
-}
diff --git a/src/c/matrixOperations/spec/test_DoubleSpec/testDoubleSpec.vcxproj b/src/c/matrixOperations/spec/test_DoubleSpec/testDoubleSpec.vcxproj
deleted file mode 100644
index f696bff..0000000
--- a/src/c/matrixOperations/spec/test_DoubleSpec/testDoubleSpec.vcxproj
+++ /dev/null
@@ -1,178 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{651B0E61-1047-4575-BE31-D9CB28062CBA}</ProjectGuid>
- <RootNamespace>testDoubleSpec</RootNamespace>
- <Keyword>Win32Proj</Keyword>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup>
- <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <MinimalRebuild>true</MinimalRebuild>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
- </ClCompile>
- <Link>
- <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <TargetMachine>MachineX86</TargetMachine>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <TargetMachine>MachineX86</TargetMachine>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="..\testDoubleSpec.c">
- <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
- <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
- <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
- <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\..\..\type\type.vcxproj">
- <Project>{9b1bd750-1fef-4d6b-9422-782d16181cee}</Project>
- <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
- </ProjectReference>
- <ProjectReference Include="..\..\matrixOperations.vcxproj">
- <Project>{fd335544-52bf-4736-a34e-77f591d158d5}</Project>
- <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
- </ProjectReference>
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/src/c/matrixOperations/spec/test_DoubleSpec/testDoubleSpec.vcxproj.filters b/src/c/matrixOperations/spec/test_DoubleSpec/testDoubleSpec.vcxproj.filters
deleted file mode 100644
index dcdaea5..0000000
--- a/src/c/matrixOperations/spec/test_DoubleSpec/testDoubleSpec.vcxproj.filters
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="Source Files">
- <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- <Filter Include="Header Files">
- <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
- <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
- </Filter>
- <Filter Include="Resource Files">
- <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
- <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\testDoubleSpec.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/src/c/matrixOperations/spec/test_FloatSpec/testFloatSpec.vcxproj b/src/c/matrixOperations/spec/test_FloatSpec/testFloatSpec.vcxproj
deleted file mode 100644
index 0631bb4..0000000
--- a/src/c/matrixOperations/spec/test_FloatSpec/testFloatSpec.vcxproj
+++ /dev/null
@@ -1,178 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{B7BEF8A2-3E42-4FA3-94A7-22618594057D}</ProjectGuid>
- <RootNamespace>testFloatSpec</RootNamespace>
- <Keyword>Win32Proj</Keyword>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup>
- <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <MinimalRebuild>true</MinimalRebuild>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
- </ClCompile>
- <Link>
- <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <TargetMachine>MachineX86</TargetMachine>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <TargetMachine>MachineX86</TargetMachine>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="..\testFloatSpec.c">
- <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
- <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
- <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
- <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\..\..\type\type.vcxproj">
- <Project>{9b1bd750-1fef-4d6b-9422-782d16181cee}</Project>
- <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
- </ProjectReference>
- <ProjectReference Include="..\..\matrixOperations.vcxproj">
- <Project>{fd335544-52bf-4736-a34e-77f591d158d5}</Project>
- <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
- </ProjectReference>
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/src/c/matrixOperations/spec/test_FloatSpec/testFloatSpec.vcxproj.filters b/src/c/matrixOperations/spec/test_FloatSpec/testFloatSpec.vcxproj.filters
deleted file mode 100644
index 2ba2e59..0000000
--- a/src/c/matrixOperations/spec/test_FloatSpec/testFloatSpec.vcxproj.filters
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="Source Files">
- <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- <Filter Include="Header Files">
- <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
- <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
- </Filter>
- <Filter Include="Resource Files">
- <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
- <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\testFloatSpec.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/src/c/matrixOperations/spec/zspeca.c b/src/c/matrixOperations/spec/zspeca.c
deleted file mode 100644
index a2b1c25..0000000
--- a/src/c/matrixOperations/spec/zspeca.c
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- * Copyright (C) 2008 - INRIA - Arnaud TORSET
- *
- * 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 <stdlib.h>
-#include "spec.h"
-#include "lapack.h"
-#include "zeros.h"
-#include "conj.h"
-
-void zspeca(doubleComplex* in, int rows,doubleComplex* out){
- int i = 0, j = 0;
- int hermitian = 0;
- int INFO = 0;
- int iWorkSize = 0;
- doubleComplex* pdblWork;
- doubleComplex* pdblLeftvectors;
- doubleComplex* pdblRightvectors;
- doubleComplex* pdblRWork;
- double* outReal;
- double* outImag;
- doubleComplex* inCopy;
-
- inCopy = (doubleComplex*)malloc((unsigned int)(rows*rows) * sizeof(doubleComplex));
- outReal = (double*)malloc((unsigned int)rows * sizeof(double));
- outImag = (double*)malloc((unsigned int)rows * sizeof(double));
- pdblLeftvectors=NULL;
- pdblRightvectors=NULL;
-
- iWorkSize = 2*rows;
- pdblWork = (doubleComplex*)malloc((unsigned int)iWorkSize * sizeof(doubleComplex));
- pdblRWork = (doubleComplex*)malloc((unsigned int)(3*rows) * sizeof(doubleComplex));
-
- for(i=0;i<rows*rows;i++) inCopy[i]=DoubleComplex(zreals(in[i]),zimags(in[i]));
-
- /* look if the matrix is symmetric */
- for (i=0;i<rows;i++){
- for (j=0;j<rows;j++)
- if ( (zreals(in[i*rows+j])!=zreals(zconjs(in[i+j*rows]))) ||
- (zimags(in[i*rows+j])!=zimags(zconjs(in[i+j*rows]))) )
- break;
- if (j!=rows) break;
- }
-
-
- /* the matrix is symmetric if the 2 loops goes to end i.e
- i==rows and j==rows */
- if ((i==rows)&&(j==rows)) hermitian=1;
-
-
- /* apply lapack function according to symmetry */
- if(hermitian){
- C2F(zheev)( "N", "U", &rows, inCopy, &rows, outReal, pdblWork, &iWorkSize, outImag, &INFO );
- dzerosa(outImag,1,rows);
- for (i=0;i<rows;i++) out[i]=DoubleComplex(outReal[i],outImag[i]);
- }
- else {
- C2F(zgeev)( "N", "N", &rows, inCopy, &rows, out,
- pdblLeftvectors, &rows, pdblRightvectors, &rows, pdblWork, &iWorkSize,
- pdblRWork, &INFO );
- }
-
-
-
- free(inCopy);
- free(outReal);
- free(outImag);
- free(pdblWork);
- free(pdblRWork);
- free(pdblLeftvectors);
- free(pdblRightvectors);
-}
diff --git a/src/c/matrixOperations/spec2/Makefile.am b/src/c/matrixOperations/spec2/Makefile.am
deleted file mode 100644
index 5a357fa..0000000
--- a/src/c/matrixOperations/spec2/Makefile.am
+++ /dev/null
@@ -1,70 +0,0 @@
-##
-## 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
-##
-##
-
-libSpec2_la_CFLAGS = -I $(top_builddir)/src/c/type \
- -I $(top_builddir)/src/c/matrixOperations/includes \
- -I $(top_builddir)/src/c/operations/includes \
- -I $(top_builddir)/src/c/elementaryFunctions/includes\
- -I $(top_builddir)/src/c/auxiliaryFunctions/includes
-
-
-instdir = $(top_builddir)/lib
-
-pkglib_LTLIBRARIES = libSpec2.la
-
-HEAD = ../includes/spec.h
-
-libSpec2_la_SOURCES = $(HEAD) \
- sspec2a.c \
- dspec2a.c \
- cspec2a.c \
- zspec2a.c
-
-
-############
-## CHECK
-############
-
-
-check_PROGRAMS = testDoubleSpec2 testFloatSpec2
-
-check_LDADD = $(top_builddir)/src/c/type/libDoubleComplex.la \
- $(top_builddir)/src/c/type/libFloatComplex.la \
- $(top_builddir)/src/c/elementaryFunctions/sqrt/libSqrt.la \
- $(top_builddir)/src/fortran/lapack/libscilapack.la \
- $(top_builddir)/src/fortran/blas/libsciblas.la \
- $(top_builddir)/src/c/auxiliaryFunctions/abs/libAbs.la \
- $(top_builddir)/src/c/auxiliaryFunctions/conj/libConj.la \
- $(top_builddir)/src/c/auxiliaryFunctions/sign/libSign.la \
- $(top_builddir)/src/c/auxiliaryFunctions/pythag/libPythag.la \
- $(top_builddir)/src/c/operations/addition/libAddition.la \
- $(top_builddir)/src/c/operations/multiplication/libMultiplication.la \
- $(top_builddir)/src/c/matrixOperations/inversion/libMatrixInversion.la\
- $(top_builddir)/src/c/matrixOperations/zeros/libMatrixZeros.la\
- libSpec2.la
-
-check_INCLUDES = -I $(top_builddir)/src/c/type \
- -I $(top_builddir)/src/c/matrixOperations/includes \
- -I $(top_builddir)/src/c/operations/includes \
- -I $(top_builddir)/src/c/elementaryFunctions/includes\
- -I $(top_builddir)/src/c/auxiliaryFunctions/includes
-
-testDoubleSpec2_SOURCES = testDoubleSpec2.c
-testDoubleSpec2_LDADD = $(check_LDADD)
-testDoubleSpec2_CFLAGS = $(check_INCLUDES)
-
-testFloatSpec2_SOURCES = testFloatSpec2.c
-testFloatSpec2_LDADD = $(check_LDADD)
-testFloatSpec2_CFLAGS = $(check_INCLUDES)
-
-TESTS = testDoubleSpec2 testFloatSpec2
-
diff --git a/src/c/matrixOperations/spec2/Makefile.in b/src/c/matrixOperations/spec2/Makefile.in
deleted file mode 100644
index 6e46c05..0000000
--- a/src/c/matrixOperations/spec2/Makefile.in
+++ /dev/null
@@ -1,757 +0,0 @@
-# Makefile.in generated by automake 1.11.1 from Makefile.am.
-# @configure_input@
-
-# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
-# Inc.
-# This Makefile.in is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-@SET_MAKE@
-
-VPATH = @srcdir@
-pkgdatadir = $(datadir)/@PACKAGE@
-pkgincludedir = $(includedir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
-pkglibexecdir = $(libexecdir)/@PACKAGE@
-am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-install_sh_DATA = $(install_sh) -c -m 644
-install_sh_PROGRAM = $(install_sh) -c
-install_sh_SCRIPT = $(install_sh) -c
-INSTALL_HEADER = $(INSTALL_DATA)
-transform = $(program_transform_name)
-NORMAL_INSTALL = :
-PRE_INSTALL = :
-POST_INSTALL = :
-NORMAL_UNINSTALL = :
-PRE_UNINSTALL = :
-POST_UNINSTALL = :
-build_triplet = @build@
-host_triplet = @host@
-check_PROGRAMS = testDoubleSpec2$(EXEEXT) testFloatSpec2$(EXEEXT)
-TESTS = testDoubleSpec2$(EXEEXT) testFloatSpec2$(EXEEXT)
-subdir = src/c/matrixOperations/spec2
-DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-am__aclocal_m4_deps = $(top_srcdir)/configure.ac
-am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
- $(ACLOCAL_M4)
-mkinstalldirs = $(install_sh) -d
-CONFIG_HEADER = $(top_builddir)/includes/machine.h
-CONFIG_CLEAN_FILES =
-CONFIG_CLEAN_VPATH_FILES =
-am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
-am__vpath_adj = case $$p in \
- $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
- *) f=$$p;; \
- esac;
-am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
-am__install_max = 40
-am__nobase_strip_setup = \
- srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
-am__nobase_strip = \
- for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
-am__nobase_list = $(am__nobase_strip_setup); \
- for p in $$list; do echo "$$p $$p"; done | \
- sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
- $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
- if (++n[$$2] == $(am__install_max)) \
- { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
- END { for (dir in files) print dir, files[dir] }'
-am__base_list = \
- sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
- sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
-am__installdirs = "$(DESTDIR)$(pkglibdir)"
-LTLIBRARIES = $(pkglib_LTLIBRARIES)
-libSpec2_la_LIBADD =
-am__objects_1 =
-am_libSpec2_la_OBJECTS = $(am__objects_1) libSpec2_la-sspec2a.lo \
- libSpec2_la-dspec2a.lo libSpec2_la-cspec2a.lo \
- libSpec2_la-zspec2a.lo
-libSpec2_la_OBJECTS = $(am_libSpec2_la_OBJECTS)
-libSpec2_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libSpec2_la_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-am_testDoubleSpec2_OBJECTS = \
- testDoubleSpec2-testDoubleSpec2.$(OBJEXT)
-testDoubleSpec2_OBJECTS = $(am_testDoubleSpec2_OBJECTS)
-testDoubleSpec2_DEPENDENCIES = $(check_LDADD)
-testDoubleSpec2_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(testDoubleSpec2_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-am_testFloatSpec2_OBJECTS = testFloatSpec2-testFloatSpec2.$(OBJEXT)
-testFloatSpec2_OBJECTS = $(am_testFloatSpec2_OBJECTS)
-testFloatSpec2_DEPENDENCIES = $(check_LDADD)
-testFloatSpec2_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
- $(LIBTOOLFLAGS) --mode=link $(CCLD) $(testFloatSpec2_CFLAGS) \
- $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
-DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/includes
-depcomp = $(SHELL) $(top_srcdir)/config/depcomp
-am__depfiles_maybe = depfiles
-am__mv = mv -f
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
- --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
- $(LDFLAGS) -o $@
-SOURCES = $(libSpec2_la_SOURCES) $(testDoubleSpec2_SOURCES) \
- $(testFloatSpec2_SOURCES)
-DIST_SOURCES = $(libSpec2_la_SOURCES) $(testDoubleSpec2_SOURCES) \
- $(testFloatSpec2_SOURCES)
-ETAGS = etags
-CTAGS = ctags
-am__tty_colors = \
-red=; grn=; lgn=; blu=; std=
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-ACLOCAL = @ACLOCAL@
-AMTAR = @AMTAR@
-AR = @AR@
-AUTOCONF = @AUTOCONF@
-AUTOHEADER = @AUTOHEADER@
-AUTOMAKE = @AUTOMAKE@
-AWK = @AWK@
-CC = @CC@
-CCDEPMODE = @CCDEPMODE@
-CFLAGS = @CFLAGS@
-CPP = @CPP@
-CPPFLAGS = @CPPFLAGS@
-CXX = @CXX@
-CXXCPP = @CXXCPP@
-CXXDEPMODE = @CXXDEPMODE@
-CXXFLAGS = @CXXFLAGS@
-CYGPATH_W = @CYGPATH_W@
-DEFS = @DEFS@
-DEPDIR = @DEPDIR@
-DSYMUTIL = @DSYMUTIL@
-DUMPBIN = @DUMPBIN@
-ECHO_C = @ECHO_C@
-ECHO_N = @ECHO_N@
-ECHO_T = @ECHO_T@
-EGREP = @EGREP@
-EXEEXT = @EXEEXT@
-F77 = @F77@
-FFLAGS = @FFLAGS@
-FGREP = @FGREP@
-GREP = @GREP@
-INSTALL = @INSTALL@
-INSTALL_DATA = @INSTALL_DATA@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
-INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LD = @LD@
-LDFLAGS = @LDFLAGS@
-LIBMATH = @LIBMATH@
-LIBOBJS = @LIBOBJS@
-LIBS = @LIBS@
-LIBTOOL = @LIBTOOL@
-LIPO = @LIPO@
-LN_S = @LN_S@
-LTLIBOBJS = @LTLIBOBJS@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
-MKDIR_P = @MKDIR_P@
-NM = @NM@
-NMEDIT = @NMEDIT@
-OBJDUMP = @OBJDUMP@
-OBJEXT = @OBJEXT@
-OTOOL = @OTOOL@
-OTOOL64 = @OTOOL64@
-PACKAGE = @PACKAGE@
-PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
-PACKAGE_NAME = @PACKAGE_NAME@
-PACKAGE_STRING = @PACKAGE_STRING@
-PACKAGE_TARNAME = @PACKAGE_TARNAME@
-PACKAGE_URL = @PACKAGE_URL@
-PACKAGE_VERSION = @PACKAGE_VERSION@
-PATH_SEPARATOR = @PATH_SEPARATOR@
-RANLIB = @RANLIB@
-SED = @SED@
-SET_MAKE = @SET_MAKE@
-SHELL = @SHELL@
-STRIP = @STRIP@
-VERSION = @VERSION@
-abs_builddir = @abs_builddir@
-abs_srcdir = @abs_srcdir@
-abs_top_builddir = @abs_top_builddir@
-abs_top_srcdir = @abs_top_srcdir@
-ac_ct_CC = @ac_ct_CC@
-ac_ct_CXX = @ac_ct_CXX@
-ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
-ac_ct_F77 = @ac_ct_F77@
-am__include = @am__include@
-am__leading_dot = @am__leading_dot@
-am__quote = @am__quote@
-am__tar = @am__tar@
-am__untar = @am__untar@
-bindir = @bindir@
-build = @build@
-build_alias = @build_alias@
-build_cpu = @build_cpu@
-build_os = @build_os@
-build_vendor = @build_vendor@
-builddir = @builddir@
-datadir = @datadir@
-datarootdir = @datarootdir@
-docdir = @docdir@
-dvidir = @dvidir@
-exec_prefix = @exec_prefix@
-host = @host@
-host_alias = @host_alias@
-host_cpu = @host_cpu@
-host_os = @host_os@
-host_vendor = @host_vendor@
-htmldir = @htmldir@
-includedir = @includedir@
-infodir = @infodir@
-install_sh = @install_sh@
-libdir = @libdir@
-libexecdir = @libexecdir@
-localedir = @localedir@
-localstatedir = @localstatedir@
-lt_ECHO = @lt_ECHO@
-mandir = @mandir@
-mkdir_p = @mkdir_p@
-oldincludedir = @oldincludedir@
-pdfdir = @pdfdir@
-prefix = @prefix@
-program_transform_name = @program_transform_name@
-psdir = @psdir@
-sbindir = @sbindir@
-sharedstatedir = @sharedstatedir@
-srcdir = @srcdir@
-sysconfdir = @sysconfdir@
-target_alias = @target_alias@
-top_build_prefix = @top_build_prefix@
-top_builddir = @top_builddir@
-top_srcdir = @top_srcdir@
-libSpec2_la_CFLAGS = -I $(top_builddir)/src/c/type \
- -I $(top_builddir)/src/c/matrixOperations/includes \
- -I $(top_builddir)/src/c/operations/includes \
- -I $(top_builddir)/src/c/elementaryFunctions/includes\
- -I $(top_builddir)/src/c/auxiliaryFunctions/includes
-
-instdir = $(top_builddir)/lib
-pkglib_LTLIBRARIES = libSpec2.la
-HEAD = ../includes/spec.h
-libSpec2_la_SOURCES = $(HEAD) \
- sspec2a.c \
- dspec2a.c \
- cspec2a.c \
- zspec2a.c
-
-check_LDADD = $(top_builddir)/src/c/type/libDoubleComplex.la \
- $(top_builddir)/src/c/type/libFloatComplex.la \
- $(top_builddir)/src/c/elementaryFunctions/sqrt/libSqrt.la \
- $(top_builddir)/src/fortran/lapack/libscilapack.la \
- $(top_builddir)/src/fortran/blas/libsciblas.la \
- $(top_builddir)/src/c/auxiliaryFunctions/abs/libAbs.la \
- $(top_builddir)/src/c/auxiliaryFunctions/conj/libConj.la \
- $(top_builddir)/src/c/auxiliaryFunctions/sign/libSign.la \
- $(top_builddir)/src/c/auxiliaryFunctions/pythag/libPythag.la \
- $(top_builddir)/src/c/operations/addition/libAddition.la \
- $(top_builddir)/src/c/operations/multiplication/libMultiplication.la \
- $(top_builddir)/src/c/matrixOperations/inversion/libMatrixInversion.la\
- $(top_builddir)/src/c/matrixOperations/zeros/libMatrixZeros.la\
- libSpec2.la
-
-check_INCLUDES = -I $(top_builddir)/src/c/type \
- -I $(top_builddir)/src/c/matrixOperations/includes \
- -I $(top_builddir)/src/c/operations/includes \
- -I $(top_builddir)/src/c/elementaryFunctions/includes\
- -I $(top_builddir)/src/c/auxiliaryFunctions/includes
-
-testDoubleSpec2_SOURCES = testDoubleSpec2.c
-testDoubleSpec2_LDADD = $(check_LDADD)
-testDoubleSpec2_CFLAGS = $(check_INCLUDES)
-testFloatSpec2_SOURCES = testFloatSpec2.c
-testFloatSpec2_LDADD = $(check_LDADD)
-testFloatSpec2_CFLAGS = $(check_INCLUDES)
-all: all-am
-
-.SUFFIXES:
-.SUFFIXES: .c .lo .o .obj
-$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
- @for dep in $?; do \
- case '$(am__configure_deps)' in \
- *$$dep*) \
- ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
- && { if test -f $@; then exit 0; else break; fi; }; \
- exit 1;; \
- esac; \
- done; \
- echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/c/matrixOperations/spec2/Makefile'; \
- $(am__cd) $(top_srcdir) && \
- $(AUTOMAKE) --foreign src/c/matrixOperations/spec2/Makefile
-.PRECIOUS: Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- @case '$?' in \
- *config.status*) \
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
- *) \
- echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
- cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
- esac;
-
-$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-
-$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
- cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
-$(am__aclocal_m4_deps):
-install-pkglibLTLIBRARIES: $(pkglib_LTLIBRARIES)
- @$(NORMAL_INSTALL)
- test -z "$(pkglibdir)" || $(MKDIR_P) "$(DESTDIR)$(pkglibdir)"
- @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
- list2=; for p in $$list; do \
- if test -f $$p; then \
- list2="$$list2 $$p"; \
- else :; fi; \
- done; \
- test -z "$$list2" || { \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(pkglibdir)'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(pkglibdir)"; \
- }
-
-uninstall-pkglibLTLIBRARIES:
- @$(NORMAL_UNINSTALL)
- @list='$(pkglib_LTLIBRARIES)'; test -n "$(pkglibdir)" || list=; \
- for p in $$list; do \
- $(am__strip_dir) \
- echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(pkglibdir)/$$f'"; \
- $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(pkglibdir)/$$f"; \
- done
-
-clean-pkglibLTLIBRARIES:
- -test -z "$(pkglib_LTLIBRARIES)" || rm -f $(pkglib_LTLIBRARIES)
- @list='$(pkglib_LTLIBRARIES)'; for p in $$list; do \
- dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test "$$dir" != "$$p" || dir=.; \
- echo "rm -f \"$${dir}/so_locations\""; \
- rm -f "$${dir}/so_locations"; \
- done
-libSpec2.la: $(libSpec2_la_OBJECTS) $(libSpec2_la_DEPENDENCIES)
- $(libSpec2_la_LINK) -rpath $(pkglibdir) $(libSpec2_la_OBJECTS) $(libSpec2_la_LIBADD) $(LIBS)
-
-clean-checkPROGRAMS:
- @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
- echo " rm -f" $$list; \
- rm -f $$list || exit $$?; \
- test -n "$(EXEEXT)" || exit 0; \
- list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
- echo " rm -f" $$list; \
- rm -f $$list
-testDoubleSpec2$(EXEEXT): $(testDoubleSpec2_OBJECTS) $(testDoubleSpec2_DEPENDENCIES)
- @rm -f testDoubleSpec2$(EXEEXT)
- $(testDoubleSpec2_LINK) $(testDoubleSpec2_OBJECTS) $(testDoubleSpec2_LDADD) $(LIBS)
-testFloatSpec2$(EXEEXT): $(testFloatSpec2_OBJECTS) $(testFloatSpec2_DEPENDENCIES)
- @rm -f testFloatSpec2$(EXEEXT)
- $(testFloatSpec2_LINK) $(testFloatSpec2_OBJECTS) $(testFloatSpec2_LDADD) $(LIBS)
-
-mostlyclean-compile:
- -rm -f *.$(OBJEXT)
-
-distclean-compile:
- -rm -f *.tab.c
-
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSpec2_la-cspec2a.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSpec2_la-dspec2a.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSpec2_la-sspec2a.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libSpec2_la-zspec2a.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testDoubleSpec2-testDoubleSpec2.Po@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/testFloatSpec2-testFloatSpec2.Po@am__quote@
-
-.c.o:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c $<
-
-.c.obj:
-@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
-
-.c.lo:
-@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
-
-libSpec2_la-sspec2a.lo: sspec2a.c
-@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSpec2_la_CFLAGS) $(CFLAGS) -MT libSpec2_la-sspec2a.lo -MD -MP -MF $(DEPDIR)/libSpec2_la-sspec2a.Tpo -c -o libSpec2_la-sspec2a.lo `test -f 'sspec2a.c' || echo '$(srcdir)/'`sspec2a.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSpec2_la-sspec2a.Tpo $(DEPDIR)/libSpec2_la-sspec2a.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='sspec2a.c' object='libSpec2_la-sspec2a.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSpec2_la_CFLAGS) $(CFLAGS) -c -o libSpec2_la-sspec2a.lo `test -f 'sspec2a.c' || echo '$(srcdir)/'`sspec2a.c
-
-libSpec2_la-dspec2a.lo: dspec2a.c
-@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSpec2_la_CFLAGS) $(CFLAGS) -MT libSpec2_la-dspec2a.lo -MD -MP -MF $(DEPDIR)/libSpec2_la-dspec2a.Tpo -c -o libSpec2_la-dspec2a.lo `test -f 'dspec2a.c' || echo '$(srcdir)/'`dspec2a.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSpec2_la-dspec2a.Tpo $(DEPDIR)/libSpec2_la-dspec2a.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dspec2a.c' object='libSpec2_la-dspec2a.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSpec2_la_CFLAGS) $(CFLAGS) -c -o libSpec2_la-dspec2a.lo `test -f 'dspec2a.c' || echo '$(srcdir)/'`dspec2a.c
-
-libSpec2_la-cspec2a.lo: cspec2a.c
-@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSpec2_la_CFLAGS) $(CFLAGS) -MT libSpec2_la-cspec2a.lo -MD -MP -MF $(DEPDIR)/libSpec2_la-cspec2a.Tpo -c -o libSpec2_la-cspec2a.lo `test -f 'cspec2a.c' || echo '$(srcdir)/'`cspec2a.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSpec2_la-cspec2a.Tpo $(DEPDIR)/libSpec2_la-cspec2a.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cspec2a.c' object='libSpec2_la-cspec2a.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSpec2_la_CFLAGS) $(CFLAGS) -c -o libSpec2_la-cspec2a.lo `test -f 'cspec2a.c' || echo '$(srcdir)/'`cspec2a.c
-
-libSpec2_la-zspec2a.lo: zspec2a.c
-@am__fastdepCC_TRUE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSpec2_la_CFLAGS) $(CFLAGS) -MT libSpec2_la-zspec2a.lo -MD -MP -MF $(DEPDIR)/libSpec2_la-zspec2a.Tpo -c -o libSpec2_la-zspec2a.lo `test -f 'zspec2a.c' || echo '$(srcdir)/'`zspec2a.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/libSpec2_la-zspec2a.Tpo $(DEPDIR)/libSpec2_la-zspec2a.Plo
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='zspec2a.c' object='libSpec2_la-zspec2a.lo' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libSpec2_la_CFLAGS) $(CFLAGS) -c -o libSpec2_la-zspec2a.lo `test -f 'zspec2a.c' || echo '$(srcdir)/'`zspec2a.c
-
-testDoubleSpec2-testDoubleSpec2.o: testDoubleSpec2.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleSpec2_CFLAGS) $(CFLAGS) -MT testDoubleSpec2-testDoubleSpec2.o -MD -MP -MF $(DEPDIR)/testDoubleSpec2-testDoubleSpec2.Tpo -c -o testDoubleSpec2-testDoubleSpec2.o `test -f 'testDoubleSpec2.c' || echo '$(srcdir)/'`testDoubleSpec2.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testDoubleSpec2-testDoubleSpec2.Tpo $(DEPDIR)/testDoubleSpec2-testDoubleSpec2.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testDoubleSpec2.c' object='testDoubleSpec2-testDoubleSpec2.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleSpec2_CFLAGS) $(CFLAGS) -c -o testDoubleSpec2-testDoubleSpec2.o `test -f 'testDoubleSpec2.c' || echo '$(srcdir)/'`testDoubleSpec2.c
-
-testDoubleSpec2-testDoubleSpec2.obj: testDoubleSpec2.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleSpec2_CFLAGS) $(CFLAGS) -MT testDoubleSpec2-testDoubleSpec2.obj -MD -MP -MF $(DEPDIR)/testDoubleSpec2-testDoubleSpec2.Tpo -c -o testDoubleSpec2-testDoubleSpec2.obj `if test -f 'testDoubleSpec2.c'; then $(CYGPATH_W) 'testDoubleSpec2.c'; else $(CYGPATH_W) '$(srcdir)/testDoubleSpec2.c'; fi`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testDoubleSpec2-testDoubleSpec2.Tpo $(DEPDIR)/testDoubleSpec2-testDoubleSpec2.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testDoubleSpec2.c' object='testDoubleSpec2-testDoubleSpec2.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testDoubleSpec2_CFLAGS) $(CFLAGS) -c -o testDoubleSpec2-testDoubleSpec2.obj `if test -f 'testDoubleSpec2.c'; then $(CYGPATH_W) 'testDoubleSpec2.c'; else $(CYGPATH_W) '$(srcdir)/testDoubleSpec2.c'; fi`
-
-testFloatSpec2-testFloatSpec2.o: testFloatSpec2.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatSpec2_CFLAGS) $(CFLAGS) -MT testFloatSpec2-testFloatSpec2.o -MD -MP -MF $(DEPDIR)/testFloatSpec2-testFloatSpec2.Tpo -c -o testFloatSpec2-testFloatSpec2.o `test -f 'testFloatSpec2.c' || echo '$(srcdir)/'`testFloatSpec2.c
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testFloatSpec2-testFloatSpec2.Tpo $(DEPDIR)/testFloatSpec2-testFloatSpec2.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testFloatSpec2.c' object='testFloatSpec2-testFloatSpec2.o' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatSpec2_CFLAGS) $(CFLAGS) -c -o testFloatSpec2-testFloatSpec2.o `test -f 'testFloatSpec2.c' || echo '$(srcdir)/'`testFloatSpec2.c
-
-testFloatSpec2-testFloatSpec2.obj: testFloatSpec2.c
-@am__fastdepCC_TRUE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatSpec2_CFLAGS) $(CFLAGS) -MT testFloatSpec2-testFloatSpec2.obj -MD -MP -MF $(DEPDIR)/testFloatSpec2-testFloatSpec2.Tpo -c -o testFloatSpec2-testFloatSpec2.obj `if test -f 'testFloatSpec2.c'; then $(CYGPATH_W) 'testFloatSpec2.c'; else $(CYGPATH_W) '$(srcdir)/testFloatSpec2.c'; fi`
-@am__fastdepCC_TRUE@ $(am__mv) $(DEPDIR)/testFloatSpec2-testFloatSpec2.Tpo $(DEPDIR)/testFloatSpec2-testFloatSpec2.Po
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='testFloatSpec2.c' object='testFloatSpec2-testFloatSpec2.obj' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(testFloatSpec2_CFLAGS) $(CFLAGS) -c -o testFloatSpec2-testFloatSpec2.obj `if test -f 'testFloatSpec2.c'; then $(CYGPATH_W) 'testFloatSpec2.c'; else $(CYGPATH_W) '$(srcdir)/testFloatSpec2.c'; fi`
-
-mostlyclean-libtool:
- -rm -f *.lo
-
-clean-libtool:
- -rm -rf .libs _libs
-
-ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- mkid -fID $$unique
-tags: TAGS
-
-TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- set x; \
- here=`pwd`; \
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- shift; \
- if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
- test -n "$$unique" || unique=$$empty_fix; \
- if test $$# -gt 0; then \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- "$$@" $$unique; \
- else \
- $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
- $$unique; \
- fi; \
- fi
-ctags: CTAGS
-CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
- $(TAGS_FILES) $(LISP)
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
- unique=`for i in $$list; do \
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
- done | \
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
- END { if (nonempty) { for (i in files) print i; }; }'`; \
- test -z "$(CTAGS_ARGS)$$unique" \
- || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
- $$unique
-
-GTAGS:
- here=`$(am__cd) $(top_builddir) && pwd` \
- && $(am__cd) $(top_srcdir) \
- && gtags -i $(GTAGS_ARGS) "$$here"
-
-distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
-
-check-TESTS: $(TESTS)
- @failed=0; all=0; xfail=0; xpass=0; skip=0; \
- srcdir=$(srcdir); export srcdir; \
- list=' $(TESTS) '; \
- $(am__tty_colors); \
- if test -n "$$list"; then \
- for tst in $$list; do \
- if test -f ./$$tst; then dir=./; \
- elif test -f $$tst; then dir=; \
- else dir="$(srcdir)/"; fi; \
- if $(TESTS_ENVIRONMENT) $${dir}$$tst; then \
- all=`expr $$all + 1`; \
- case " $(XFAIL_TESTS) " in \
- *[\ \ ]$$tst[\ \ ]*) \
- xpass=`expr $$xpass + 1`; \
- failed=`expr $$failed + 1`; \
- col=$$red; res=XPASS; \
- ;; \
- *) \
- col=$$grn; res=PASS; \
- ;; \
- esac; \
- elif test $$? -ne 77; then \
- all=`expr $$all + 1`; \
- case " $(XFAIL_TESTS) " in \
- *[\ \ ]$$tst[\ \ ]*) \
- xfail=`expr $$xfail + 1`; \
- col=$$lgn; res=XFAIL; \
- ;; \
- *) \
- failed=`expr $$failed + 1`; \
- col=$$red; res=FAIL; \
- ;; \
- esac; \
- else \
- skip=`expr $$skip + 1`; \
- col=$$blu; res=SKIP; \
- fi; \
- echo "$${col}$$res$${std}: $$tst"; \
- done; \
- if test "$$all" -eq 1; then \
- tests="test"; \
- All=""; \
- else \
- tests="tests"; \
- All="All "; \
- fi; \
- if test "$$failed" -eq 0; then \
- if test "$$xfail" -eq 0; then \
- banner="$$All$$all $$tests passed"; \
- else \
- if test "$$xfail" -eq 1; then failures=failure; else failures=failures; fi; \
- banner="$$All$$all $$tests behaved as expected ($$xfail expected $$failures)"; \
- fi; \
- else \
- if test "$$xpass" -eq 0; then \
- banner="$$failed of $$all $$tests failed"; \
- else \
- if test "$$xpass" -eq 1; then passes=pass; else passes=passes; fi; \
- banner="$$failed of $$all $$tests did not behave as expected ($$xpass unexpected $$passes)"; \
- fi; \
- fi; \
- dashes="$$banner"; \
- skipped=""; \
- if test "$$skip" -ne 0; then \
- if test "$$skip" -eq 1; then \
- skipped="($$skip test was not run)"; \
- else \
- skipped="($$skip tests were not run)"; \
- fi; \
- test `echo "$$skipped" | wc -c` -le `echo "$$banner" | wc -c` || \
- dashes="$$skipped"; \
- fi; \
- report=""; \
- if test "$$failed" -ne 0 && test -n "$(PACKAGE_BUGREPORT)"; then \
- report="Please report to $(PACKAGE_BUGREPORT)"; \
- test `echo "$$report" | wc -c` -le `echo "$$banner" | wc -c` || \
- dashes="$$report"; \
- fi; \
- dashes=`echo "$$dashes" | sed s/./=/g`; \
- if test "$$failed" -eq 0; then \
- echo "$$grn$$dashes"; \
- else \
- echo "$$red$$dashes"; \
- fi; \
- echo "$$banner"; \
- test -z "$$skipped" || echo "$$skipped"; \
- test -z "$$report" || echo "$$report"; \
- echo "$$dashes$$std"; \
- test "$$failed" -eq 0; \
- else :; fi
-
-distdir: $(DISTFILES)
- @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
- list='$(DISTFILES)'; \
- dist_files=`for file in $$list; do echo $$file; done | \
- sed -e "s|^$$srcdirstrip/||;t" \
- -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
- case $$dist_files in \
- */*) $(MKDIR_P) `echo "$$dist_files" | \
- sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
- sort -u` ;; \
- esac; \
- for file in $$dist_files; do \
- if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- if test -d $$d/$$file; then \
- dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test -d "$(distdir)/$$file"; then \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
- cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
- find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
- fi; \
- cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
- else \
- test -f "$(distdir)/$$file" \
- || cp -p $$d/$$file "$(distdir)/$$file" \
- || exit 1; \
- fi; \
- done
-check-am: all-am
- $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
- $(MAKE) $(AM_MAKEFLAGS) check-TESTS
-check: check-am
-all-am: Makefile $(LTLIBRARIES)
-installdirs:
- for dir in "$(DESTDIR)$(pkglibdir)"; do \
- test -z "$$dir" || $(MKDIR_P) "$$dir"; \
- done
-install: install-am
-install-exec: install-exec-am
-install-data: install-data-am
-uninstall: uninstall-am
-
-install-am: all-am
- @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
-
-installcheck: installcheck-am
-install-strip:
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
- `test -z '$(STRIP)' || \
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
-mostlyclean-generic:
-
-clean-generic:
-
-distclean-generic:
- -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
- -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-
-maintainer-clean-generic:
- @echo "This command is intended for maintainers to use"
- @echo "it deletes files that may require special tools to rebuild."
-clean: clean-am
-
-clean-am: clean-checkPROGRAMS clean-generic clean-libtool \
- clean-pkglibLTLIBRARIES mostlyclean-am
-
-distclean: distclean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-distclean-am: clean-am distclean-compile distclean-generic \
- distclean-tags
-
-dvi: dvi-am
-
-dvi-am:
-
-html: html-am
-
-html-am:
-
-info: info-am
-
-info-am:
-
-install-data-am:
-
-install-dvi: install-dvi-am
-
-install-dvi-am:
-
-install-exec-am: install-pkglibLTLIBRARIES
-
-install-html: install-html-am
-
-install-html-am:
-
-install-info: install-info-am
-
-install-info-am:
-
-install-man:
-
-install-pdf: install-pdf-am
-
-install-pdf-am:
-
-install-ps: install-ps-am
-
-install-ps-am:
-
-installcheck-am:
-
-maintainer-clean: maintainer-clean-am
- -rm -rf ./$(DEPDIR)
- -rm -f Makefile
-maintainer-clean-am: distclean-am maintainer-clean-generic
-
-mostlyclean: mostlyclean-am
-
-mostlyclean-am: mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool
-
-pdf: pdf-am
-
-pdf-am:
-
-ps: ps-am
-
-ps-am:
-
-uninstall-am: uninstall-pkglibLTLIBRARIES
-
-.MAKE: check-am install-am install-strip
-
-.PHONY: CTAGS GTAGS all all-am check check-TESTS check-am clean \
- clean-checkPROGRAMS clean-generic clean-libtool \
- clean-pkglibLTLIBRARIES ctags distclean distclean-compile \
- distclean-generic distclean-libtool distclean-tags distdir dvi \
- dvi-am html html-am info info-am install install-am \
- install-data install-data-am install-dvi install-dvi-am \
- install-exec install-exec-am install-html install-html-am \
- install-info install-info-am install-man install-pdf \
- install-pdf-am install-pkglibLTLIBRARIES install-ps \
- install-ps-am install-strip installcheck installcheck-am \
- installdirs maintainer-clean maintainer-clean-generic \
- mostlyclean mostlyclean-compile mostlyclean-generic \
- mostlyclean-libtool pdf pdf-am ps ps-am tags uninstall \
- uninstall-am uninstall-pkglibLTLIBRARIES
-
-
-# Tell versions [3.59,3.63) of GNU make to not export all variables.
-# Otherwise a system limit (for SysV at least) may be exceeded.
-.NOEXPORT:
diff --git a/src/c/matrixOperations/spec2/cspec2a.c b/src/c/matrixOperations/spec2/cspec2a.c
deleted file mode 100644
index d3a4312..0000000
--- a/src/c/matrixOperations/spec2/cspec2a.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- * Copyright (C) 2008 - INRIA - Arnaud TORSET
- *
- * 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 <stdlib.h>
-#include "spec.h"
-
-
-
-void cspec2a(floatComplex* in, int rows, floatComplex* eigenvalues,floatComplex* eigenvectors){
- /* As we use Lapack to find the eigenvalues, we must cast the floatComplex input into doubleComplex
- and the doubleComplex outputs of dspeca into floatComplex*/
-
- int i;
- doubleComplex* dblin;
- doubleComplex* dbleigenvalues,*dbleigenvectors;
-
- dblin=(doubleComplex*)malloc((unsigned int)(rows*rows)*sizeof(doubleComplex));
- dbleigenvalues=(doubleComplex*)malloc((unsigned int)(rows*rows)*sizeof(doubleComplex));
- dbleigenvectors=(doubleComplex*)malloc((unsigned int)(rows*rows)*sizeof(doubleComplex));
-
- for (i=0;i<rows*rows;i++) dblin[i]=DoubleComplex((double)creals(in[i]),(double)cimags(in[i]));
-
- zspec2a(dblin,rows,dbleigenvalues,dbleigenvectors);
-
- for (i=0;i<rows*rows;i++) eigenvalues[i]=FloatComplex((float)zreals(dbleigenvalues[i]),(float)zimags(dbleigenvalues[i]));
- for (i=0;i<rows*rows;i++) eigenvectors[i]=FloatComplex((float)zreals(dbleigenvectors[i]),(float)zimags(dbleigenvectors[i]));
-}
diff --git a/src/c/matrixOperations/spec2/dspec2a.c b/src/c/matrixOperations/spec2/dspec2a.c
deleted file mode 100644
index 98b2c5a..0000000
--- a/src/c/matrixOperations/spec2/dspec2a.c
+++ /dev/null
@@ -1,113 +0,0 @@
-/*
- * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- * Copyright (C) 2008 - INRIA - Arnaud TORSET
- *
- * 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 <stdlib.h>
-#include "spec.h"
-#include "lapack.h"
-#include "zeros.h"
-#include "max.h"
-
-void dspec2a(double* in, int rows,double* eigenvalues,double* eigenvectors){
- int i=0, j=0, ij=0, ij1=0;
- int symmetric=0;
- int INFO=0;
- int iWorkSize = 0;
- double* pdblWork;
- double* outReal;
- double* outImag;
- double* pdblLeftvectors;
- double* pdblRightvectors;
- double* inCopy;
-
- /* FIXME : malloc here */
- inCopy = (double*)malloc((unsigned int)(rows*rows) * sizeof(double));
- outReal = (double*)malloc((unsigned int)rows * sizeof(double));
- outImag = NULL;
- pdblLeftvectors=NULL;
- pdblRightvectors=NULL;
-
-
- iWorkSize = 4*rows;
- pdblWork = (double*)malloc((unsigned int)iWorkSize * sizeof(double));
-
- for(i=0;i<rows*rows;i++) inCopy[i]=in[i];
-
-
-
- /* look if the matrix is symmetric */
- for (i=0;i<rows;i++){
- for (j=0;j<rows;j++)
- if (in[i*rows+j]!=in[i+j*rows]) break;
- if (j!=rows) break;
-
- }
-
- /* the matrix is symmetric if the 2 loops goes to end i.e
- i==rows and j==rows */
- if ((i==rows)&&(j==rows)) symmetric=1;
-
- /* apply lapack function according to symmetry */
- if(symmetric){
- C2F(dsyev)( "V", "U", &rows, inCopy, &rows, outReal, pdblWork, &iWorkSize, &INFO );
-
- /* Computation of eigenvectors */
- for (i=0;i<rows*rows;i++) eigenvectors[i] = inCopy[i];
- }
- else {
- pdblRightvectors=(double*)malloc((unsigned int)(rows*rows) * sizeof(double));
- outImag = (double*)malloc((unsigned int)rows * sizeof(double));
- C2F(dgeev)( "N", "V", &rows, inCopy, &rows, outReal, outImag,
- pdblLeftvectors, &rows, pdblRightvectors, &rows, pdblWork, &iWorkSize, &INFO );
-
- /* Computation of eigenvectors */
- j=0;
- while (j<rows)
- {
- if (outImag[j]==0)
- {
- for(i = 0 ; i < rows ; i++)
- {
- ij = i + j * rows;
- eigenvectors[ij] = pdblRightvectors[ij];
- }
- j = j + 1;
- }
- else
- {
- for(i = 0 ; i < rows ; i++)
- {
- ij = i + j * rows;
- ij1 = i + (j + 1) * rows;
- eigenvectors[ij] = pdblRightvectors[ij];
- eigenvectors[ij1] = pdblRightvectors[ij];
- }
- j = j + 2;
- }
- }
- }
-
- /* Computation of eigenvalues */
- dzerosa(eigenvalues,1,rows*rows);
- for (i=0;i<rows;i++) eigenvalues[i+i*rows]=outReal[i];
-
-
-
-
- free(inCopy);
- free(outReal);
- free(outImag);
- free(pdblLeftvectors);
- free(pdblRightvectors);
- free(pdblWork);
-
-}
-
diff --git a/src/c/matrixOperations/spec2/sspec2a.c b/src/c/matrixOperations/spec2/sspec2a.c
deleted file mode 100644
index d3ab00d..0000000
--- a/src/c/matrixOperations/spec2/sspec2a.c
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- * Copyright (C) 2008 - INRIA - Arnaud TORSET
- *
- * 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 <stdlib.h>
-#include "spec.h"
-
-
-
-void sspec2a(float* in, int rows, float* eigenvalues,float* eigenvectors){
- /* As we use Lapack to find the eigenvalues, we must cast the float input into double
- and the doubleComplex outputs of dspec2a into floatComplex*/
-
- int i;
- double* dblin;
- double *dbleigenvalues,*dbleigenvectors;
-
- dblin=(double*)malloc((unsigned int)(rows*rows)*sizeof(double));
- dbleigenvalues = (double*)malloc((unsigned int)(rows*rows)*sizeof(double));
- dbleigenvectors = (double*)malloc((unsigned int)(rows*rows)*sizeof(double));
-
- for (i=0;i<rows*rows;i++) dblin[i]=(double)in[i];
-
- dspec2a(dblin,rows,dbleigenvalues,dbleigenvectors);
-
- for (i=0;i<rows*rows;i++) eigenvalues[i]=(float)dbleigenvalues[i];
- for (i=0;i<rows*rows;i++) eigenvectors[i]=(float)dbleigenvectors[i];
-}
diff --git a/src/c/matrixOperations/spec2/testDoubleSpec2.c b/src/c/matrixOperations/spec2/testDoubleSpec2.c
deleted file mode 100644
index a090f02..0000000
--- a/src/c/matrixOperations/spec2/testDoubleSpec2.c
+++ /dev/null
@@ -1,261 +0,0 @@
-/*
- * Copyright (C) 2008 - INRIA - Arnaud TORSET
- *
- * 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 "spec.h"
-#include "stdio.h"
-#include "assert.h"
-#include "math.h"
-
-static void dspec2aTest(void){
- double in[4]={1,1,1,3};
- double resultValuesR[4]={0.5857864376269050765700,0,0,3.4142135623730949234300};
- double resultVectorsR[4]={- 0.9238795325112867384831,0.3826834323650897817792,
- 0.3826834323650897817792,0.9238795325112867384831};
-
-
- double in2[4]={1,1,-2,3};
- double resultValues2R[4]={1.9999999999999997779554,0,0,1.9999999999999997779554};
- double resultVectors2R[4]={0.8164965809277261454824,- 0.4082482904638631282523,
- 0.8164965809277261454824,- 0.4082482904638631282523};
-
- double in3[9]={0,-1,0,1,0,0,0,0,0};
- double resultValues3R[9]={0};
- double resultVectors3R[9]={0.7071067811865474617150,0,0,0.7071067811865474617150,0,0,0,0,1};
-
-
- double out1[4],out2[4],out3[9],out4[9];
-
- int i;
- dspec2a(in3,3,out3,out4);
- for(i=0;i<9;i++){
- if (out3[i]>1e-16) assert( fabs(out3[i]-resultValues3R[i]) / fabs(out3[i]) <3e-16);
- else assert(1);
- }
- for(i=0;i<9;i++){
- if (out4[i]>1e-16) assert( fabs(out4[i]-resultVectors3R[i]) / fabs(out4[i]) <3e-16);
- else assert(1);
- }
-
-
- dspec2a(in,2,out1,out2);
- for(i=0;i<4;i++) printf("%f\n",out1[i]);
- for(i=0;i<4;i++){
- if (out1[i]>1e-16) assert( fabs(out1[i]-resultValuesR[i]) / fabs(out1[i]) <3e-16);
- else assert(1);
- }
- for(i=0;i<4;i++){
- if (out2[i]>1e-16) assert( fabs(out2[i]-resultVectorsR[i]) / fabs(out2[i]) <3e-16);
- else assert(1);
- }
-
-
- dspec2a(in2,2,out1,out2);
-
- for(i=0;i<4;i++){
- if (out1[i]>1e-16) assert( fabs(out1[i]-resultValues2R[i]) / fabs(out1[i]) <1e-16);
- else assert(1);
- }
- for(i=0;i<4;i++){
- if (out2[i]>1e-16) assert( fabs(out2[i]-resultVectors2R[i]) / fabs(out2[i]) <3e-16);
- else assert(1);
- }
-
-}
-
-
-
-
-static void zspec2aTest(void){
- double inR[4]={1,1,1,3};
- double inI[4]={0,0,0,0};
- double resultValuesR[4]={0.5857864376269050765700,0,0,3.4142135623730949234300};
- double resultValuesI[4]={0,0,0,0};
- double resultVectorsR[4]={- 0.9238795325112867384831,0.3826834323650897817792,
- 0.3826834323650897817792,0.9238795325112867384831};
- double resultVectorsI[4]={0,0,0,0};
-
- double in2R[4]={1,1,-2,3};
- double in2I[4]={0,0,0,0};
- double resultValues2R[4]={1.9999999999999997779554,0,0,1.9999999999999997779554};
- double resultValues2I[4]={0.9999999999999997779554,0,0,-0.9999999999999997779554};
- double resultVectors2R[4]={0.8164965809277261454824,- 0.4082482904638631282523,
- 0.8164965809277261454824,- 0.4082482904638631282523};
- double resultVectors2I[4]={0,- 0.4082482904638629062077,0,0.4082482904638629062077};
-
-
- double in3R[16]={ 0.4685934986919164657593, 0.4262020816095173358917, 0.4217656338587403297424, 0.1034853602759540081024 ,
- 0.4279759414494037628174, 0.7860729382373392581940, 0.8568082069978117942810, 0.1993437460623681545258 ,
- 0.7131301630288362503052, 0.5208952468819916248322, 0.9311723159626126289368, 0.4143836158327758312225,
- 0.5980196148157119750977, 0.5549105503596365451813, 0.8552952585741877555847, 0.3097750707529485225678};
- double in3I[16]={0.9446128141134977340698, 0.2442680452950298786163, 0.8760446915403008460999, 0.4874215493910014629364,
- 0.3844018988311290740967, 0.0922345430590212345123, 0.0705418726429343223572, 0.7338807261548936367035,
- 0.7792180571705102920532, 0.7827638057060539722443, 0.2161567779257893562317, 0.3420197847299277782440,
- 0.430093832314014434814 , 0.6261752569116652011871, 0.9554250938817858695984, 0.45415506651625037193 };
- double resultValues3R[16]={2.0556597713281337114211 , 0. , 0. , 0. ,
- 0. , - 0.3025728286579054682193 , 0. , 0. ,
- 0. , 0. , 0.1432776981289703988054 , 0. ,
- 0. , 0. , 0. , 0.59924918284561956571821};
- double resultValues3I[16]={2.0772175543447914947137 , 0. , 0. , 0. ,
- 0. , - 0.5223086999196728807959 , 0. , 0. ,
- 0. , 0. , 0.3871735516160564882782 , 0. ,
- 0. , 0. , 0. , - 0.2349232044266161556489 };
- double resultVectors3R[16]={ 0.5762578366606958546470 , 0.4529873647084416976583 , 0.5438116534400605495137 , 0.3599855200589946457868 ,
- - 0.3285074902800487195442, - 0.0923654569732548225147, 0.6473744750124794666846, - 0.1812302216765642182139 ,
- 0.7395301236826927748780, - 0.4588526195219964631811, 0.0997916953568371567496, - 0.3603263850824164338249 ,
- 0.0717862182160008133192, 0.6967198304315765922112, - 0.1153149977500917411355 , - 0.3232658081022470875077 };
- double resultVectors3I[16]={ 0. , - 0.1082260232744242933745, - 0.1403164362264210929254 , 0.0775054168635924967123 ,
- 0.0347047096401541868560, - 0.4780157518240965019984, 0. , 0.4493438228998393735303,
- 0. , - 0.0484367977162360741072 , 0.0664282497469102783949 , - 0.3098340648435350952461 ,
- 0.1768623397230159322024, 0. , - 0.4621680558325051979551 , 0.3830799998945915163517};
-
-
- double in4R[49]={0.0292230211198329925537, 0.1069206790998578071594, 9.7463708464056253433228, 7.7042609406635165214539 , 6.3966313377022743225098, 9.5358861843124032020569, 4.1484833415597677230835,
- 4.6615396952256560325623, 2.2384551353752613067627, 3.4569733263924717903137, 2.3406236339360475540161, 6.6193414805456995964050,2.6911795139312744140625,9.8302489006891846656799 ,
- 7.3933512251824140548706, 2.9021358629688620567322 , 3.9959496073424816131592 , 9.792278115637600421906 , 0.0755135808140039443970, 7.0210226578637957572937 , 8.9075061306357383728027 ,
- 6.5269742021337151527405 , 4.136228552088141441345 , 8.5816909139975905418396 , 2.3960896767675876617432 , 4.8200417729094624519348, 9.848585547879338264465 , 4.4697216479107737541199,
- 2.3298137634992599487305, 2.2345139319077134132385, 8.0025654565542936325073, 7.7507343282923102378845, 4.8250066302716732025146, 7.8448831336572766304016 , 1.5346793178468942642212 ,
- 7.7228771103546023368835 , 8.9520217850804328918457, 9.4673257926478981971741, 6.9818257447332143783569, 9.5591608202084898948669, 0.4840173013508319854736, 5.3235206427052617073059,
- 2.9468670953065156936646, 6.9771366892382502555847 , 9.3762038648128509521484 , 1.0755608463659882545471 , 7.7634243946522474288940, 6.3734178384765982627869 , 0.6630615703761577606201 };
- double in4I[49]={8.1694598542526364326477, 3.5473910067230463027954, 5.860544512979686260223, 3.4610254690051078796387, 4.4247510144487023353577, 8.8226650562137365341187, 7.6436930662021040916443 ,
- 7.764139864593744277954, 2.8076809318736195564270, 6.9086006004363298416138, 7.1747286943718791007996, 3.7201813608407974243164 , 9.3254965776577591896057, 2.2566775511950254440308,
- 7.5211019208654761314392 , 3.0747506581246852874756 , 5.9793261485174298286438, 1.9238903466612100601196, 2.3870888305827975273132 , 7.4708331003785133361816, 9.7131536761298775672913,
- 4.3703553732484579086304, 6.2248750543221831321716, 3.2913279719650745391846, 3.2963873865082859992981, 2.7686371374875307083130 , 4.8729835031554102897644, 7.7320465445518493652344 ,
- 9.0775218093767762184143, 5.0122931879013776779175, 5.1595458528026938438416, 5.79267887398600578308 , 1.5463936375454068183899 , 7.6111377868801355361938, 6.9079177780076861381531 ,
- 2.8732293471693992614746, 9.64253133628517389297 , 5.6607243325561285018921, 5.7821379369124770164490, 2.6634209789335727691650 , 4.7470985027030110359192, 6.0735465306788682937622,
- 0.4097307054325938224793, 5.0125684589147567749023 , 5.2959309751167893409729, 6.2594583164900541305542, 2.2193526616320013999939 , 3.467419948428869247437, 3.9511676924303174018860 };
- double resultValues4R[49]={39.018457752476393807228 ,0,0,0,0,0,0,
- 0,2.2455352415739073812517,0,0,0,0,0,
- 0,0,- 8.4848591657394489828903,0,0,0,0,
- 0,0,0,- 9.617033196016185669919,0,0,0,
- 0,0,0,0,- 3.7815852014367528077798,0,0,
- 0,0,0,0,0,- 4.44858427601393291440,0,
- 0,0,0,0,0,0,- 0.3001282122401837670900};
- double resultValues4I[49]={36.525725390582877594170,0,0,0,0,0,0,
- 0,- 5.9058762755733944516123,0,0,0,0,0,
- 0,0,- 3.5959527108686115681735,0,0,0,0,
- 0,0,0,1.8928051444081777088257,0,0,0,
- 0,0,0,0,- 3.1889864758923365251064,0,0,
- 0,0,0,0,0,3.2418188738592150777151,0,
- 0,0,0,0,0,0,1.5279802073147508156836};
-
- double resultVectors4R[49]={ 0.3499995148567048852684, 0.3131141942665225941234, 0.4518966551544936205431, 0.3429358568207974133912, 0.3073919828504245721490, 0.4236868694783915145763, 0.3928739146959387973368 ,
- 0.2654822689469810148566 , - 0.3607918093136298631762, 0.0473515544359270068586 , 0.5097969509656486986060 , -0.3771134435310480315096 , 0.2011534205484152293408, - 0.4415200724898113993078,
- 0.5454886553461798515130, - 0.2173248800239625522224, - 0.2171708216301463378883 , - 0.2460117034233289534662 , -0.3694743444265859433351 , 0.3601018742104445391483, 0.1530612374027510713681,
- 0.6385835932752577104310, - 0.0013906755423099548263, - 0.3368505708673739662551 , 0.1394203608831885433 , -0.2292783363046769218308 , -0.2740379414191142504187, 0.1926279946047058377889 ,
- - 0.6106238336849327819067, 0.0128604884735820379493, 0.2248434453925002574071, - 0.0955950290268089419854 , 0.6322383898844411431739 , - 0.1362122761803175874373, - 0.0030545591332723984190,
- 0.5431360047322275619308, 0.1304324282476526930541, - 0.3713242513274904177401, - 0.2693820083406764376299 , - 0.1431429883314006001882 , 0.0533021313694299267438, 0.0071247423818797811501 ,
- - 0.156705245229635081738, 0.0034676864415526253982 , - 0.3351413975178426096768 , 0.2927797449896782921996 , 0.5714932440406852443005 , 0.0738366305178744797288, - 0.4509415569247051669422 };
- double resultVectors4I[49]={ 0.0720991445669864616796 , 0.0844739028302603361942 , 0. , 0.0173431366502564965337, -0.0428710162141596462515, 0.0695226101295536302871, 0.0999385617869267273150,
- 0.2510960793336660668018 , - 0.1123901435582568414384, 0.0091069807153507792430, 0. , - 0.2545493692188907641771, 0.1149714203529902251111, 0.0762796210842419941667,
- 0. , 0.0611827470444509316505, 0.2295643426501567385678, - 0.2950878328821502361024, 0.198556748820033573955, 0.0646801132828138114483, - 0.2660572521172601678785,
- 0. , 0.2688905463703794573860, 0.2230635356255223633593 , - 0.2013432448241845862391, - 0.0386922946770884290668, 0.0358963301038670995480, - 0.3593711366897305303780 ,
- - 0.1386717901043315326337, 0.0600994116374372472356, - 0.1167558596038882207102 , 0.317965599565130263571, 0. , -0.0642522754144960878131, - 0.0853665514099945371695,
- 0. , 0.2715431731544318272320, - 0.1184277560110737481658 , 0.3655618467608299226868, - 0.4598766797780974302512 , 0.0188698345957667955319, - 0.1446429340244405892246,
- 0.346095581161616094867 , 0.0750882555805542639682, - 0.2494867985551498246188, - 0.2328934592128872882455, 0. , -0.0047307828167728396829, - 0.0078254955461786041004};
-
-
-
-
- doubleComplex *in,*in2,*in3,*in4,out1[4],out2[4],out3[16],out4[16],out5[49],out6[49];
-
- int i;
-
- in=DoubleComplexMatrix(inR,inI,4);
- in2=DoubleComplexMatrix(in2R,in2I,4);
- in3=DoubleComplexMatrix(in3R,in3I,16);
- in4=DoubleComplexMatrix(in4R,in4I,49);
- zspec2a(in,2,out1,out2);
-
-
- for(i=0;i<4;i++){
- if (zreals(out1[i])>1e-16) assert( fabs(zreals(out1[i])-resultValuesR[i]) / fabs(zreals(out1[i])) <3e-16);
- else assert(1);
- if (zimags(out1[i])>1e-16) assert( fabs(zimags(out1[i])-resultValuesI[i]) / fabs(zimags(out1[i])) <1e-16);
- else assert(1);
- }
-
- for(i=0;i<4;i++){
- if (zreals(out2[i])>1e-16) assert( fabs(zreals(out2[i])-resultVectorsR[i]) / fabs(zreals(out2[i])) <3e-16);
- else assert(1);
- if (zimags(out2[i])>1e-16) assert( fabs(zimags(out2[i])-resultVectorsI[i]) / fabs(zimags(out2[i])) <1e-16);
- else assert(1);
- }
-
-
- zspec2a(in2,2,out1,out2);
- for(i=0;i<4;i++){
- if (zreals(out1[i])>1e-16) assert( fabs(zreals(out1[i])-resultValues2R[i]) / fabs(zreals(out1[i])) <3e-16);
- else assert(1);
- if (zimags(out1[i])>1e-16) assert( fabs(zimags(out1[i])-resultValues2I[i]) / fabs(zimags(out1[i])) <3e-15);
- else assert(1);
- }
-
- for(i=0;i<4;i++){
- if (zreals(out2[i])>1e-16) assert( fabs(zreals(out2[i])-resultVectors2R[i]) / fabs(zreals(out2[i])) <3e-16);
- else assert(1);
- if (zimags(out2[i])>1e-16) assert( fabs(zimags(out2[i])-resultVectors2I[i]) / fabs(zimags(out2[i])) <3e-15);
- else assert(1);
- }
-
-
-
- zspec2a(in3,4,out3,out4);
- for(i=0;i<16;i++){
- if (zreals(out3[i])>1e-16) assert( fabs(zreals(out3[i])-resultValues3R[i]) / fabs(zreals(out3[i])) <3e-15);
- else assert(1);
- if (zimags(out3[i])>1e-16) assert( fabs(zimags(out3[i])-resultValues3I[i]) / fabs(zimags(out3[i])) <3e-15);
- else assert(1);
- }
- for(i=0;i<16;i++){
- if (zreals(out4[i])>1e-16) assert( fabs(zreals(out4[i])-resultVectors3R[i]) / fabs(zreals(out4[i])) <3e-15);
- else assert(1);
- if (zimags(out4[i])>1e-16) assert( fabs(zimags(out4[i])-resultVectors3I[i]) / fabs(zimags(out4[i])) <3e-14);
- else assert(1);
- }
-
- /* FIXME : assert : 3e-16 maybe du to little values like 0.001... */
- zspec2a(in4,7,out5,out6);
-
- for(i=0;i<49;i++){
- if (zreals(out5[i])>1e-16) assert( fabs(zreals(out5[i])-resultValues4R[i]) / fabs(zreals(out5[i])) <3e-15);
- else assert(1);
- if (zimags(out5[i])>1e-16) assert( fabs(zimags(out5[i])-resultValues4I[i]) / fabs(zimags(out5[i])) <3e-14);
- else assert(1);
- }
- for(i=0;i<49;i++){
- if (zreals(out6[i])>1e-16) assert( fabs(zreals(out6[i])-resultVectors4R[i]) / fabs(zreals(out6[i])) <3e-14);
- else assert(1);
- if (zimags(out6[i])>1e-16) assert( fabs(zimags(out6[i])-resultVectors4I[i]) / fabs(zimags(out6[i])) <3e-13);
- else assert(1);
- }
-
-
-
-}
-
-
-static int testSpec2(void){
- printf(">>> Double Spec2 Tests <<<\n");
- printf(">>> Double <<<\n");
- dspec2aTest();
- printf(">>> DoubleComplex <<<\n");
- zspec2aTest();
- return 0;
-}
-
-
-int main(void){
- assert (testSpec2()==0);
-
-
- return 0;
-}
diff --git a/src/c/matrixOperations/spec2/testFloatSpec2.c b/src/c/matrixOperations/spec2/testFloatSpec2.c
deleted file mode 100644
index fb2bc25..0000000
--- a/src/c/matrixOperations/spec2/testFloatSpec2.c
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- * Copyright (C) 2008 - INRIA - Arnaud TORSET
- *
- * 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 "spec.h"
-#include "stdio.h"
-#include "assert.h"
-#include "math.h"
-
-static void sspec2aTest(void){
- float in[4]={1.0f,1.0f,1.0f,3.0f};
- float resultValuesR[4]={0.5857864376269050765700f,0,0,3.4142135623730949234300f};
- float resultVectorsR[4]={- 0.9238795325112867384831f,0.3826834323650897817792f,
- 0.3826834323650897817792f,0.9238795325112867384831f};
-
- float in2[4]={1.0f,1.0f,-2.0f,3.0f};
- float resultValues2R[4]={1.9999999999999997779554f,0,0,1.9999999999999997779554f};
- float resultVectors2R[4]={0.8164965809277261454824f,- 0.4082482904638631282523f,
- 0.8164965809277261454824f,- 0.4082482904638631282523f};
- float eigenvalues[4],eigenvectors[4];
-
- int i;
-
- sspec2a(in,2,eigenvalues,eigenvectors);
-
- for(i=0;i<4;i++){
- if (eigenvalues[i]>1e-6) assert( fabs(eigenvalues[i]-resultValuesR[i]) / fabs(eigenvalues[i]) <1e-16);
- else assert(1);
- }
- for(i=0;i<4;i++){
- if (eigenvectors[i]>1e-6) assert( fabs(eigenvectors[i]-resultVectorsR[i]) / fabs(eigenvectors[i]) <1e-16);
- else assert(1);
- }
-
-
- sspec2a(in2,2,eigenvalues,eigenvectors);
-
-
-
- for(i=0;i<4;i++){
- if (eigenvalues[i]>1e-6) assert( fabs(eigenvalues[i]-resultValues2R[i]) / fabs(eigenvalues[i]) <1e-16);
- else assert(1);
- }
- for(i=0;i<4;i++){
- if (eigenvectors[i]>1e-6) assert( fabs(eigenvectors[i]-resultVectors2R[i]) / fabs(eigenvectors[i]) <1e-16);
- else assert(1);
- }
-}
-
-
-
-
-static void cspec2aTest(void){
- float inR[4]={1.0f,1.0f,1.0f,3.0f};
- float inI[4]={0.0f,0.0f,0.0f,0.0f};
- float resultValuesR[4]={0.5857864376269050765700f,0,0,3.4142135623730949234300f};
- float resultValuesI[4]={0,0,0,0};
- float resultVectorsR[4]={- 0.9238795325112867384831f,0.3826834323650897817792f,
- 0.3826834323650897817792f,0.9238795325112867384831f};
- float resultVectorsI[4]={0,0,0,0};
-
- float in2R[4]={1.0f,1.0f,-2.0f,3.0f};
- float in2I[4]={0.0f,0.0f,0.0f,0.0f};
- float resultValues2R[4]={1.9999999999999997779554f,0,0,1.9999999999999997779554f};
- float resultValues2I[4]={0.9999999999999997779554f,0,0,-0.9999999999999997779554f};
- float resultVectors2R[4]={0.8164965809277261454824f,- 0.4082482904638631282523f,
- 0.8164965809277261454824f,- 0.4082482904638631282523f};
- float resultVectors2I[4]={0,- 0.4082482904638629062077f,0,0.4082482904638629062077f};
-
- floatComplex *in,*in2,out1[4],out2[4];
-
- int i;
-
- in=FloatComplexMatrix(inR,inI,4);
- in2=FloatComplexMatrix(in2R,in2I,4);
-
- cspec2a(in,2,out1,out2);
- for(i=0;i<4;i++){
- if (creals(out1[i])>1e-16) assert( fabs(creals(out1[i])-resultValuesR[i]) / fabs(creals(out1[i])) <1e-15);
- else assert(1);
- if (cimags(out1[i])>1e-16) assert( fabs(cimags(out1[i])-resultValuesI[i]) / fabs(cimags(out1[i])) <1e-16);
- else assert(1);
- }
- for(i=0;i<4;i++){
- if (creals(out2[i])>1e-16) assert( fabs(creals(out2[i])-resultVectorsR[i]) / fabs(creals(out2[i])) <1e-15);
- else assert(1);
- if (cimags(out2[i])>1e-16) assert( fabs(cimags(out2[i])-resultVectorsI[i]) / fabs(cimags(out2[i])) <1e-16);
- else assert(1);
- }
-
-
- cspec2a(in2,2,out1,out2);
- for(i=0;i<4;i++){
- if (creals(out1[i])>1e-16) assert( fabs(creals(out1[i])-resultValues2R[i]) / fabs(creals(out1[i])) <1e-15);
- else assert(1);
- if (cimags(out1[i])>1e-16) assert( fabs(cimags(out1[i])-resultValues2I[i]) / fabs(cimags(out1[i])) <1e-15);
- else assert(1);
- }
- for(i=0;i<4;i++){
- if (creals(out2[i])>1e-16) assert( fabs(creals(out2[i])-resultVectors2R[i]) / fabs(creals(out2[i])) <1e-15);
- else assert(1);
- if (cimags(out2[i])>1e-16) assert( fabs(cimags(out2[i])-resultVectors2I[i]) / fabs(cimags(out2[i])) <1e-16);
- else assert(1);
- }
-}
-
-
-
-
-static int testSpec2(void){
- printf(">>> Float Spec2 Tests <<<\n");
- printf(">>> Float <<<\n");
- sspec2aTest();
- printf(">>> FloatComplex <<<\n");
- cspec2aTest();
- return 0;
-}
-
-
-int main(void){
- assert (testSpec2()==0);
-
-
- return 0;
-}
diff --git a/src/c/matrixOperations/spec2/test_DoubleSpec2/testDoubleSpec2.vcxproj b/src/c/matrixOperations/spec2/test_DoubleSpec2/testDoubleSpec2.vcxproj
deleted file mode 100644
index 7c36943..0000000
--- a/src/c/matrixOperations/spec2/test_DoubleSpec2/testDoubleSpec2.vcxproj
+++ /dev/null
@@ -1,178 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{FD0A4495-C372-41EF-B8EF-0A0939DA6C1E}</ProjectGuid>
- <RootNamespace>testDoubleSpec2</RootNamespace>
- <Keyword>Win32Proj</Keyword>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup>
- <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <MinimalRebuild>true</MinimalRebuild>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
- </ClCompile>
- <Link>
- <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <TargetMachine>MachineX86</TargetMachine>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <TargetMachine>MachineX86</TargetMachine>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="..\testDoubleSpec2.c">
- <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
- <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
- <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
- <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\..\..\type\type.vcxproj">
- <Project>{9b1bd750-1fef-4d6b-9422-782d16181cee}</Project>
- <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
- </ProjectReference>
- <ProjectReference Include="..\..\matrixOperations.vcxproj">
- <Project>{fd335544-52bf-4736-a34e-77f591d158d5}</Project>
- <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
- </ProjectReference>
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/src/c/matrixOperations/spec2/test_DoubleSpec2/testDoubleSpec2.vcxproj.filters b/src/c/matrixOperations/spec2/test_DoubleSpec2/testDoubleSpec2.vcxproj.filters
deleted file mode 100644
index 04f409d..0000000
--- a/src/c/matrixOperations/spec2/test_DoubleSpec2/testDoubleSpec2.vcxproj.filters
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="Source Files">
- <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- <Filter Include="Header Files">
- <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
- <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
- </Filter>
- <Filter Include="Resource Files">
- <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
- <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\testDoubleSpec2.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/src/c/matrixOperations/spec2/test_FloatSpec2/testFloatSpec2.vcxproj b/src/c/matrixOperations/spec2/test_FloatSpec2/testFloatSpec2.vcxproj
deleted file mode 100644
index f4154eb..0000000
--- a/src/c/matrixOperations/spec2/test_FloatSpec2/testFloatSpec2.vcxproj
+++ /dev/null
@@ -1,178 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{E20D0BC2-B28A-412C-9715-5B93B319A4A3}</ProjectGuid>
- <RootNamespace>testFloatSpec2</RootNamespace>
- <Keyword>Win32Proj</Keyword>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <CharacterSet>Unicode</CharacterSet>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup>
- <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(SolutionDir)bin\</OutDir>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(SolutionDir)bin\</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">$(ProjectDir)$(Configuration)\</IntDir>
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">true</LinkIncremental>
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">true</LinkIncremental>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(SolutionDir)bin\</OutDir>
- <OutDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(SolutionDir)bin\</OutDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">$(ProjectDir)$(Configuration)\</IntDir>
- <IntDir Condition="'$(Configuration)|$(Platform)'=='Release|x64'">$(ProjectDir)$(Configuration)\</IntDir>
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">false</LinkIncremental>
- <LinkIncremental Condition="'$(Configuration)|$(Platform)'=='Release|x64'">false</LinkIncremental>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <MinimalRebuild>true</MinimalRebuild>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>EditAndContinue</DebugInformationFormat>
- </ClCompile>
- <Link>
- <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <TargetMachine>MachineX86</TargetMachine>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <Optimization>Disabled</Optimization>
- <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
- <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <TargetMachine>MachineX86</TargetMachine>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <ClCompile>
- <Optimization>MaxSpeed</Optimization>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <AdditionalIncludeDirectories>../../../includes;../../../type;../../includes;../../../operations/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
- </ClCompile>
- <Link>
- <OutputFile>$(SolutionDir)bin\$(ProjectName).exe</OutputFile>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <SubSystem>Console</SubSystem>
- <OptimizeReferences>true</OptimizeReferences>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="..\testFloatSpec2.c">
- <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">CompileAsCpp</CompileAs>
- <CompileAs Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">CompileAsCpp</CompileAs>
- <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">CompileAsCpp</CompileAs>
- <CompileAs Condition="'$(Configuration)|$(Platform)'=='Release|x64'">CompileAsCpp</CompileAs>
- </ClCompile>
- </ItemGroup>
- <ItemGroup>
- <ProjectReference Include="..\..\..\type\type.vcxproj">
- <Project>{9b1bd750-1fef-4d6b-9422-782d16181cee}</Project>
- <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
- </ProjectReference>
- <ProjectReference Include="..\..\matrixOperations.vcxproj">
- <Project>{fd335544-52bf-4736-a34e-77f591d158d5}</Project>
- <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
- </ProjectReference>
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/src/c/matrixOperations/spec2/test_FloatSpec2/testFloatSpec2.vcxproj.filters b/src/c/matrixOperations/spec2/test_FloatSpec2/testFloatSpec2.vcxproj.filters
deleted file mode 100644
index 0c38d2f..0000000
--- a/src/c/matrixOperations/spec2/test_FloatSpec2/testFloatSpec2.vcxproj.filters
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <Filter Include="Source Files">
- <UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
- <Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
- </Filter>
- <Filter Include="Header Files">
- <UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
- <Extensions>h;hpp;hxx;hm;inl;inc;xsd</Extensions>
- </Filter>
- <Filter Include="Resource Files">
- <UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
- <Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav</Extensions>
- </Filter>
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="..\testFloatSpec2.c">
- <Filter>Source Files</Filter>
- </ClCompile>
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/src/c/matrixOperations/spec2/zspec2a.c b/src/c/matrixOperations/spec2/zspec2a.c
deleted file mode 100644
index e33ed89..0000000
--- a/src/c/matrixOperations/spec2/zspec2a.c
+++ /dev/null
@@ -1,96 +0,0 @@
-/*
- * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- * Copyright (C) 2008 - INRIA - Arnaud TORSET
- *
- * 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 <stdlib.h>
-#include "spec.h"
-#include "lapack.h"
-#include "zeros.h"
-#include "stdio.h"
-#include "conj.h"
-
-void zspec2a(doubleComplex* in, int rows,doubleComplex* eigenvalues, doubleComplex* eigenvectors){
- int i = 0, j = 0;
- int hermitian = 0;
- int INFO = 0;
- int iWorkSize = 0;
- doubleComplex* pdblWork;
- doubleComplex* pdblLeftvectors;
- doubleComplex* pdblRightvectors;
- doubleComplex* pdblRWork;
- double* pdblRWork2;
- double* outReal;
- double* outImag;
- doubleComplex* inCopy;
-
- inCopy = (doubleComplex*)malloc((unsigned int)(rows*rows) * sizeof(doubleComplex));
- outReal = (double*)malloc((unsigned int)rows * sizeof(double));
- outImag = (double*)malloc((unsigned int)rows * sizeof(double));
- pdblLeftvectors=NULL;
- pdblRightvectors=NULL;
-
- iWorkSize = 2*rows;
- pdblWork = (doubleComplex*)malloc((unsigned int)iWorkSize * sizeof(doubleComplex));
- pdblRWork = NULL;
- pdblRWork2 = NULL;
-
- for(i=0;i<rows*rows;i++) {
- inCopy[i]=DoubleComplex(zreals(in[i]),zimags(in[i]));
- eigenvectors[i]=DoubleComplex(zreals(in[i]),zimags(in[i]));
- }
- zzerosa(eigenvalues,1,rows*rows);
-
-
- /* look if the matrix is symmetric */
- for (i=0;i<rows;i++){
- for (j=0;j<rows;j++)
- if ( (zreals(in[i*rows+j])!=zreals(zconjs(in[i+j*rows]))) ||
- (zimags(in[i*rows+j])!=zimags(zconjs(in[i+j*rows]))) )
- break;
- if (j!=rows) break;
- }
-
-
- /* the matrix is symmetric if the 2 loops goes to end i.e
- i==rows and j==rows */
- if ((i==rows)&&(j==rows)) hermitian=1;
-
-
- /* apply lapack function according to symmetry */
- if(hermitian){
- pdblRWork2 = (double*)malloc((unsigned int)(3*rows) * sizeof(double));
- C2F(zheev)( "V", "U", &rows, eigenvectors, &rows, outReal, pdblWork, &iWorkSize, pdblRWork2, &INFO );
- dzerosa(outImag,1,rows);
- for (i=0;i<rows;i++) eigenvalues[i+i*rows]=DoubleComplex(outReal[i],outImag[i]);
- }
- else {
- pdblRWork = (doubleComplex*)malloc((unsigned int)(3*rows) * sizeof(doubleComplex));
- C2F(zgeev)( "N", "V", &rows, inCopy, &rows, eigenvalues,
- pdblLeftvectors, &rows, eigenvectors, &rows, pdblWork, &iWorkSize,
- pdblRWork, &INFO );
- for (i=1;i<rows;i++) {
- eigenvalues[i+i*rows]=DoubleComplex(zreals(eigenvalues[i]),zimags(eigenvalues[i]));
- eigenvalues[i]=DoubleComplex(0,0);
- }
- }
-
-
-
-
- free(inCopy);
- free(outReal);
- free(outImag);
- free(pdblWork);
- free(pdblRWork);
- free(pdblRWork2);
- free(pdblLeftvectors);
- free(pdblRightvectors);
-}
diff --git a/src/c/matrixOperations/toeplitz/ctoeplitza.c b/src/c/matrixOperations/toeplitz/ctoeplitza.c
new file mode 100644
index 0000000..56c3ef8
--- /dev/null
+++ b/src/c/matrixOperations/toeplitz/ctoeplitza.c
@@ -0,0 +1,36 @@
+#include <stdio.h>
+#include "toeplitz.h"
+#include "floatComplex.h"
+#include "stdlib.h"
+#include "string.h"
+#include "cat.h"
+
+/*Function to build a Toeplitz Matrix for inputs of SingleComplex datatype*/
+
+void ctoeplitza(floatComplex* inp1,int size1,floatComplex* inp2,int size2,floatComplex* oup)
+{
+ if ((creals(inp1[0])!=creals(inp2[0]))&&(cimags(inp1[0])!=cimags(inp2[0])))
+ {
+ printf("Error!The first elements of the Vectors are not equal."); // First element of both input vectors must be equal for Toeplitz.
+ return;
+ }
+ int i, j;
+
+ for(i=0;i<size1*size2;i++) oup[i] = FloatComplex(0,0); // Initializing the output matrix with zeros.
+
+ for (i = 0; i<size1; i++)
+ {
+ for (j = 0; j<size2; j++)
+ {
+ oup[j*size1] = inp2[j]; // Elements of the second input vector are copied to the first row of the Toeplitx Matrix.
+ }
+ oup[i] = inp1[i]; // Elements of the first input vector are copied to the first column of the Toeplitx Matrix.
+ }
+ for (i = size2+1; i<size1*size2; i++) // Loop to build the rest of the Toeplitz matrix.
+ {
+ if (creals(oup[i]) == 0 && cimags(oup[i]) == 0)
+ oup[i] = oup[i-size2-1];
+ }
+}
+
+
diff --git a/src/c/matrixOperations/toeplitz/dtoeplitza.c b/src/c/matrixOperations/toeplitz/dtoeplitza.c
new file mode 100644
index 0000000..ef075a9
--- /dev/null
+++ b/src/c/matrixOperations/toeplitz/dtoeplitza.c
@@ -0,0 +1,33 @@
+#include <stdio.h>
+#include "toeplitz.h"
+
+
+/*Function to build a Toeplitz Matrix for inputs of Double datatype*/
+
+
+void dtoeplitza(double* inp1,int size1,double* inp2,int size2,double* oup)
+{
+ if (inp1[0]!=inp2[0])
+ {
+ printf("Error!The first elements of the Vectors are not equal."); // First element of both input vectors must be equal for Toeplitz.
+ return;
+ }
+ int i, j;
+
+ for(i=0;i<size1*size2;i++) oup[i] = 0; // Initializing the output matrix with zeros.
+
+ for (i = 0; i<size1; i++)
+ {
+ for (j = 0; j<size2; j++)
+ {
+ oup[j*size1] = inp2[j]; // Elements of the second input vector are copied to the first row of the Toeplitx Matrix.
+ }
+ oup[i] = inp1[i]; // Elements of the first input vector are copied to the first column of the Toeplitx Matrix.
+ }
+ for (i = size2+1; i<size1*size2; i++) // Loop to build the rest of the Toeplitz matrix.
+ {
+ if (oup[i] == 0)
+ oup[i] = oup[i-size2-1];
+ }
+}
+
diff --git a/src/c/matrixOperations/toeplitz/gtoeplitza.c b/src/c/matrixOperations/toeplitz/gtoeplitza.c
new file mode 100644
index 0000000..c852f92
--- /dev/null
+++ b/src/c/matrixOperations/toeplitz/gtoeplitza.c
@@ -0,0 +1,35 @@
+#include <stdio.h>
+#include "toeplitz.h"
+
+
+/*Function to build a Toeplitz Matrix for inputs of Character datatype*/
+
+
+void gtoeplitza(char* inp1,int size1,char* inp2,int size2,char* oup)
+{
+ if (inp1[0]!=inp2[0])
+ {
+ printf("Error!The first elements of the Vectors are not equal."); // First element of both input vectors must be equal for Toeplitz.
+ return;
+ }
+ int i, j;
+
+ for(i=0;i<size1*size2;i++) oup[i] = 0; // Initializing the output matrix with zeros.
+
+ for (i = 0; i<size1; i++)
+ {
+ for (j = 0; j<size2; j++)
+ {
+ oup[j*size1] = inp2[j]; // Elements of the second input vector are copied to the first row of the Toeplitx Matrix.
+ }
+ oup[i] = inp1[i]; // Elements of the first input vector are copied to the first column of the Toeplitx Matrix.
+ }
+ for (i = size2+1; i<size1*size2; i++) // Loop to build the rest of the Toeplitz matrix.
+ {
+ if (oup[i] == 0)
+ oup[i] = oup[i-size2-1];
+ }
+
+}
+
+
diff --git a/src/c/matrixOperations/toeplitz/i16toeplitza.c b/src/c/matrixOperations/toeplitz/i16toeplitza.c
new file mode 100644
index 0000000..945f626
--- /dev/null
+++ b/src/c/matrixOperations/toeplitz/i16toeplitza.c
@@ -0,0 +1,32 @@
+#include <stdio.h>
+#include "toeplitz.h"
+#include "int16.h"
+
+/*Function to build a Toeplitz Matrix for inputs of Signed Int16 datatype*/
+
+
+void i16toeplitza(int16* inp1,int size1,int16* inp2,int size2,int16* oup)
+{
+ if (inp1[0]!=inp2[0])
+ {
+ printf("Error!The first elements of the Vectors are not equal."); // First element of both input vectors must be equal for Toeplitz.
+ return;
+ }
+ int i, j;
+
+ for(i=0;i<size1*size2;i++) oup[i] = 0; // Initializing the output matrix with zeros.
+
+ for (i = 0; i<size1; i++)
+ {
+ for (j = 0; j<size2; j++)
+ {
+ oup[j*size1] = inp2[j]; // Elements of the second input vector are copied to the first row of the Toeplitx Matrix.
+ }
+ oup[i] = inp1[i]; // Elements of the first input vector are copied to the first column of the Toeplitx Matrix.
+ }
+ for (i = size2+1; i<size1*size2; i++) // Loop to build the rest of the Toeplitz matrix.
+ {
+ if (oup[i] == 0)
+ oup[i] = oup[i-size2-1];
+ }
+}
diff --git a/src/c/matrixOperations/toeplitz/i8toeplitza.c b/src/c/matrixOperations/toeplitz/i8toeplitza.c
new file mode 100644
index 0000000..5075cc1
--- /dev/null
+++ b/src/c/matrixOperations/toeplitz/i8toeplitza.c
@@ -0,0 +1,33 @@
+#include <stdio.h>
+#include "toeplitz.h"
+#include "int8.h"
+
+
+/*Function to build a Toeplitz Matrix for inputs of Signed Int8 datatype*/
+
+
+void i8toeplitza(int8* inp1,int size1,int8* inp2,int size2,int8* oup)
+{
+ if (inp1[0]!=inp2[0])
+ {
+ printf("Error!The first elements of the Vectors are not equal."); // First element of both input vectors must be equal for Toeplitz.
+ return;
+ }
+ int i, j;
+
+ for(i=0;i<size1*size2;i++) oup[i] = 0; // Initializing the output matrix with zeros.
+
+ for (i = 0; i<size1; i++)
+ {
+ for (j = 0; j<size2; j++)
+ {
+ oup[j*size1] = inp2[j]; // Elements of the second input vector are copied to the first row of the Toeplitx Matrix.
+ }
+ oup[i] = inp1[i]; // Elements of the first input vector are copied to the first column of the Toeplitx Matrix.
+ }
+ for (i = size2+1; i<size1*size2; i++) // Loop to build the rest of the Toeplitz matrix.
+ {
+ if (oup[i] == 0)
+ oup[i] = oup[i-size2-1];
+ }
+}
diff --git a/src/c/matrixOperations/toeplitz/stoeplitza.c b/src/c/matrixOperations/toeplitz/stoeplitza.c
new file mode 100644
index 0000000..11d91ce
--- /dev/null
+++ b/src/c/matrixOperations/toeplitz/stoeplitza.c
@@ -0,0 +1,32 @@
+#include <stdio.h>
+#include "toeplitz.h"
+
+
+/*Function to build a Toeplitz Matrix for inputs of Float datatype*/
+
+
+void stoeplitza(float* inp1,int size1,float* inp2,int size2,float* oup)
+{
+ if (inp1[0]!=inp2[0])
+ {
+ printf("Error!The first elements of the Vectors are not equal."); // First element of both input vectors must be equal for Toeplitz.
+ return;
+ }
+ int i, j;
+
+ for(i=0;i<size1*size2;i++) oup[i] = 0; // Initializing the output matrix with zeros.
+
+ for (i = 0; i<size1; i++)
+ {
+ for (j = 0; j<size2; j++)
+ {
+ oup[j*size1] = inp2[j]; // Elements of the second input vector are copied to the first row of the Toeplitx Matrix.
+ }
+ oup[i] = inp1[i]; // Elements of the first input vector are copied to the first column of the Toeplitx Matrix.
+ }
+ for (i = size2+1; i<size1*size2; i++) // Loop to build the rest of the Toeplitz matrix.
+ {
+ if (oup[i] == 0)
+ oup[i] = oup[i-size2-1];
+ }
+}
diff --git a/src/c/matrixOperations/toeplitz/u16toeplitza.c b/src/c/matrixOperations/toeplitz/u16toeplitza.c
new file mode 100644
index 0000000..8dab545
--- /dev/null
+++ b/src/c/matrixOperations/toeplitz/u16toeplitza.c
@@ -0,0 +1,33 @@
+#include <stdio.h>
+#include "toeplitz.h"
+#include "uint16.h"
+
+
+/*Function to build a Toeplitz Matrix for inputs of Unsigned Int16 datatype*/
+
+
+void u16toeplitza(uint16* inp1,int size1,uint16* inp2,int size2,uint16* oup)
+{
+ if (inp1[0]!=inp2[0])
+ {
+ printf("Error!The first elements of the Vectors are not equal."); // First element of both input vectors must be equal for Toeplitz.
+ return;
+ }
+ int i, j;
+
+ for(i=0;i<size1*size2;i++) oup[i] = 0; // Initializing the output matrix with zeros.
+
+ for (i = 0; i<size1; i++)
+ {
+ for (j = 0; j<size2; j++)
+ {
+ oup[j*size1] = inp2[j]; // Elements of the second input vector are copied to the first row of the Toeplitx Matrix.
+ }
+ oup[i] = inp1[i]; // Elements of the first input vector are copied to the first column of the Toeplitx Matrix.
+ }
+ for (i = size2+1; i<size1*size2; i++) // Loop to build the rest of the Toeplitz matrix.
+ {
+ if (oup[i] == 0)
+ oup[i] = oup[i-size2-1];
+ }
+}
diff --git a/src/c/matrixOperations/toeplitz/u8toeplitza.c b/src/c/matrixOperations/toeplitz/u8toeplitza.c
new file mode 100644
index 0000000..8301fc1
--- /dev/null
+++ b/src/c/matrixOperations/toeplitz/u8toeplitza.c
@@ -0,0 +1,33 @@
+#include <stdio.h>
+#include "toeplitz.h"
+#include "uint8.h"
+
+
+/*Function to build a Toeplitz Matrix for inputs of Unsigned Int8 datatype*/
+
+
+void u8toeplitza(uint8* inp1,int size1,uint8* inp2,int size2,uint8* oup)
+{
+ if (inp1[0]!=inp2[0])
+ {
+ printf("Error!The first elements of the Vectors are not equal."); // First element of both input vectors must be equal for Toeplitz.
+ return;
+ }
+ int i, j;
+
+ for(i=0;i<size1*size2;i++) oup[i] = 0; // Initializing the output matrix with zeros.
+
+ for (i = 0; i<size1; i++)
+ {
+ for (j = 0; j<size2; j++)
+ {
+ oup[j*size1] = inp2[j]; // Elements of the second input vector are copied to the first row of the Toeplitx Matrix.
+ }
+ oup[i] = inp1[i]; // Elements of the first input vector are copied to the first column of the Toeplitx Matrix.
+ }
+ for (i = size2+1; i<size1*size2; i++) // Loop to build the rest of the Toeplitz matrix.
+ {
+ if (oup[i] == 0)
+ oup[i] = oup[i-size2-1];
+ }
+}
diff --git a/src/c/matrixOperations/toeplitz/ztoeplitza.c b/src/c/matrixOperations/toeplitz/ztoeplitza.c
new file mode 100644
index 0000000..117f818
--- /dev/null
+++ b/src/c/matrixOperations/toeplitz/ztoeplitza.c
@@ -0,0 +1,36 @@
+#include <stdio.h>
+#include "toeplitz.h"
+#include "doubleComplex.h"
+#include "stdlib.h"
+#include "string.h"
+#include "cat.h"
+
+
+/*Function to build a Toeplitz Matrix for inputs of DoubleComplex datatype*/
+
+
+void ztoeplitza(doubleComplex* inp1,int size1,doubleComplex* inp2,int size2,doubleComplex* oup)
+{
+ if ((zreals(inp1[0])!=zreals(inp2[0]))&&(zimags(inp1[0])!=zimags(inp2[0])))
+ {
+ printf("Error!The first elements of the Vectors are not equal."); // First element of both input vectors must be equal for Toeplitz.
+ return;
+ }
+ int i, j;
+
+ for(i=0;i<size1*size2;i++) oup[i] = 0; // Initializing the output matrix with zeros.
+
+ for (i = 0; i<size1; i++)
+ {
+ for (j = 0; j<size2; j++)
+ {
+ oup[j*size1] = inp2[j]; // Elements of the second input vector are copied to the first row of the Toeplitx Matrix.
+ }
+ oup[i] = inp1[i]; // Elements of the first input vector are copied to the first column of the Toeplitx Matrix.
+ }
+ for (i = size2+1; i<size1*size2; i++) // Loop to build the rest of the Toeplitz matrix.
+ {
+ if (zreals(oup[i]) == 0 && zimags(oup[i]) == 0)
+ oup[i] = oup[i-size2-1];
+ }
+}
diff --git a/src/c/operations/addition/zadds.c b/src/c/operations/addition/zadds.c
index d4a94dc..768faf3 100644
--- a/src/c/operations/addition/zadds.c
+++ b/src/c/operations/addition/zadds.c
@@ -11,6 +11,7 @@
*/
#include "addition.h"
+#include "doubleComplex.h"
doubleComplex zadds(doubleComplex z1, doubleComplex z2) {
return DoubleComplex(zreals(z1) + zreals(z2),
diff --git a/src/c/scilab-arduino/cmd_analog_in_volt/u8cmd_analog_in_volts.c b/src/c/scilab-arduino/cmd_analog_in_volt/u8cmd_analog_in_volts.c
index 7018df2..f961719 100644
--- a/src/c/scilab-arduino/cmd_analog_in_volt/u8cmd_analog_in_volts.c
+++ b/src/c/scilab-arduino/cmd_analog_in_volt/u8cmd_analog_in_volts.c
@@ -15,8 +15,8 @@
float u8cmd_analog_in_volts(uint8 board_no, uint8 pin)
{
- float a;
- a = ((5*(float)analogRead(pin))/1023);
+ float a; //declaration of variable
+ a = ((5*(float)analogRead(pin))/1023); //recieved 10 bit input from analog pin is convert to voltage(0 - 50
return(a);
}
diff --git a/src/c/scilab-arduino/cmd_analog_out_volt/u8cmd_analog_out_volts.c b/src/c/scilab-arduino/cmd_analog_out_volt/u8cmd_analog_out_volts.c
index 2dd82e4..1d76b60 100644
--- a/src/c/scilab-arduino/cmd_analog_out_volt/u8cmd_analog_out_volts.c
+++ b/src/c/scilab-arduino/cmd_analog_out_volt/u8cmd_analog_out_volts.c
@@ -15,8 +15,8 @@
void u8cmd_analog_out_volts(uint8 board_no, uint8 pin, float value)
{
- int a;
- a = ((value*255)/5);
- analogWrite(pin,a);
+ int a; //declaring variable
+ a = ((value*255)/5); //converting given voltage to duty cycle value (0 - 255)
+ analogWrite(pin,a); //passing pin no. and duty cycle value
}
diff --git a/src/c/scilab-arduino/cmd_dcmotor_release/u8cmd_dcmotor_releases.c b/src/c/scilab-arduino/cmd_dcmotor_release/u8cmd_dcmotor_releases.c
index 349bcb1..d56d12d 100644
--- a/src/c/scilab-arduino/cmd_dcmotor_release/u8cmd_dcmotor_releases.c
+++ b/src/c/scilab-arduino/cmd_dcmotor_release/u8cmd_dcmotor_releases.c
@@ -15,15 +15,15 @@
void u8cmd_dcmotor_releases(uint8 board_no, uint8 motor_no)
{
- if (dcm_mode[motor_no] == 3)
+ if (dcm_mode[motor_no] == 3) //for IC accepting analog value
{
- analogWrite(dcm_pin_1[motor_no],0);
+ analogWrite(dcm_pin_1[motor_no],0); //passing LOW to IC pins to stop the motor
analogWrite(dcm_pin_2[motor_no],0);
}
- else
+ else //for IC accepting digital value
{
digitalWrite(dcm_pin_1[motor_no],LOW);
- digitalWrite(dcm_pin_2[motor_no],LOW);
+ digitalWrite(dcm_pin_2[motor_no],LOW); //passing LOW to IC pins to stop the motor
}
}
diff --git a/src/c/scilab-arduino/cmd_i2c_dev/u8cmd_i2c_devs.cpp b/src/c/scilab-arduino/cmd_i2c_dev/u8cmd_i2c_devs.cpp
index adc1a6e..eb9ec10 100644
--- a/src/c/scilab-arduino/cmd_i2c_dev/u8cmd_i2c_devs.cpp
+++ b/src/c/scilab-arduino/cmd_i2c_dev/u8cmd_i2c_devs.cpp
@@ -1,10 +1,23 @@
+/* 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: Yash Pratap Singh Tomar
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+//This function establishes I2C communication between arduino and given device
+
#include "cmd_i2c_dev.h"
#include "Arduino.h"
#include "Wire.h"
-
uint8 u8cmd_i2c_devs(uint8 address)
{
- Wire.begin();
- return((uint8)address);
+ Wire.begin(); //To initiate connection
+ return((uint8)address); //Returns address to create a device object
}
diff --git a/src/c/scilab-arduino/cmd_i2c_read/u8cmd_i2c_reads.cpp b/src/c/scilab-arduino/cmd_i2c_read/u8cmd_i2c_reads.cpp
index 8f02a87..24d36de 100644
--- a/src/c/scilab-arduino/cmd_i2c_read/u8cmd_i2c_reads.cpp
+++ b/src/c/scilab-arduino/cmd_i2c_read/u8cmd_i2c_reads.cpp
@@ -1,3 +1,17 @@
+/* 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: Yash Pratap Singh Tomar
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+//This function reads data from I2C bus.
#include "cmd_i2c_read.h"
#include "Arduino.h"
#include "Wire.h"
diff --git a/src/c/scilab-arduino/cmd_i2c_read_register/u8cmd_i2c_read_registers.cpp b/src/c/scilab-arduino/cmd_i2c_read_register/u8cmd_i2c_read_registers.cpp
index 0a2ec2e..fd07eb6 100644
--- a/src/c/scilab-arduino/cmd_i2c_read_register/u8cmd_i2c_read_registers.cpp
+++ b/src/c/scilab-arduino/cmd_i2c_read_register/u8cmd_i2c_read_registers.cpp
@@ -1,3 +1,17 @@
+/* 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: Yash Pratap Singh Tomar
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+//this function reads data from the device register with given address
#include "cmd_i2c_read_register.h"
#include "Arduino.h"
#include "Wire.h"
diff --git a/src/c/scilab-arduino/cmd_i2c_write/u8cmd_i2c_writes.cpp b/src/c/scilab-arduino/cmd_i2c_write/u8cmd_i2c_writes.cpp
index 0239097..b777225 100644
--- a/src/c/scilab-arduino/cmd_i2c_write/u8cmd_i2c_writes.cpp
+++ b/src/c/scilab-arduino/cmd_i2c_write/u8cmd_i2c_writes.cpp
@@ -1,3 +1,16 @@
+/* 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: Yash Pratap Singh Tomar
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+//This function writes data to the connected device
#include "cmd_i2c_write.h"
#include "Arduino.h"
#include "Wire.h"
diff --git a/src/c/scilab-arduino/cmd_i2c_write_register/u8cmd_i2c_write_registers.cpp b/src/c/scilab-arduino/cmd_i2c_write_register/u8cmd_i2c_write_registers.cpp
index 63cc7c7..9e3c11c 100644
--- a/src/c/scilab-arduino/cmd_i2c_write_register/u8cmd_i2c_write_registers.cpp
+++ b/src/c/scilab-arduino/cmd_i2c_write_register/u8cmd_i2c_write_registers.cpp
@@ -1,3 +1,17 @@
+/* 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: Yash Pratap Singh Tomar
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+//This function writes to the register of the device
#include "cmd_i2c_write_register.h"
#include "Arduino.h"
#include "Wire.h"
diff --git a/src/c/scilab-arduino/default_files/sci2c_arduino.ino b/src/c/scilab-arduino/default_files/sci2c_arduino.ino
index df28950..1d4465b 100644
--- a/src/c/scilab-arduino/default_files/sci2c_arduino.ino
+++ b/src/c/scilab-arduino/default_files/sci2c_arduino.ino
@@ -11,8 +11,8 @@
*/
#include "Arduino.h"
-#include <loop_arduino.h>
-#include <setup_arduino.h>
+#include "loop_arduino.h"
+#include "setup_arduino.h"
void setup()
{
diff --git a/src/c/scilab-arduino/includes/cmd_i2c_dev.h b/src/c/scilab-arduino/includes/cmd_i2c_dev.h
index 861a8e7..382c2b3 100644
--- a/src/c/scilab-arduino/includes/cmd_i2c_dev.h
+++ b/src/c/scilab-arduino/includes/cmd_i2c_dev.h
@@ -1,3 +1,15 @@
+/* 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: Yash Pratap Singh Tomar
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
#ifndef __CMD_I2C_DEV_H__
#define __CMD_I2C_DEV_H__
diff --git a/src/c/scilab-arduino/includes/cmd_i2c_read.h b/src/c/scilab-arduino/includes/cmd_i2c_read.h
index 791bdd3..e33ede3 100644
--- a/src/c/scilab-arduino/includes/cmd_i2c_read.h
+++ b/src/c/scilab-arduino/includes/cmd_i2c_read.h
@@ -1,3 +1,15 @@
+/* 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: Yash Pratap Singh Tomar
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
#ifndef __CMD_I2C_READ_H__
#define __CMD_I2C_READ_H__
diff --git a/src/c/scilab-arduino/includes/cmd_i2c_read_register.h b/src/c/scilab-arduino/includes/cmd_i2c_read_register.h
index ea203ad..50fba93 100644
--- a/src/c/scilab-arduino/includes/cmd_i2c_read_register.h
+++ b/src/c/scilab-arduino/includes/cmd_i2c_read_register.h
@@ -1,3 +1,15 @@
+/* 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: Yash Pratap Singh Tomar
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
#ifndef __CMD_I2C_READ_REGISTER_H__
#define __CMD_I2C_READ_REGISTER_H__
diff --git a/src/c/scilab-arduino/includes/cmd_i2c_write.h b/src/c/scilab-arduino/includes/cmd_i2c_write.h
index 6a57222..128f1af 100644
--- a/src/c/scilab-arduino/includes/cmd_i2c_write.h
+++ b/src/c/scilab-arduino/includes/cmd_i2c_write.h
@@ -1,3 +1,15 @@
+/* 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: Yash Pratap Singh Tomar
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
#ifndef __CMD_I2C_WRITE_H__
#define __CMD_I2C_WRITE_H__
diff --git a/src/c/scilab-arduino/includes/cmd_i2c_write_register.h b/src/c/scilab-arduino/includes/cmd_i2c_write_register.h
index ff1b9ec..7fac4cb 100644
--- a/src/c/scilab-arduino/includes/cmd_i2c_write_register.h
+++ b/src/c/scilab-arduino/includes/cmd_i2c_write_register.h
@@ -1,3 +1,15 @@
+/* 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: Yash Pratap Singh Tomar
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
#ifndef __CMD_I2C_WRITE_REGISTER_H__
#define __CMD_I2C_WRITE_REGISTER_H__
diff --git a/src/c/scilab-arduino/interfaces/int_cmd_i2c_dev.h b/src/c/scilab-arduino/interfaces/int_cmd_i2c_dev.h
index c4d93d7..85f3e3c 100644
--- a/src/c/scilab-arduino/interfaces/int_cmd_i2c_dev.h
+++ b/src/c/scilab-arduino/interfaces/int_cmd_i2c_dev.h
@@ -1,3 +1,15 @@
+/* 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: Yash Pratap Singh Tomar
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
#ifndef __INT_CMD_I2C_DEV_H__
#define __INT_CMD_I2C_DEV_H__
diff --git a/src/c/scilab-arduino/interfaces/int_cmd_i2c_read.h b/src/c/scilab-arduino/interfaces/int_cmd_i2c_read.h
index b0633a0..6ffd7ec 100644
--- a/src/c/scilab-arduino/interfaces/int_cmd_i2c_read.h
+++ b/src/c/scilab-arduino/interfaces/int_cmd_i2c_read.h
@@ -1,3 +1,15 @@
+/* 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: Yash Pratap Singh Tomar
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
#ifndef __INT_CMD_I2C_READ_H__
#define __INT_CMD_I2C_READ_H__
diff --git a/src/c/scilab-arduino/interfaces/int_cmd_i2c_read_register.h b/src/c/scilab-arduino/interfaces/int_cmd_i2c_read_register.h
index 5f4c529..e848b69 100644
--- a/src/c/scilab-arduino/interfaces/int_cmd_i2c_read_register.h
+++ b/src/c/scilab-arduino/interfaces/int_cmd_i2c_read_register.h
@@ -1,3 +1,15 @@
+/* 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: Yash Pratap Singh Tomar
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
#ifndef __INT_CMD_I2C_READ_REGISTER_H__
#define __INT_CMD_I2C_READ_REGISTER_H__
diff --git a/src/c/scilab-arduino/interfaces/int_cmd_i2c_write.h b/src/c/scilab-arduino/interfaces/int_cmd_i2c_write.h
index a7705a8..3a01593 100644
--- a/src/c/scilab-arduino/interfaces/int_cmd_i2c_write.h
+++ b/src/c/scilab-arduino/interfaces/int_cmd_i2c_write.h
@@ -1,3 +1,15 @@
+/* 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: Yash Pratap Singh Tomar
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
#ifndef __INT_CMD_I2C_WRITE_H__
#define __INT_CMD_I2C_WRITE_H__
diff --git a/src/c/scilab-arduino/interfaces/int_cmd_i2c_write_register.h b/src/c/scilab-arduino/interfaces/int_cmd_i2c_write_register.h
index 35c0527..78a3382 100644
--- a/src/c/scilab-arduino/interfaces/int_cmd_i2c_write_register.h
+++ b/src/c/scilab-arduino/interfaces/int_cmd_i2c_write_register.h
@@ -1,3 +1,15 @@
+/* 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: Yash Pratap Singh Tomar
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
#ifndef __INT_CMD_I2C_WRITE_REGISTER_H__
#define __INT_CMD_I2C_WRITE_REGISTER_H__
diff --git a/src/c/signalProcessing/%k/dmodka.c b/src/c/signalProcessing/%k/dmodka.c
index c0630ec..8368cb6 100644
--- a/src/c/signalProcessing/%k/dmodka.c
+++ b/src/c/signalProcessing/%k/dmodka.c
@@ -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: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ */
#include<stdio.h>
#include<math.h>
#include "modk.h"
@@ -10,7 +21,6 @@ double max_calc(double* ptr,int sz)
ptr[0]=-1*ptr[0];
}
mx=(ptr[0]);
- //printf("%lf\n",mx);
for(i=1;i<sz;i++)
{
if(ptr[i]<0)
@@ -47,10 +57,7 @@ void dmodka(double* inp,int size,double* oup)
c[l]=sqrt(inp[l]);
}
- int x=0;
- //double maxi;
- //maxi=max_calc(c,size);
- //printf("%lf",maxi);
+ int x=0;
while(max_calc(c,size)>eps)
{
@@ -88,10 +95,4 @@ void dmodka(double* inp,int size,double* oup)
}
}
-/*
-int main()
-{
- double m[3]={0.1,0.2,0.3};
- dka(m,3);
-}
-*/
+
diff --git a/src/c/signalProcessing/%sn/dmodsns.c b/src/c/signalProcessing/%sn/dmodsns.c
index 06d0a6f..aae16c1 100644
--- a/src/c/signalProcessing/%sn/dmodsns.c
+++ b/src/c/signalProcessing/%sn/dmodsns.c
@@ -82,12 +82,4 @@ double dmodsns(double uu, double emmc)
}
return sn;
}
-/*
-int main()
-{
- double u,k;
- u=4;
- k=0.7;
- sn(u,k);
-}
-*/
+
diff --git a/src/c/signalProcessing/ell1mag/dell1maga.c b/src/c/signalProcessing/ell1mag/dell1maga.c
index 9af0c8e..58ef303 100644
--- a/src/c/signalProcessing/ell1mag/dell1maga.c
+++ b/src/c/signalProcessing/ell1mag/dell1maga.c
@@ -21,7 +21,7 @@ void dell1maga(double eps,double m1,double* z,int size,double* oup )
int i;
for(i=0;i<size;i++)
{
- s[i]=zmodsns(z[i],m1);
+ s[i]=dmodsns(z[i],m1);
}
double un[size];
int j;
diff --git a/src/c/signalProcessing/ell1mag/zell1maga.c b/src/c/signalProcessing/ell1mag/zell1maga.c
index 6e7a6f9..35b4928 100644
--- a/src/c/signalProcessing/ell1mag/zell1maga.c
+++ b/src/c/signalProcessing/ell1mag/zell1maga.c
@@ -14,6 +14,9 @@
#include "modsn.h"
#include "ell1mag.h"
#include "doubleComplex.h"
+#include "multiplication.h"
+#include "addition.h"
+#include "division.h"
void zell1maga(double eps,double m1,doubleComplex* z,int size,double* oup )
{
@@ -31,9 +34,15 @@ void zell1maga(double eps,double m1,doubleComplex* z,int size,double* oup )
}
doubleComplex v;
int k;
+ double ml;
+ ml=eps*eps;
+ doubleComplex tp1,tp2,tp3;
for(k=0;k<size;k++)
{
- v=un[k]/(un[k]+(eps*eps*s[k]*s[k]));
+ tp1=zmuls(s[k],s[k]);
+ tp2=DoubleComplex(ml,0);
+ tp3=DoubleComplex(un[k],0);
+ v=zrdivs(tp3,zadds(tp3,(zmuls(tp2,tp1))));
oup[k]=zreals(v);
}
}
diff --git a/src/c/signalProcessing/ffilt/gffilts.c b/src/c/signalProcessing/ffilt/gffilts.c
index 538daf3..09876d0 100644
--- a/src/c/signalProcessing/ffilt/gffilts.c
+++ b/src/c/signalProcessing/ffilt/gffilts.c
@@ -80,11 +80,4 @@ void gffilts(char* ft,int size,double N,double fc,double fh,double* oup)
oup[id]=1+oup[id];
}
}
-/*
-int main()
-{
- string s;
- int n;
- double fl,fh;
-}
-*/
+
diff --git a/src/c/signalProcessing/fsfirlin/dfsfirlina.c b/src/c/signalProcessing/fsfirlin/dfsfirlina.c
index d2079f4..e44f464 100644
--- a/src/c/signalProcessing/fsfirlin/dfsfirlina.c
+++ b/src/c/signalProcessing/fsfirlin/dfsfirlina.c
@@ -11,11 +11,9 @@
*/
#include<stdio.h>
-
#include<math.h>
#include "sincd.h"
#include "fsfirlin.h"
-//#define PI 3.14159265358979
void dfsfirlina(double* hd,int size,double flag,double* hst)
{
diff --git a/src/c/signalProcessing/sincd/dsincds.c b/src/c/signalProcessing/sincd/dsincds.c
index 1475d8d..c9f2f81 100644
--- a/src/c/signalProcessing/sincd/dsincds.c
+++ b/src/c/signalProcessing/sincd/dsincds.c
@@ -13,7 +13,6 @@
#include<stdio.h>
#include<math.h>
#include "sincd.h"
-//#define PI 3.14159265358979
void dsincds(double n,double flg,double* oup)
{
double npt=4*n;
diff --git a/src/c/signalProcessing/sincd/u8sincds.c b/src/c/signalProcessing/sincd/u8sincds.c
index d03f48a..ff0a2ac 100644
--- a/src/c/signalProcessing/sincd/u8sincds.c
+++ b/src/c/signalProcessing/sincd/u8sincds.c
@@ -13,12 +13,11 @@
#include<stdio.h>
#include<math.h>
#include "sincd.h"
-#define PI 3.14159265358979
void u8sincds(int n,int flg,double* oup)
{
double npt=4*n;
int sz=4*n;
- double pas=PI/npt;
+ double pas=M_PI/npt;
double om[sz+1];
int i;
//om[0]=0;
@@ -69,7 +68,7 @@ void u8sincds(int n,int flg,double* oup)
int a;
for(a=0;a<=4*n;a++)
{
- om[a]=om[a]-(PI/(2*n));
+ om[a]=om[a]-(M_PI/(2*n));
}
int j,k;
for(j=0;j<=4*n;j++)
diff --git a/src/c/signalProcessing/zmodsns.c b/src/c/signalProcessing/zmodsns.c
new file mode 100644
index 0000000..5f35059
--- /dev/null
+++ b/src/c/signalProcessing/zmodsns.c
@@ -0,0 +1,161 @@
+/* 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: Ankit Raj
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+ Reference:- Abramowitz, Milton and Stegun, Irene A
+ Handbook of Mathematical Functions, Dover, 1965
+ Chapter 16 (Sections 16.4, 16.13 and 16.15)
+ Link for FORTRAN code:-http://www.aip.de/groups/soe/local/numres/bookfpdf/f6-11.pdf
+*/
+
+#include<stdio.h>
+#include<math.h>
+#include "modsn.h"
+#include "doubleComplex.h"
+#define CA 0.0003
+
+doubleComplex zmodsns(doubleComplex uu,double emmc)
+{
+ doubleComplex ans;
+ double uur,uui;
+ uur=zreals(uu);
+ uui=zimags(uu);
+ double sr,cr,dr;
+ //Performing Elliptic Function operation for the real values
+ double a1,b1,c1,d1,emc1,u1;
+ double em1[14],en1[14];
+ int i1,ii1,l1,bo1;
+ emc1=1-emmc;
+ u1=uur;
+ if(emc1)
+ {
+ bo1=(emc1<0.0);
+ if(bo1)
+ {
+ d1=1.0-emc1;
+ emc1/=-1.0/d1;
+ u1*=(d1=sqrt(d1));
+ }
+ a1=1.0;
+ dr=1.0;
+ for(i1=1;i1<=13;i1++)
+ {
+ l1=i1;
+ em1[i1]=a1;
+ en1[i1]=(emc1=sqrt(emc1));
+ c1=0.5*(a1+emc1);
+ if(fabs(a1-emc1)<=CA*a1)break;
+ emc1*=a1;
+ a1=c1;
+ }
+ u1*=c1;
+ sr=sin(u1);
+ cr=cos(u1);
+ if(sr)
+ {
+ a1=cr/sr;
+ c1*=a1;
+ for(ii1=l1;ii1>=1;ii1--)
+ {
+ b1=em1[ii1];
+ a1*=c1;
+ c1*=dr;
+ dr=(en1[ii1]+a1)/(b1+a1);
+ a1=c1/b1;
+ }
+ a1=1.0/sqrt(c1*c1+1.0);
+ sr=(sr>=0.0?a1:-a1);
+ cr=c1*(sr);
+ }
+ if(bo1)
+ {
+ a1=dr;
+ dr=cr;
+ cr=a1;
+ sr/=d1;
+ }
+ }
+ else
+ {
+ cr=1.0/cosh(u1);
+ dr=cr;
+ sr=tanh(u1);
+ }
+ ////////////////////////////////////////////////////////////////
+ double si,ci,di;
+ //Performing Elleptic Function operation for the imaginary values
+ double a,b,c,d,emc,u;
+ double em[14],en[14];
+ int i,ii,l,bo;
+ //double s1,c1,d1;
+ emc=emmc;
+ u=uui;
+ if(emc)
+ {
+ bo=(emc<0.0);
+ if(bo)
+ {
+ d=1.0-emc;
+ emc/=-1.0/d;
+ u*=(d=sqrt(d));
+ }
+ a=1.0;
+ di=1.0;
+ for(i=1;i<=13;i++)
+ {
+ l=i;
+ em[i]=a;
+ en[i]=(emc=sqrt(emc));
+ c=0.5*(a+emc);
+ if(fabs(a-emc)<=CA*a)break;
+ emc*=a;
+ a=c;
+ }
+ u*=c;
+ si=sin(u);
+ ci=cos(u);
+ if(si)
+ {
+ a=ci/si;
+ c*=a;
+ for(ii=l;ii>=1;ii--)
+ {
+ b=em[ii];
+ a*=c;
+ c*=di;
+ di=(en[ii]+a)/(b+a);
+ a=c/b;
+ }
+ a=1.0/sqrt(c*c+1.0);
+ si=(si>=0.0?a:-a);
+ ci=c*(si);
+ }
+ if(bo)
+ {
+ a=di;
+ di=ci;
+ ci=a;
+ si/=d;
+ }
+ }
+ else
+ {
+ ci=1.0/cosh(u);
+ di=ci;
+ si=tanh(u);
+ }
+ /////////////////////////////////////////////////////////
+ double delta;
+ delta=ci*ci + emmc*sr*sr*si*si;
+ double snir,snii;
+ snir=(sr*di)/delta;
+ snii=(cr*dr*si*ci)/delta;
+ ans=DoubleComplex(snir,snii);
+ return ans;
+}
diff --git a/src/c/signalProcessing/zpbutt/dzpbutts.c b/src/c/signalProcessing/zpbutt/dzpbutts.c
index 33f22af..7b9fe9b 100644
--- a/src/c/signalProcessing/zpbutt/dzpbutts.c
+++ b/src/c/signalProcessing/zpbutt/dzpbutts.c
@@ -12,6 +12,7 @@
#include<stdio.h>
#include<math.h>
#include "zpbutt.h"
+#include "doubleComplex.h"
#define PI 3.14159265
double dzpbutts(double n,double fl,doubleComplex* out)
{
diff --git a/src/c/specialFunctions/erf/derfa.c b/src/c/specialFunctions/erf/derfa.c
new file mode 100644
index 0000000..972d743
--- /dev/null
+++ b/src/c/specialFunctions/erf/derfa.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 "erf.h"
+
+void derfa(double* inp1, int sizer, int sizec,double* out)
+{
+ for (int i = 0; i < sizer*sizec; i++)
+ {
+ out[i] = erf(inp1[i]);
+ }
+}
+
diff --git a/src/c/specialFunctions/erf/derfs.c b/src/c/specialFunctions/erf/derfs.c
new file mode 100644
index 0000000..22b5d64
--- /dev/null
+++ b/src/c/specialFunctions/erf/derfs.c
@@ -0,0 +1,22 @@
+/* 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 "erf.h"
+
+double derfs(double inp1)
+{
+ return erf(inp1);
+}
+
diff --git a/src/c/specialFunctions/erf/serfa.c b/src/c/specialFunctions/erf/serfa.c
new file mode 100644
index 0000000..0db4a7b
--- /dev/null
+++ b/src/c/specialFunctions/erf/serfa.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 "erf.h"
+
+void serfa(float* inp1, int sizer, int sizec,float* out)
+{
+ for (int i = 0; i < sizer*sizec; i++)
+ {
+ out[i] = erf(inp1[i]);
+ }
+}
+
diff --git a/src/c/specialFunctions/erf/serfs.c b/src/c/specialFunctions/erf/serfs.c
new file mode 100644
index 0000000..66638a1
--- /dev/null
+++ b/src/c/specialFunctions/erf/serfs.c
@@ -0,0 +1,22 @@
+/* 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 "erf.h"
+
+float serfs(float inp1)
+{
+ return erf(inp1);
+}
+
diff --git a/src/c/specialFunctions/erfc/derfca.c b/src/c/specialFunctions/erfc/derfca.c
new file mode 100644
index 0000000..85c92ef
--- /dev/null
+++ b/src/c/specialFunctions/erfc/derfca.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 "erfc.h"
+
+void derfca(double* inp1, int sizer, int sizec, double* out)
+{
+ for (int i = 0; i < sizer*sizec; i++)
+ {
+ out[i] = derfcs(inp1[i]);
+ }
+}
+
diff --git a/src/c/specialFunctions/erfc/derfcs.c b/src/c/specialFunctions/erfc/derfcs.c
new file mode 100644
index 0000000..31c9846
--- /dev/null
+++ b/src/c/specialFunctions/erfc/derfcs.c
@@ -0,0 +1,22 @@
+/* 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 "erfc.h"
+
+double derfcs(double inp1)
+{
+ return (1-erf(inp1));
+}
+
diff --git a/src/c/specialFunctions/erfc/serfca.c b/src/c/specialFunctions/erfc/serfca.c
new file mode 100644
index 0000000..469c5a1
--- /dev/null
+++ b/src/c/specialFunctions/erfc/serfca.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 "erfc.h"
+
+void serfca(float* inp1, int sizer, int sizec, float* out)
+{
+ for (int i = 0; i < sizer*sizec; i++)
+ {
+ out[i] = serfcs(inp1[i]);
+ }
+}
+
diff --git a/src/c/specialFunctions/erfc/serfcs.c b/src/c/specialFunctions/erfc/serfcs.c
new file mode 100644
index 0000000..3f93a80
--- /dev/null
+++ b/src/c/specialFunctions/erfc/serfcs.c
@@ -0,0 +1,22 @@
+/* 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 "erfc.h"
+
+float serfcs(float inp1)
+{
+ return (1-erf(inp1));
+}
+
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/erf.h b/src/c/specialFunctions/includes/erf.h
new file mode 100644
index 0000000..86bb15d
--- /dev/null
+++ b/src/c/specialFunctions/includes/erf.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 __ERF_H__
+#define __ERF_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 derfs(double inp1);
+float serfs(float inp1);
+void derfa(double* inp1, int sizer, int sizec,double* out);
+void serfa(float* inp1, int sizer, int sizec,float* out);
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__ERF_H__*/
diff --git a/src/c/specialFunctions/includes/erfc.h b/src/c/specialFunctions/includes/erfc.h
new file mode 100644
index 0000000..509e34e
--- /dev/null
+++ b/src/c/specialFunctions/includes/erfc.h
@@ -0,0 +1,36 @@
+ /* 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__
+#define __ERFC_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 derfcs(double inp1);
+void derfca(double* inp1, int sizer, int sizec,double* out);
+float serfcs(float inp1);
+void serfca(float* inp1, int sizer, int sizec, float* out);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__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_erf.h b/src/c/specialFunctions/interfaces/int_erf.h
new file mode 100644
index 0000000..87f11f9
--- /dev/null
+++ b/src/c/specialFunctions/interfaces/int_erf.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_ERF_H__
+#define __INT_ERF_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+#define d0erfd0(in1) derfs(in1)
+#define s0erfs0(in1) serfs(in1)
+#define d2erfd2(in1,size,out) derfa(in1,size[0],size[1],out)
+#define s2erfs2(in1,size,out) serfa(in1,size[0],size[1],out)
+
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_ERF_H__*/
diff --git a/src/c/specialFunctions/interfaces/int_erfc.h b/src/c/specialFunctions/interfaces/int_erfc.h
new file mode 100644
index 0000000..64ae0fa
--- /dev/null
+++ b/src/c/specialFunctions/interfaces/int_erfc.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_ERFC_H__
+#define __INT_ERFC_H__
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+#define d0erfcd0(in1) derfcs(in1)
+#define s0erfcs0(in1) serfcs(in1)
+#define d2erfcd2(in1,size,out) derfca(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_ERFC_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/src/c/statisticsFunctions/includes/mad.h b/src/c/statisticsFunctions/includes/mad.h
new file mode 100644
index 0000000..29032de
--- /dev/null
+++ b/src/c/statisticsFunctions/includes/mad.h
@@ -0,0 +1,42 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#ifndef __MAD_H__
+#define __MAD_H__
+
+#include "types.h"
+#include "doubleComplex.h"
+#include "uint16.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+double dmada(double* , int );
+void dmadrowa(double*, int, int, double*);
+void dmadcola(double*, int, int, double*);
+
+float smada(float* , int );
+void smadrowa(float*, int, int, float*);
+void smadcola(float*, int, int, float*);
+
+doubleComplex zmada(doubleComplex* , int );
+void zmadrowa(doubleComplex*, int, int, doubleComplex*);
+void zmadcola(doubleComplex*, int, int, doubleComplex*);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__MAD_H__*/
diff --git a/src/c/statisticsFunctions/includes/median.h b/src/c/statisticsFunctions/includes/median.h
new file mode 100644
index 0000000..accb5df
--- /dev/null
+++ b/src/c/statisticsFunctions/includes/median.h
@@ -0,0 +1,46 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#ifndef __MEDIAN_H__
+#define __MEDIAN_H__
+
+#include "types.h"
+#include "doubleComplex.h"
+#include "uint16.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+double dmediana(double* , int );
+void dmedianrowa(double*, int, int, double*);
+void dmediancola(double*, int, int, double*);
+
+float smediana(float* , int );
+void smedianrowa(float*, int, int, float*);
+void smediancola(float*, int, int, float*);
+
+uint16 u16mediana(uint16* , int );
+void u16medianrowa(uint16*, int, int, uint16*);
+void u16mediancola(uint16*, int, int, uint16*);
+
+doubleComplex zmediana(doubleComplex* , int );
+void zmedianrowa(doubleComplex*, int, int, doubleComplex*);
+void zmediancola(doubleComplex*, int, int, doubleComplex*);
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__MATRIX_H__*/
diff --git a/src/c/statisticsFunctions/interfaces/int_mad.h b/src/c/statisticsFunctions/interfaces/int_mad.h
new file mode 100644
index 0000000..956323d
--- /dev/null
+++ b/src/c/statisticsFunctions/interfaces/int_mad.h
@@ -0,0 +1,35 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#ifndef __INT_MAD_H__
+#define __INT_MAD_H__
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define d2madd0(in1, size) dmada(in1, size[0]* size[1])
+#define d2g2madd2(in1, size1, in2, size2, out) (in2[0]== 'r') ? dmadrowa(in1, size1[0], size1[1], out) :dmadcola(in1, size1[0], size1[1], out)
+
+#define s2mads0(in1, size) smada(in1, size[0]* size[1])
+#define s2g2mads2(in1, size1, in2, size2, out) (in2[0]== 'r') ? smadrowa(in1, size1[0], size1[1], out) :smadcola(in1, size1[0], size1[1], out)
+
+#define z2madz0(in1, size) zmada(in1, size[0]* size[1])
+#define z2g2madz2(in1, size1, in2, size2, out) (in2[0]== 'r') ? zmadrowa(in1, size1[0], size1[1], out) :zmadcola(in1, size1[0], size1[1], out)
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_MAD_H__*/
diff --git a/src/c/statisticsFunctions/interfaces/int_median.h b/src/c/statisticsFunctions/interfaces/int_median.h
new file mode 100644
index 0000000..2a21987
--- /dev/null
+++ b/src/c/statisticsFunctions/interfaces/int_median.h
@@ -0,0 +1,57 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+#ifndef __INT_MEDIAN_H__
+#define __INT_MEDIAN_H__
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define d2mediand0(in1, size) dmediana(in1, size[0]* size[1])
+#define d2g2mediand2(in1, size1, in2, size2, out) (in2[0]== 'r') ? dmedianrowa(in1, size1[0], size1[1], out) :dmediancola(in1, size1[0], size1[1], out)
+
+#define s2medians0(in1, size) smediana(in1, size[0]* size[1])
+#define s2g2medians2(in1, size1, in2, size2, out) (in2[0]== 'r') ? smedianrowa(in1, size1[0], size1[1], out) :smediancola(in1, size1[0], size1[1], out)
+
+#define u162medianu160(in1, size) u16mediana(in1, size[0]* size[1])
+#define u162g2medianu162(in1, size1, in2, size2, out) (in2[0]== 'r') ? u16medianrowa(in1, size1[0], size1[1], out) :u16mediancola(in1, size1[0], size1[1], out)
+
+#define z2medianz0(in1, size) zmediana(in1, size[0]* size[1])
+#define z2g2medianz2(in1, size1, in2, size2, out) (in2[0]== 'r') ? zmedianrowa(in1, size1[0], size1[1], out) :zmediancola(in1, size1[0], size1[1], out)
+
+
+#define s2d0d0matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
+#define s2s0s0matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
+//#define s2u160u160matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
+//#define s2u80u80matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
+
+#define u162d0d0matrixu162(in1, size, in2, in3, out ) u16matrixa(in1, size[0], size[1], in2, in3, out)
+#define u162s0s0matrixu162(in1, size, in2, in3, out ) u16matrixa(in1, size[0], size[1], in2, in3, out)
+//#define s2u160u160matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
+//#define s2u80u80matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
+
+#define z2d0d0matrixz2(in1, size, in2, in3, out ) zmatrixa(in1, size[0], size[1], in2, in3, out)
+#define z2s0s0matrixz2(in1, size, in2, in3, out ) zmatrixa(in1, size[0], size[1], in2, in3, out)
+//#define s2u160u160matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
+//#define s2u80u80matrixs2(in1, size, in2, in3, out ) smatrixa(in1, size[0], size[1], in2, in3, out)
+
+
+
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+#endif /*__INT_MATRIX_H__*/
diff --git a/src/c/statisticsFunctions/mad/dmada.c b/src/c/statisticsFunctions/mad/dmada.c
new file mode 100644
index 0000000..907f78a
--- /dev/null
+++ b/src/c/statisticsFunctions/mad/dmada.c
@@ -0,0 +1,38 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "mad.h"
+#include "types.h"
+#include "uint16.h"
+#include "mean.h"
+#include "addition.h"
+#include "abs.h"
+
+double dmada(double *in, int size)
+{
+ double fin = 0; double mean;
+
+ mean= dmeana(in, size);
+
+ for(int i=0; i< size; i++)
+ {
+
+ fin = dadds(fin, dabss(mean-in[i]));
+
+ }
+
+fin= fin/size;
+
+
+ return fin;
+}
diff --git a/src/c/statisticsFunctions/mad/dmadcola.c b/src/c/statisticsFunctions/mad/dmadcola.c
new file mode 100644
index 0000000..381f85c
--- /dev/null
+++ b/src/c/statisticsFunctions/mad/dmadcola.c
@@ -0,0 +1,36 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "mad.h"
+#include "types.h"
+#include "uint16.h"
+#include "mean.h"
+#include "addition.h"
+#include "abs.h"
+
+void dmadcola(double *in, int row, int col, double* out)
+{
+ double inter[col];
+
+
+for(int i=0; i< row; i++)
+ {
+ for(int j=0 ; j< col; j++)
+ {
+ inter[j]= in[i+ (j*row)];
+
+ }
+ out[i]= dmada( inter, col);
+
+ }
+}
diff --git a/src/c/statisticsFunctions/mad/dmadrowa.c b/src/c/statisticsFunctions/mad/dmadrowa.c
new file mode 100644
index 0000000..2b47ba0
--- /dev/null
+++ b/src/c/statisticsFunctions/mad/dmadrowa.c
@@ -0,0 +1,36 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "mad.h"
+#include "types.h"
+#include "uint16.h"
+#include "mean.h"
+#include "addition.h"
+#include "abs.h"
+
+void dmadrowa(double *in, int row, int col, double* out)
+{
+ double inter[row];
+
+for(int i=0; i< col; i++)
+ {
+ for(int j=0 ; j< row; j++)
+ {
+ inter[j]= in[j+ (i*row)];
+
+ }
+ out[i]= dmada( inter, row);
+
+ }
+
+}
diff --git a/src/c/statisticsFunctions/mad/smada.c b/src/c/statisticsFunctions/mad/smada.c
new file mode 100644
index 0000000..241e337
--- /dev/null
+++ b/src/c/statisticsFunctions/mad/smada.c
@@ -0,0 +1,38 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "mad.h"
+#include "types.h"
+#include "uint16.h"
+#include "mean.h"
+#include "addition.h"
+#include "abs.h"
+
+float smada(float *in, int size)
+{
+ float fin = 0; float mean;
+
+ mean= smeana(in, size);
+
+ for(int i=0; i< size; i++)
+ {
+
+ fin = sadds(fin, sabss(mean-in[i]));
+
+ }
+
+fin= fin/size;
+
+
+ return fin;
+}
diff --git a/src/c/statisticsFunctions/mad/smadcola.c b/src/c/statisticsFunctions/mad/smadcola.c
new file mode 100644
index 0000000..c6f5e75
--- /dev/null
+++ b/src/c/statisticsFunctions/mad/smadcola.c
@@ -0,0 +1,36 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "mad.h"
+#include "types.h"
+#include "uint16.h"
+#include "mean.h"
+#include "addition.h"
+#include "abs.h"
+
+void smadcola(float* in, int row, int col, float* out)
+{
+ float inter[col];
+
+
+for(int i=0; i< row; i++)
+ {
+ for(int j=0 ; j< col; j++)
+ {
+ inter[j]= in[i+ (j*row)];
+
+ }
+ out[i]= smada( inter, col);
+
+ }
+}
diff --git a/src/c/statisticsFunctions/mad/smadrowa.c b/src/c/statisticsFunctions/mad/smadrowa.c
new file mode 100644
index 0000000..3fbd917
--- /dev/null
+++ b/src/c/statisticsFunctions/mad/smadrowa.c
@@ -0,0 +1,36 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "mad.h"
+#include "types.h"
+#include "uint16.h"
+#include "mean.h"
+#include "addition.h"
+#include "abs.h"
+
+void smadrowa(float *in, int row, int col, float* out)
+{
+ float inter[row];
+
+for(int i=0; i< col; i++)
+ {
+ for(int j=0 ; j< row; j++)
+ {
+ inter[j]= in[j+ (i*row)];
+
+ }
+ out[i]= smada( inter, row);
+
+ }
+
+}
diff --git a/src/c/statisticsFunctions/mad/zmada.c b/src/c/statisticsFunctions/mad/zmada.c
new file mode 100644
index 0000000..9531e3b
--- /dev/null
+++ b/src/c/statisticsFunctions/mad/zmada.c
@@ -0,0 +1,40 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "mad.h"
+#include "types.h"
+#include "doubleComplex.h"
+#include "mean.h"
+#include "addition.h"
+#include "abs.h"
+#include "subtraction.h"
+#include "division.h"
+
+doubleComplex zmada(doubleComplex *in, int size)
+{
+ doubleComplex fin = DoubleComplex(0,0); doubleComplex mean;
+
+ mean= zmeana(in, size);
+
+ for(int i=0; i< size; i++)
+ {
+
+ fin = zadds(fin, zabss(zdiffs(mean,in[i])));
+
+ }
+
+fin= zrdivs(fin,size);
+
+
+ return fin;
+}
diff --git a/src/c/statisticsFunctions/mad/zmadcola.c b/src/c/statisticsFunctions/mad/zmadcola.c
new file mode 100644
index 0000000..a70841b
--- /dev/null
+++ b/src/c/statisticsFunctions/mad/zmadcola.c
@@ -0,0 +1,36 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "mad.h"
+#include "types.h"
+#include "doubleComplex.h"
+#include "mean.h"
+#include "addition.h"
+#include "abs.h"
+
+void zmadcola(doubleComplex* in, int row, int col, doubleComplex* out)
+{
+ doubleComplex inter[col];
+
+
+for(int i=0; i< row; i++)
+ {
+ for(int j=0 ; j< col; j++)
+ {
+ inter[j]= in[i+ (j*row)];
+
+ }
+ out[i]= zmada( inter, col);
+
+ }
+}
diff --git a/src/c/statisticsFunctions/mad/zmadrowa.c b/src/c/statisticsFunctions/mad/zmadrowa.c
new file mode 100644
index 0000000..c279322
--- /dev/null
+++ b/src/c/statisticsFunctions/mad/zmadrowa.c
@@ -0,0 +1,36 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "mad.h"
+#include "types.h"
+#include "doubleComplex.h"
+#include "mean.h"
+#include "addition.h"
+#include "abs.h"
+
+void zmadrowa(doubleComplex* in, int row, int col, doubleComplex* out)
+{
+ doubleComplex inter[row];
+
+for(int i=0; i< col; i++)
+ {
+ for(int j=0 ; j< row; j++)
+ {
+ inter[j]= in[j+ (i*row)];
+
+ }
+ out[i]= zmada( inter, row);
+
+ }
+
+}
diff --git a/src/c/statisticsFunctions/median/dmediana.c b/src/c/statisticsFunctions/median/dmediana.c
new file mode 100644
index 0000000..cb2463c
--- /dev/null
+++ b/src/c/statisticsFunctions/median/dmediana.c
@@ -0,0 +1,58 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "median.h"
+#include "types.h"
+#include "uint16.h"
+
+double dmediana(double *in, int size)
+{
+ double a; double fin;
+
+
+ for (int i = 0; i < size; ++i)
+
+ {
+
+ for (int j = i + 1; j < size; ++j)
+
+ {
+
+ if (in[i] > in[j])
+
+ {
+
+ a = in[i];
+
+ in[i] = in[j];
+
+ in[j] = a;
+
+ }
+
+ }
+
+ }
+
+
+ if(size%2 ==0)
+ {
+ fin= (in[size/2]+ in[(size/2)-1])/2;
+ }
+ else
+ {
+ fin= in[(size-1)/2];
+ }
+
+ return fin;
+}
diff --git a/src/c/statisticsFunctions/median/dmediancola.c b/src/c/statisticsFunctions/median/dmediancola.c
new file mode 100644
index 0000000..b3ff4fb
--- /dev/null
+++ b/src/c/statisticsFunctions/median/dmediancola.c
@@ -0,0 +1,35 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "median.h"
+#include "types.h"
+#include "uint16.h"
+
+void dmediancola(double *in, int row, int col, double* out)
+{
+ double inter[col];
+
+
+for(int i=0; i< row; i++)
+ {
+ for(int j=0 ; j< col; j++)
+ {
+ inter[j]= in[i+ (j*row)];
+
+ }
+ out[i]= dmediana( inter, col);
+
+ }
+
+
+}
diff --git a/src/c/statisticsFunctions/median/dmedianrowa.c b/src/c/statisticsFunctions/median/dmedianrowa.c
new file mode 100644
index 0000000..4b5879c
--- /dev/null
+++ b/src/c/statisticsFunctions/median/dmedianrowa.c
@@ -0,0 +1,36 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "median.h"
+#include "types.h"
+#include "uint16.h"
+
+void dmedianrowa(double *in, int row, int col, double* out)
+{
+ double inter[row];
+
+
+
+for(int i=0; i< col; i++)
+ {
+ for(int j=0 ; j< row; j++)
+ {
+ inter[j]= in[j+ (i*row)];
+
+ }
+ out[i]= dmediana( inter, row);
+
+ }
+
+
+}
diff --git a/src/c/statisticsFunctions/median/smediana.c b/src/c/statisticsFunctions/median/smediana.c
new file mode 100644
index 0000000..9e86b77
--- /dev/null
+++ b/src/c/statisticsFunctions/median/smediana.c
@@ -0,0 +1,57 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "median.h"
+#include "types.h"
+#include "uint16.h"
+
+float smediana(float *in, int size)
+{
+ float a; float fin;
+
+
+ for (int i = 0; i < size; ++i)
+
+ {
+
+ for (int j = i + 1; j < size; ++j)
+
+ {
+
+ if (in[i] > in[j])
+
+ {
+
+ a = in[i];
+
+ in[i] = in[j];
+
+ in[j] = a;
+
+ }
+
+ }
+
+ }
+
+ if(size%2 ==0)
+ {
+ fin= (in[size/2]+ in[(size/2)-1])/2;
+ }
+ else
+ {
+ fin= in[(size-1)/2];
+ }
+
+ return fin;
+}
diff --git a/src/c/statisticsFunctions/median/smediancola.c b/src/c/statisticsFunctions/median/smediancola.c
new file mode 100644
index 0000000..2fc4eaf
--- /dev/null
+++ b/src/c/statisticsFunctions/median/smediancola.c
@@ -0,0 +1,35 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "median.h"
+#include "types.h"
+#include "uint16.h"
+
+void smediancola(float *in, int row, int col, float* out)
+{
+ float inter[col];
+
+
+for(int i=0; i< row; i++)
+ {
+ for(int j=0 ; j< col; j++)
+ {
+ inter[j]= in[i+ (j*row)];
+
+ }
+ out[i]= smediana( inter, col);
+
+ }
+
+
+}
diff --git a/src/c/statisticsFunctions/median/smedianrowa.c b/src/c/statisticsFunctions/median/smedianrowa.c
new file mode 100644
index 0000000..aab5938
--- /dev/null
+++ b/src/c/statisticsFunctions/median/smedianrowa.c
@@ -0,0 +1,36 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "median.h"
+#include "types.h"
+#include "uint16.h"
+
+void smedianrowa(float *in, int row, int col, float* out)
+{
+ float inter[row];
+
+
+
+for(int i=0; i< col; i++)
+ {
+ for(int j=0 ; j< row; j++)
+ {
+ inter[j]= in[j+ (i*row)];
+
+ }
+ out[i]= smediana( inter, row);
+
+ }
+
+
+}
diff --git a/src/c/statisticsFunctions/median/u16mediana.c b/src/c/statisticsFunctions/median/u16mediana.c
new file mode 100644
index 0000000..b45c530
--- /dev/null
+++ b/src/c/statisticsFunctions/median/u16mediana.c
@@ -0,0 +1,57 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "median.h"
+#include "types.h"
+#include "uint16.h"
+
+uint16 u16mediana(uint16 *in, int size)
+{
+ uint16 a; uint16 fin;
+
+
+ for (int i = 0; i < size; ++i)
+
+ {
+
+ for (int j = i + 1; j < size; ++j)
+
+ {
+
+ if (in[i] > in[j])
+
+ {
+
+ a = in[i];
+
+ in[i] = in[j];
+
+ in[j] = a;
+
+ }
+
+ }
+
+ }
+
+ if(size%2 ==0)
+ {
+ fin= (in[size/2]+ in[(size/2)-1])/2;
+ }
+ else
+ {
+ fin= in[(size-1)/2];
+ }
+
+ return fin;
+}
diff --git a/src/c/statisticsFunctions/median/u16mediancola.c b/src/c/statisticsFunctions/median/u16mediancola.c
new file mode 100644
index 0000000..77952a3
--- /dev/null
+++ b/src/c/statisticsFunctions/median/u16mediancola.c
@@ -0,0 +1,35 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "median.h"
+#include "types.h"
+#include "uint16.h"
+
+void u16mediancola(uint16 *in, int row, int col, uint16* out)
+{
+ uint16 inter[col];
+
+
+for(int i=0; i< row; i++)
+ {
+ for(int j=0 ; j< col; j++)
+ {
+ inter[j]= in[i+ (j*row)];
+
+ }
+ out[i]= u16mediana( inter, col);
+
+ }
+
+
+}
diff --git a/src/c/statisticsFunctions/median/u16medianrowa.c b/src/c/statisticsFunctions/median/u16medianrowa.c
new file mode 100644
index 0000000..8e5b98e
--- /dev/null
+++ b/src/c/statisticsFunctions/median/u16medianrowa.c
@@ -0,0 +1,36 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "median.h"
+#include "types.h"
+#include "uint16.h"
+
+void u16medianrowa(uint16 *in, int row, int col, uint16* out)
+{
+ uint16 inter[row];
+
+
+
+for(int i=0; i< col; i++)
+ {
+ for(int j=0 ; j< row; j++)
+ {
+ inter[j]= in[j+ (i*row)];
+
+ }
+ out[i]= u16mediana( inter, row);
+
+ }
+
+
+}
diff --git a/src/c/statisticsFunctions/median/zmediana.c b/src/c/statisticsFunctions/median/zmediana.c
new file mode 100644
index 0000000..32726e7
--- /dev/null
+++ b/src/c/statisticsFunctions/median/zmediana.c
@@ -0,0 +1,64 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "median.h"
+#include "types.h"
+#include "uint16.h"
+#include "doubleComplex.h"
+#include "addition.h"
+#include "division.h"
+#include "abs.h"
+
+doubleComplex zmediana(doubleComplex *in, int size)
+{
+ doubleComplex a; doubleComplex fin; doubleComplex middle;
+
+
+ for (int i = 0; i < size; ++i)
+
+ {
+
+ for (int j = i + 1; j < size; ++j)
+
+ {
+
+ if (zabss(in[i]) > zabss(in[j]))
+
+ {
+
+ a = in[i];
+
+ in[i] = in[j];
+
+ in[j] = a;
+
+ }
+
+ }
+
+ }
+
+
+
+ if(size%2 ==0)
+ {
+ middle= zadds(in[size/2], in[(size/2)-1]);
+ fin= zrdivs(middle, DoubleComplex(2,0));
+ }
+ else
+ {
+ fin= in[(size-1)/2];
+ }
+
+ return fin;
+}
diff --git a/src/c/statisticsFunctions/median/zmediancola.c b/src/c/statisticsFunctions/median/zmediancola.c
new file mode 100644
index 0000000..d709d98
--- /dev/null
+++ b/src/c/statisticsFunctions/median/zmediancola.c
@@ -0,0 +1,36 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "median.h"
+#include "types.h"
+#include "uint16.h"
+#include "doubleComplex.h"
+
+void zmediancola(doubleComplex *in, int row, int col, doubleComplex * out)
+{
+ doubleComplex inter[col];
+
+
+for(int i=0; i< row; i++)
+ {
+ for(int j=0 ; j< col; j++)
+ {
+ inter[j]= in[i+ (j*row)];
+
+ }
+ out[i]= zmediana( inter, col);
+
+ }
+
+
+}
diff --git a/src/c/statisticsFunctions/median/zmedianrowa.c b/src/c/statisticsFunctions/median/zmedianrowa.c
new file mode 100644
index 0000000..ab2e0d4
--- /dev/null
+++ b/src/c/statisticsFunctions/median/zmedianrowa.c
@@ -0,0 +1,37 @@
+/* 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: Abhinav Dronamraju
+ Organization: FOSSEE, IIT Bombay
+ Email: toolbox@scilab.in
+*/
+
+
+#include "median.h"
+#include "types.h"
+#include "uint16.h"
+#include "doubleComplex.h"
+
+void zmedianrowa(doubleComplex *in, int row, int col, doubleComplex* out)
+{
+ doubleComplex inter[row];
+
+
+
+for(int i=0; i< col; i++)
+ {
+ for(int j=0 ; j< row; j++)
+ {
+ inter[j]= in[j+ (i*row)];
+
+ }
+ out[i]= zmediana( inter, row);
+
+ }
+
+
+}
diff --git a/src/c/string/ascii/gasciia.c b/src/c/string/ascii/gasciia.c
index ec11d6e..5fe95e0 100644
--- a/src/c/string/ascii/gasciia.c
+++ b/src/c/string/ascii/gasciia.c
@@ -14,12 +14,12 @@
into its ascii equivalent.
*/
#include "ascii.h"
-void gasciia(char *str,int size,int* oup)
+void gasciia(char *str,int size,uint8* oup)
{
int i;
for(i=0;i<size;i++)
{
- *(oup+i)=(int)str[i];
+ *(oup+i)=str[i];
}
}
diff --git a/src/c/string/disp/zdispa.c b/src/c/string/disp/zdispa.c
index bc71de4..94b24e9 100644
--- a/src/c/string/disp/zdispa.c
+++ b/src/c/string/disp/zdispa.c
@@ -16,7 +16,7 @@ double zdispa (doubleComplex* in, int rows, int columns){
int i = 0,j = 0;
for (i = 0; i < rows; ++i) {
- for (j=0;j<columns;j++) printf(" %1.20lf + %1.20lfi " ,zreals(in[i+j*rows]) ,zimags(in[i+j*rows]));
+ for (j=0;j<columns;j++) printf(" %e + %ei " ,zreals(in[i+j*rows]) ,zimags(in[i+j*rows]));
printf("\n");
}
return 0;
diff --git a/src/c/string/disp/zdisps.c b/src/c/string/disp/zdisps.c
index c4ec137..4a040cd 100644
--- a/src/c/string/disp/zdisps.c
+++ b/src/c/string/disp/zdisps.c
@@ -14,6 +14,6 @@
double zdisps (doubleComplex in) {
- printf(" %1.20f + %1.20fi \n" ,zreals(in) ,zimags(in));
+ printf(" %e + %ei \n" ,zreals(in) ,zimags(in));
return 0;
}
diff --git a/src/c/string/includes/ascii.h b/src/c/string/includes/ascii.h
index fcf969d..39aeb83 100644
--- a/src/c/string/includes/ascii.h
+++ b/src/c/string/includes/ascii.h
@@ -17,7 +17,7 @@
extern "C" {
#endif
-void gasciia(char* str,int size,int* oup);
+void gasciia(char* str,int size,uint8* oup);
void dasciia(double* inp,int size,char* oup);
#ifdef __cplusplus
diff --git a/src/c/string/includes/disp.h b/src/c/string/includes/disp.h
index 88764f2..7b46390 100644
--- a/src/c/string/includes/disp.h
+++ b/src/c/string/includes/disp.h
@@ -125,6 +125,7 @@ EXTERN_STRING double ddisph (double *in, int rows, int cols, int levels);
EXTERN_STRING double g2dispd0(char *array,int* tmparraysize);
+
#ifdef __cplusplus
} /* extern "C" */
#endif
diff --git a/src/c/string/interfaces/int_disp.h b/src/c/string/interfaces/int_disp.h
index 3bb7852..2610332 100644
--- a/src/c/string/interfaces/int_disp.h
+++ b/src/c/string/interfaces/int_disp.h
@@ -51,7 +51,9 @@
#define d3disp(in,size) ddisph(in,size[0],size[1],size[2])
-#define g2disp(in, size) printf("%s\n",in)
+#define g2disp(in, size) printf("%s\n", in)
+
+#define g0disp(in) printf("%c\n", in)
#endif /* __INT_DISP_H__ */
diff --git a/src/c/string/strcspn/gstrcspna.c b/src/c/string/strcspn/gstrcspna.c
index 4dcdcdf..91de8af 100644
--- a/src/c/string/strcspn/gstrcspna.c
+++ b/src/c/string/strcspn/gstrcspna.c
@@ -14,37 +14,28 @@
#include "strcspn.h"
uint8 gstrcspna(char *str1,int size1,char *str2,int size2)
{
- int ind,i,j;;
-
- for(i=0;i<=size1;i++)
+
+ uint8 ind=size1+1;
+ int l,m;
+ for(m=0;m<size2;m++)
{
- for(j=0;j<=size2;j++)
- {
- if(str2[j]==str1[i])
+ int tp;
+ for(l=0;l<size1;l++)
{
- ind=j;
- break;
+ if(str2[m]==str1[l])
+ {
+ tp=l;
+ if(ind>tp)
+ {
+ ind=tp;
+ }
+ }
}
- }
}
- return (ind+1);
-}
-/*int main()
-{
- int n1,n2;
- char inp1[100000],inp2[100000];
- printf("Enter the length of the first string");
- scanf("%d",&n1);
- for(int i=0;i<=(n1+1);i++)
- {
- scanf("%c",&inp1[i]);
- }
- printf("Enter the length of the second string");
- scanf("%d",&n2 );
- for(int j=0;j<=(n2+1);j++)
+ if(ind==size1+1)
{
- scanf("%c",&inp2[j]);
+ ind=size1;
}
- strcspnfn(inp1,n1+1,inp2,n2+1);
+ return ind;
}
-*/
+
diff --git a/src/c/type/doubleComplex.h b/src/c/type/doubleComplex.h
index 4be0d7d..15bc268 100644
--- a/src/c/type/doubleComplex.h
+++ b/src/c/type/doubleComplex.h
@@ -45,6 +45,21 @@ typedef struct double_complex doubleComplex;
/*
** }
*/
+#elif defined(ARDUINO)
+/*
+** Hand made Double Complex definition
+** {
+*/
+struct double_complex
+{
+ double real;
+ double imag;
+};
+
+typedef struct double_complex doubleComplex;
+/*
+** }
+*/
#else
/*
** Standard C99 Complex
@@ -57,7 +72,6 @@ typedef double complex doubleComplex;
** }
*/
#endif
-
#ifdef __cplusplus
extern "C" {
#endif
diff --git a/src/c/type/floatComplex.h b/src/c/type/floatComplex.h
index fe35ca4..ba725c9 100644
--- a/src/c/type/floatComplex.h
+++ b/src/c/type/floatComplex.h
@@ -44,6 +44,21 @@ struct float_complex
typedef struct float_complex floatComplex;
/*
** }
+*/
+#elif defined(ARDUINO)
+/*
+** Hand made Float Complex definition
+** {
+*/
+struct float_complex
+{
+ float real;
+ float imag;
+};
+
+typedef struct float_complex floatComplex;
+/*
+** }
*/
#else
/*
diff --git a/src/c/type/types.h b/src/c/type/types.h
index a76bf30..ee5c899 100644
--- a/src/c/type/types.h
+++ b/src/c/type/types.h
@@ -4,7 +4,7 @@
/*****************************************************************************/
/* TYPE DEFINITIONS */
/*****************************************************************************/
-typedef unsigned char boolean;
+/*typedef unsigned char boolean;*/
typedef unsigned char uint8;
typedef unsigned short uint16;
diff --git a/src/python/serverWP.py b/src/python/serverWP.py
new file mode 100755
index 0000000..c41c25f
--- /dev/null
+++ b/src/python/serverWP.py
@@ -0,0 +1,203 @@
+import wiringpi as wp
+import socket
+import subprocess as sp
+import logging
+import traceback
+import sys
+import RPi.GPIO as GPIO
+
+logging.basicConfig(filename='log.txt',level=logging.DEBUG)
+logger=logging.getLogger(__name__)
+pinNum=0
+#wp.wiringPiSetup()
+GPIO.setmode(GPIO.BCM)
+
+commands={
+'cls':'s.close()\n\ta="Connection Closed"\n\tgo=0',
+'i2c':'if sys.version_info<(3,0):\n\t\ta=sp.check_output(inputList[0].split())\n\telse:\n\t\ta=sp.run(inputList[0].split(),stdout=sp.PIPE).stdout.decode("utf-8")',
+'anR':'a=wp.analogRead(int(inputList[0]))',
+'anW':'a=wp.analogWrite(int(inputList[0]),int(inputList[1]))',
+'bRv':'a=wp.piBoardRev()',
+'BtR':'a=wp.digitalReadByte()',
+'BtW':'a=wp.digitalWriteByte(int(inputList[0]))',
+'CR1':'a=wp.wiringPiI2CRead(int(inputList[0]))',
+'CR2':'a=wp.wiringPiI2CReadReg8(int(inputList[0]),int(inputList[1]))',
+'CR3':'a=wp.wiringPiI2CReadReg16(int(inputList[0]),int(inputList[1]))',
+'CSe':'a=wp.wiringPiI2CSetup(int(inputList[0]))',
+'CSI':'a=wp.wiringPiI2CSetupInterface(inputList[0],int(inputList[1]))',
+'CW1':'a=wp.wiringPiI2CWrite(int(inputList[0]),int(inputList[1]))',
+'CW2':'a=wp.wiringPiI2CWriteReg8(int(inputList[0]),int(inputList[1]),int(inputList[2]))',
+'CW3':'a=wp.wiringPiI2CWriteReg16(int(inputList[0]),int(inputList[1]),int(inputList[2]))',
+'deS':'a=wp.delay(int(inputList[0]))',
+'deU':'a=wp.delayMicroseconds(int(inputList[0]))',
+'diR':'a=wp.digitalRead(int(inputList[0]))',
+'diW':'a=wp.digitalWrite(int(inputList[0]),int(inputList[1]))',
+'dsS':'a=wp.ds1302Setup(int(inputList[0]),int(inputList[1]),int(inputList[2]),)',
+'dsR':'a=wp.ds1302rtcRead(int(inputList[0]))',
+'dsW':'a=wp.ds1302rtcWrite(int(inputList[0]),int(inputList[1]))',
+'dsr':'a=wp.ds1302ramRead(int(inputList[0]))',
+'dsw':'a=wp.ds1302ramWrite(int(inputList[0]),int(inputList[1]))',
+'dsc':'a=wp.ds1302clockRead(int(inputList[0]))',
+'dsC':'a=wp.ds1302clockWrite(int(inputList[0]))',
+'dst':'a=wp.ds1302trickleCharge(int(inputList[0]),int(inputList[1]))',
+'gAS':'a=wp.gertboardAnalogSetup(int(inputList[0]))',
+'gAR':'a=wp.gertboardAnalogRead(int(inputList[0]))',
+'gAt':'a=wp.getAlt(int(inputList[0]))',
+'gAW':'a=wp.gertboardAnalogWrite(int(inputList[0]),int(inputList[1]))',
+'gSS':'a=wp.gertboardSPISetup()',
+'Int':'if pinNum==1:\n\t\tpin=wp.wpiPinToGpio(int(inputList[0]))\n\telif pinNum==2:\n\t\tpin=int(inputList[0])\n\telif pinNum==3:\n\t\tpin=wp.physPinToGpio(int(inputList[0]))\n\tGPIO.setup(pin,GPIO.IN,pull_up_down=GPIO.PUD_DOWN)\n\tif int(inputList[1])==-1:\n\t\ta=GPIO.wait_for_edge(pin,GPIO.RISING)\n\telse:\n\t\ta=GPIO.wait_for_edge(pin,GPIO.RISING,timeout=int(inputList[1]))\n\tif type(a)==int:\n\t\ta=1\n\telse:\n\t\ta=0',
+#'a=wp.waitForInterrupt(int(inputList[0]),int(inputList[1]))',
+#'ISR':'a=wp.wiringPiISR(int(inputList[0]),int(inputList[1]),inputList[2])',
+'lCB':'a=wp.lcdCursorBlink(int(inputList[0]),int(inputList[1]))',
+'lCD':'a=wp.lcdCharDef(int(inputList[0]),int(inputList[1]),[int(inputList[2]),int(inputList[3]),int(inputList[4]),int(inputList[5]),int(inputList[6]),int(inputList[7]),int(inputList[8]),int(inputList[9])])',
+'lCl':'a=wp.lcdClear(int(inputList[0]))',
+'lCu':'a=wp.lcdCursor(int(inputList[0]),int(inputList[1]))',
+'lDs':'a=wp.lcdDisplay(int(inputList[0]),int(inputList[1]))',
+'lHo':'a=wp.lcdHome(int(inputList[0]))',
+'lIn':'a=wp.lcdInit(int(inputList[0]),int(inputList[1]),int(inputList[2]),int(inputList[3]),int(inputList[4]),int(inputList[5]),int(inputList[6]),int(inputList[7]),int(inputList[8]),int(inputList[9]),int(inputList[10]),int(inputList[11]),int(inputList[12]))',
+'lok':'a=wp.piLock(int(inputList[0]))',
+'lPc':'a=wp.lcdPutchar(int(inputList[0]),int(inputList[1]))',
+'lPo':'a=wp.lcdPosition(int(inputList[0]),int(inputList[1]),int(inputList[2]))',
+'lPf':'a=wp.lcdPrintf(int(inputList[0]),inputList[1])',
+'lPu':'a=wp.lcdPuts(int(inputList[0]),inputList[1])',
+'lSC':'a=wp.lcdSendCommand(int(inputList[0]),inputList[1])',
+'Lse':'a=wp.lcd128x64setup()',
+'Lup':'a=wp.lcd128x64update()',
+'LOr':'a=wp.lcd128x64setOrigin(int(inputList[0]),int(inputList[1]))',
+'LOn':'a=wp.lcd128x64setOrientation(int(inputList[0]))',
+#'LCo':'a=wp.lcd128x64orientCoord(int(inputList[0]),int(inputList[1]))',
+#'LSS':'a=wp.lcd128x64ScreenSize(int(inputList[0]),int(inputList[1]))',
+'Lpo':'a=wp.lcd128x64point(int(inputList[0]),int(inputList[1]),int(inputList[2]))',
+'Lli':'a=wp.lcd128x64line(int(inputList[0]),int(inputList[1]),int(inputList[2]),int(inputList[3]),int(inputList[4]))',
+'LlT':'a=wp.lcd128x64lineTo(int(inputList[0]),int(inputList[1]),int(inputList[2]))',
+'Lre':'a=wp.lcd128x64rectangle(int(inputList[0]),int(inputList[1]),int(inputList[2]),int(inputList[3]),int(inputList[4]),int(inputList[5]))',
+'Lci':'a=wp.lcd128x64circle(int(inputList[0]),int(inputList[1]),int(inputList[2]),int(inputList[0]),int(inputList[3]),int(inputList[4]))',
+'Lel':'a=wp.lcd128x64ellipse(int(inputList[0]),int(inputList[1]),int(inputList[2]),int(inputList[3]),int(inputList[4]),int(inputList[5]))',
+'Lpc':'a=wp.lcd128x64putchar(int(inputList[0]),int(inputList[1]),int(inputList[2]),int(inputList[3]),int(inputList[4]),int(inputList[5]))',
+'LPu':'a=wp.lcd128x64puts(int(inputList[0]),int(inputList[1]),inputList[2],int(inputList[3]),int(inputList[4]))',
+'LCl':'a=wp.lcd128x64clear(int(inputList[0]))',
+'mic':'a=wp.micros()',
+'mil':'a=wp.millis()',
+'mp6':'a=wp.mcp23016Setup(int(inputList[0]),int(inputList[1]))',
+'mp7':'a=wp.mcp23017Setup(int(inputList[0]),int(inputList[1]))',
+'mp8':'a=wp.mcp23008Setup(int(inputList[0]),int(inputList[1]))',
+#'mp2':'a=wp.mcp3002Setup(int(inputList[0]),int(inputList[1]))',
+#'mp4':'a=wp.mcp3004Setup(int(inputList[0]),int(inputList[1]))',
+#'mp3':'a=wp.mcp3422Setup(int(inputList[0]),int(inputList[1]),int(inputList[2]),int(inputList[3]))',
+#'mp0':'a=wp.mcp4802Setup(int(inputList[0]),int(inputList[1]))',
+'ms7':'a=wp.mcp23s17Setup(int(inputList[0]),int(inputList[1]),int(inputList[2]))',
+'ms8':'a=wp.mcp23s08Setup(int(inputList[0]),int(inputList[1]),int(inputList[2]))',
+'mxR':'a=wp.maxDetectRead(int(inputList[0]),inputList[1])',
+'mx3':'a=wp.max31855Setup(int(inputList[0]),int(inputList[1]))',
+'mx5':'a=wp.max5322Setup(int(inputList[0]),int(inputList[1]))',
+'NES':'a=wp.setupNesJoystick(int(inputList[0]),int(inputList[1]),int(inputList[2]))',
+'NER':'a=wp.readNesJoystick(int(inputList[0]))',
+'pDr':'a=wp.setPadDrive(int(inputList[0]),int(inputList[1]))',
+'pf7':'a=wp.pcf8574Setup(int(inputList[0]),int(inputList[1]))',
+'pf9':'a=wp.pcf8591Setup(int(inputList[0]),int(inputList[1]))',
+'pG1':'a=wp.piGlow1(int(inputList[0]),int(inputList[1]),int(inputList[2]))',
+'pGL':'a=wp.piGlowLeg(int(inputList[0]),int(inputList[1]))',
+'pGR':'a=wp.piGlowRing(int(inputList[0]),int(inputList[1]))',
+'pGS':'a=wp.piGlowSetup(int(inputList[0]))',
+'PhS':'a=wp.scrollPhatSetup()',
+'PhU':'a=wp.scrollPhatUpdate()',
+'PhC':'a=wp.scrollPhatClear()',
+'Php':'a=wp.scrollPhatPoint(int(inputList[0]),int(inputList[1]),int(inputList[2]))',
+'PhL':'a=wp.scrollPhatLine(int(inputList[0]),int(inputList[1]),int(inputList[2]),int(inputList[3]),int(inputList[4]))',
+'PhT':'a=wp.scrollPhatLineTo(int(inputList[0]),int(inputList[1]),int(inputList[2]))',
+'PhR':'a=wp.scrollPhatRectangle(int(inputList[0]),int(inputList[1]),int(inputList[2]),int(inputList[3]),int(inputList[4]),int(inputList[5]),)',
+'Phc':'a=wp.scrollPhatPutchar(int(inputList[0]))',
+'PhP':'a=wp.scrollPhatPuts(inputList[0])',
+'Phf':'a=wp.scrollPhatPrintf(inputList[0])',
+'Phs':'a=wp.scrollPhatPrintSpeed(int(inputList[0]))',
+'PhI':'a=wp.scrollPhatIntensity(int(inputList[0]),)',
+'plC':'a=wp.pullUpDnControl(int(inputList[0]),int(inputList[1]))',
+'pMA':'a=wp.pinModeAlt(int(inputList[0]),int(inputList[1]))',
+'pN0':'if pinNum==0:\n\t\ta=wp.wiringPiSetup()\n\t\tpinNum=1\n\telse:\n\t\ta="RPI_pinNumbering has already been called once. Close and restart the connection to change the numbering sequence."',
+'pN1':'if pinNum==0:\n\t\ta=wp.wiringPiSetupGpio()\n\t\tpinNum=2\n\telse:\n\t\ta="RPI_pinNumbering has already been called once. Close and restart the connection to change the numbering sequence."',
+'pN2':'if pinNum==0:\n\t\ta=wp.wiringPiSetupPhys()\n\t\tpinNum=3\n\telse:\n\t\ta="RPI_pinNumbering has already been called once. Close and restart the connection to change the numbering sequence."',
+'pN3':'if pinNum==0:\n\t\ta=wp.wiringPiSetupSys()\n\t\tpinNum=4\n\telse:\n\t\ta="RPI_pinNumbering has already been called once. Close and restart the connection to change the numbering sequence."()',
+'pnM':'a=wp.pinMode(int(inputList[0]),int(inputList[1]))',
+'pri':'a=wp.PiHiPri(int(inputList[0]))',
+'ptG':'a=wp.physPinToGpio(int(inputList[0]))',
+'pwC':'a=wp.pwmSetClock(int(inputList[0]))',
+'pwG':'a=wp.wpiPinToGpio(int(inputList[0]))',
+'pwM':'a=wp.pwmSetMode(int(inputList[0]))',
+'pwR':'a=wp.pwmSetRange(int(inputList[0]))',
+'pwT':'a=wp.pwmToneWrite(int(inputList[0]),int(inputList[1]))',
+'pwW':'a=wp.pwmWrite(int(inputList[0]),int(inputList[1]))',
+'sCl':'a=wp.serialClose(int(inputList[0]))',
+'sDA':'a=wp.serialDataAvail(int(inputList[0]))',
+'sFl':'a=wp.serialFlush(int(inputList[0]))',
+'sGc':'a=wp.serialGetchar(int(inputList[0]))',
+'shI':'a=wp.shiftIn(int(inputList[0]),int(inputList[1]),int(inputList[2]))',
+'shO':'a=wp.shiftOut(int(inputList[0]),int(inputList[1]),int(inputList[2]),int(inputList[3]))',
+'sn3':'a=wp.sn3218Setup(int(inputList[0]))',
+'sOp':'a=wp.serialOpen(inputList[0],int(inputList[1]))',
+'sPc':'a=wp.serialPutchar(int(inputList[0]),inputList[1])',
+'sPC':'a=wp.softPwmCreate(int(inputList[0]),int(inputList[1]),int(inputList[2]))',
+'SPD':'a=wp.wiringPiSPIDataRW(int(inputList[0]),inputList[1])',
+'sPf':'a=wp.serialPrintf(int(inputList[0]),inputList[1])',
+'SPF':'a=wp.wiringPiSPIGetFd(int(inputList[0]))',
+'SPM':'a=wp.wiringPiSPISetupMode(int(inputList[0]),int(inputList[1]),int(inputList[2]))',
+'SPS':'a=wp.wiringPiSPISetup(int(inputList[0]),int(inputList[1]))',
+'sPs':'a=wp.serialPuts(int(inputList[0]),inputList[1])',
+'sPS':'a=wp.softPwmStop(int(inputList[0]))',
+'sPW':'a=wp.softPwmWrite(int(inputList[0]),int(inputList[1]))',
+'sSS':'a=wp.softServoSetup(int(inputList[0]),int(inputList[1]),int(inputList[2]),int(inputList[3]),int(inputList[4]),int(inputList[5]),int(inputList[6]),int(inputList[7]))',
+'sSW':'a=wp.softServoWrite(int(inputList[0]),int(inputList[1]))',
+'sr5':'a=wp.sr595Setup(int(inputList[0]),int(inputList[1]),int(inputList[2]),int(inputList[3]),int(inputList[4]))',
+'sTC':'a=wp.softToneCreate(int(inputList[0]))',
+'sTS':'a=wp.softToneStop(int(inputList[0]))',
+'sTW':'a=wp.softToneWrite(int(inputList[0]),int(inputList[1]))',
+'thC':'a=wp.piThreadCreate(inputList[0])',
+'unl':'a=wp.piUnlock(int(inputList[0]))',
+'wtG':'a=wp.wpiPinToGpio(int(inputList[0]))',
+#'rRT':'a=wp.readRHT03(int(inputList[0]),int(inputList[1]),inputList[2])',
+'drc':'a=wp.drcSetupSerial(int(inputList[0]),int(inputList[1]),inputList[2],inputList[3])',
+'ads':'a=wp.ads1115Setup(int(inputList[0]),int(inputList[1]))',
+'wpF':'a=wp.wiringPiFailure(int(inputList[0]),inputList[1])',
+'wpN':'a=wp.wiringPiFindNode(int(inputList[0]))',
+'wpn':'a=wp.wiringPiNewNode(int(inputList[0]),int(inputList[1]))',
+#'pBI':'a=wp.piBoardId()',
+'gCS':'a=wp.gpioClockSet(int(inputList[0]),int(inputList[1]))',
+#'':'a=wp.',
+#'ISR':'if pinNum==1:\n\t\tpin=wp.wpiPinToGpio(29)\n\telif pinNum==2:\n\t\tpin=int(inputList[0])\n\telif pinNum==3:\n\t\t pin=wp.physPinToGpio(int(inputList[0]))\n\tGPIO.setup(pin,GPIO.IN,pull_up_down=inputList[2])\n\tGPIO.add_event_detect(pin,exec(inputList[1]),send2Client)',
+}
+
+s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
+s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
+s.bind(("0.0.0.0",9077))
+"""
+s2=socket.socket()
+s2.connect((addr[0],9078))
+
+def send2Client(pin):
+ s2.send(pin)
+"""
+s.listen(5)
+go=1
+while go==1:
+ c, addr=s.accept()
+ theInput=c.recv(1024)
+ cmd=theInput[:3]
+ hash1=3
+ Len=len(theInput)
+ for j in range(hash1+1,Len):
+ if theInput[j]=='#':
+ hash2=j
+ break
+ numInputs=int(theInput[hash1+1:hash2])
+ hash1=hash2
+ inputList=[]
+ for i in range(0,numInputs):
+ for j in range(hash1+1,Len):
+ if theInput[j]=='#':
+ hash2=j
+ break
+ inputList.append(theInput[hash1+1:hash2])
+ hash1=hash2
+ print ('try:\n\t'+commands[cmd]+'\nexcept Exception as err:\n\ta=traceback.format_exc()')
+ exec('try:\n\t'+commands[cmd]+'\nexcept Exception as err:\n\ta=traceback.format_exc()')
+ c.send(str(a))
+ c.close()