summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authornutricato2008-06-09 09:55:59 +0000
committernutricato2008-06-09 09:55:59 +0000
commit570999d72a986dce58e5178586c579975f424910 (patch)
tree1f2aa4eea47ac7f29f305edcf54a9574a59af714 /src
parent0bed8f8edf8c88bf476380e84fdd929d817502f9 (diff)
downloadscilab2c-570999d72a986dce58e5178586c579975f424910.tar.gz
scilab2c-570999d72a986dce58e5178586c579975f424910.tar.bz2
scilab2c-570999d72a986dce58e5178586c579975f424910.zip
Diffstat (limited to 'src')
-rw-r--r--src/Scilab2C/Scilab2C/CCodeGeneration/SCI2CMakefileTemplate.bkp460
-rw-r--r--src/Scilab2C/Scilab2C/CCodeGeneration/SCI2CMakefileTemplate.bkp1230
-rw-r--r--src/Scilab2C/Scilab2C/CCodeGeneration/SCI2CMakefileTemplate.bkp2126
-rw-r--r--src/Scilab2C/Scilab2C/CCodeGeneration/SCI2CMakefileTemplate.rc243
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/ConvertPrecision.c41
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/FileManagement.c12
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/Find.c7
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpApex.c82
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpCc.c211
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpColon.c303
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpDotHat.c76
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpDotSlash.c115
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpDotStar.c228
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpEqual.c90
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpExt.c11
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpIns.c11
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogAnd.c38
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogEq.c38
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogGe.c37
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogGt.c37
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogLe.c37
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogLt.c37
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogOr.c38
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpMinus.c281
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpPlus.c267
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpRc.c195
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpStar.c398
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/RealToComplex.c134
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/SCI2Cconvol.c2
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/SCI2Cfft.c13
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/cabsa.c21
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/cabss.c30
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/cexpa.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/cexps.c23
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/clog10a.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/clog10s.c19
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/clog1pa.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/clog1ps.c18
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/cloga.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/clogs.c64
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/cmeana.c24
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/conj.c45
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/cos.c62
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/cosh.c40
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/cpythags.c19
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/csqrta.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/csqrts.c18
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/csuma.c24
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/dabsa.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/dabss.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/dexpa.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/dexps.c18
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/disp.c194
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/dlog10a.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/dlog10s.c18
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/dlog1pa.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/dlog1ps.c37
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/dloga.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/dlogs.c18
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/dmeana.c25
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/doubleComplex.c144
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/dpythags.c18
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/dsqrta.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/dsqrts.c18
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/dsuma.c25
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/floatComplex.c143
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/ones.c40
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/sabsa.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/sabss.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/sexpa.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/sexps.c18
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/sin.c61
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/sinh.c58
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/slog10a.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/slog10s.c18
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/slog1pa.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/slog1ps.c18
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/sloga.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/slogs.c18
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/smeana.c25
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/spythags.c17
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/ssqrta.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/ssqrts.c18
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/ssuma.c25
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/zabsa.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/zabss.c31
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/zeros.c41
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/zexpa.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/zexps.c23
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/zlog10a.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/zlog10s.c19
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/zlog1pa.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/zlog1ps.c18
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/zloga.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/zlogs.c64
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/zmeana.c24
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/zsqrta.c20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/zsqrts.c18
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2ccode/zsuma.c24
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/ConvertPrecision.h18
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/FileManagement.h13
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/Find.h15
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpApex.h32
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpCc.h32
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpColon.h36
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpDotHat.h30
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpDotSlash.h39
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpDotStar.h46
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpEqual.h33
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpExt.h14
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpIns.h15
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogAnd.h23
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogEq.h23
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogGe.h27
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogGt.h27
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogLe.h27
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogLt.h27
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogOr.h23
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpMinus.h59
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpPlus.h60
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpRc.h35
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpStar.h48
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/RealToComplex.h33
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/SCI2CMacroInterface.h280
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/SCI2Cconvol.h15
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/SCI2Cfft.h16
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/abs.h87
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/conj.h20
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/constant.h27
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/cos.h38
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/cosh.h27
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/disp.h27
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/doubleComplex.h67
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/exp.h80
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/floatComplex.h69
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/length.h95
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/log.h80
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/log10.h80
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/log1p.h80
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/machine.h.in141
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/max.h18
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/mean.h83
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/min.h17
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/notFound.h18
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/ones.h18
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/pythag.h39
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sci2clib.h51
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sin.h37
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sinh.h32
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sqrt.h79
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sum.h83
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cincludes/zeros.h15
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_abs.h54
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_exp.h55
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_length.h70
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_log.h34
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_log10.h34
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_log1p.h34
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_mean.h34
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_sqrt.h71
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_sum.h34
-rw-r--r--src/Scilab2C/Scilab2C/CFiles/sci2cobj/readme.txt2
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_1.sci21
-rw-r--r--src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_2.sci21
-rw-r--r--src/Scilab2C/Scilab2C/FunctionList/FL_GetFunctionClass.sci65
-rw-r--r--src/Scilab2C/Scilab2C/LaunchMultiRunSCI2C.sci165
-rw-r--r--src/Scilab2C/Scilab2C/ToolInitialization/INIT_LoadLibraries.sci78
-rw-r--r--src/Scilab2C/Scilab2C/full_reset.sce2
-rw-r--r--src/Scilab2C/Scilab2C/runsci2c.sci206
169 files changed, 8759 insertions, 616 deletions
diff --git a/src/Scilab2C/Scilab2C/CCodeGeneration/SCI2CMakefileTemplate.bkp b/src/Scilab2C/Scilab2C/CCodeGeneration/SCI2CMakefileTemplate.bkp
index 0574ab5a..65184df1 100644
--- a/src/Scilab2C/Scilab2C/CCodeGeneration/SCI2CMakefileTemplate.bkp
+++ b/src/Scilab2C/Scilab2C/CCodeGeneration/SCI2CMakefileTemplate.bkp
@@ -1,230 +1,230 @@
-
-# --- C COMPILER ---
-CC = gcc
-CFLAGS = -Wall -pedantic -O3 -I $(HSRCDIR)
-# ---------------------------
-# --- END USER PARAMETERS ---
-# ---------------------------
-
-# ------------------------------------
-# ------------------------------------
-# ------------------------------------
-# ------------------------------------
-# ------------------------------------
-# DON'T TOUCH ANYTHING BELOW THIS LINE
-# ------------------------------------
-# ------------------------------------
-# ------------------------------------
-# ------------------------------------
-# ------------------------------------
-
-ELEMENTARY_FUNCTIONS_DIR = $(CSRCDIR)/src/elementaryFunctions
-CFLAGS_ELEMENTARY_FUNCTIONS = -I $(ELEMENTARY_FUNCTIONS_DIR)/includes -I $(ELEMENTARY_FUNCTIONS_DIR)/interfaces
-
-
-EXEFILE = $(SCI2CDIR)/$(EXEFILENAME)
-
-objects = \
- $(OBJDIR)/doubleComplex.o \
- $(OBJDIR)/floatComplex.o \
- $(OBJDIR)/RealToComplex.o \
- $(OBJDIR)/conj.o \
- $(OBJDIR)/disp.o \
- $(OBJDIR)/ones.o \
- $(OBJDIR)/zeros.o \
- $(OBJDIR)/OpApex.o \
- $(OBJDIR)/OpColon.o \
- $(OBJDIR)/OpDotStar.o \
- $(OBJDIR)/OpDotHat.o \
- $(OBJDIR)/OpDotSlash.o \
- $(OBJDIR)/OpEqual.o \
- $(OBJDIR)/OpPlus.o \
- $(OBJDIR)/OpMinus.o \
- $(OBJDIR)/OpStar.o \
- $(OBJDIR)/OpIns.o \
- $(OBJDIR)/OpExt.o \
- $(OBJDIR)/OpRc.o \
- $(OBJDIR)/OpCc.o \
- $(OBJDIR)/cos.o \
- $(OBJDIR)/cosh.o \
- $(OBJDIR)/sin.o \
- $(OBJDIR)/sinh.o \
- $(OBJDIR)/FileManagement.o \
- $(OBJDIR)/OpLogLt.o \
- $(OBJDIR)/OpLogGt.o \
- $(OBJDIR)/OpLogGe.o \
- $(OBJDIR)/OpLogLe.o \
- $(OBJDIR)/OpLogEq.o \
- $(OBJDIR)/Find.o \
- $(OBJDIR)/ConvertPrecision.o \
- $(OBJDIR)/SCI2Cfft.o \
- $(OBJDIR)/SCI2Cconvol.o \
- $(OBJDIR)/ssqrts.o \
- $(OBJDIR)/dsqrts.o \
- $(OBJDIR)/csqrts.o \
- $(OBJDIR)/zsqrts.o \
- $(OBJDIR)/ssqrta.o \
- $(OBJDIR)/dsqrta.o \
- $(OBJDIR)/csqrta.o \
- $(OBJDIR)/zsqrta.o
-
-# ---------------
-# --- TARGETS ---
-# ---------------
-compileexecute: $(objects)
- @echo " "
- @echo "============================"
- @echo "Generation of the executable"
- @echo "============================"
- $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) $(objects) $(SCI2CDIR)/*.c -o $(EXEFILE)
- @echo " "
- @echo "=============="
- @echo "Executing code"
- @echo "=============="
- $(EXEFILE)
-
-clean:
- @echo " "
- @echo "============================="
- @echo "Removing only exe + obj files"
- @echo "============================="
- rm -rf $(EXEFILE)
- rm -rf $(objects)
- @echo " "
-
-cleanexe:
- @echo " "
- @echo "=========================="
- @echo "Removing only the exe file"
- @echo "=========================="
- rm -rf $(EXEFILE)
- @echo " "
-
-$(OBJDIR)/doubleComplex.o: $(CSRCDIR)/doubleComplex.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/doubleComplex.c -o $(OBJDIR)/doubleComplex.o
-
-$(OBJDIR)/floatComplex.o: $(CSRCDIR)/floatComplex.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/floatComplex.c -o $(OBJDIR)/floatComplex.o
-
-$(OBJDIR)/RealToComplex.o: $(CSRCDIR)/RealToComplex.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/RealToComplex.c -o $(OBJDIR)/RealToComplex.o
-
-$(OBJDIR)/conj.o: $(CSRCDIR)/conj.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/conj.c -o $(OBJDIR)/conj.o
-
-$(OBJDIR)/disp.o: $(CSRCDIR)/disp.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/disp.c -o $(OBJDIR)/disp.o
-
-$(OBJDIR)/zeros.o: $(CSRCDIR)/zeros.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/zeros.c -o $(OBJDIR)/zeros.o
-
-$(OBJDIR)/ones.o: $(CSRCDIR)/ones.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/ones.c -o $(OBJDIR)/ones.o
-
-$(OBJDIR)/OpApex.o: $(CSRCDIR)/OpApex.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/OpApex.c -o $(OBJDIR)/OpApex.o
-
-$(OBJDIR)/OpColon.o: $(CSRCDIR)/OpColon.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/OpColon.c -o $(OBJDIR)/OpColon.o
-
-$(OBJDIR)/OpDotStar.o: $(CSRCDIR)/OpDotStar.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/OpDotStar.c -o $(OBJDIR)/OpDotStar.o
-
-$(OBJDIR)/OpDotHat.o: $(CSRCDIR)/OpDotHat.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/OpDotHat.c -o $(OBJDIR)/OpDotHat.o
-
-$(OBJDIR)/OpDotSlash.o: $(CSRCDIR)/OpDotSlash.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/OpDotSlash.c -o $(OBJDIR)/OpDotSlash.o
-
-$(OBJDIR)/OpEqual.o: $(CSRCDIR)/OpEqual.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/OpEqual.c -o $(OBJDIR)/OpEqual.o
-
-$(OBJDIR)/OpPlus.o: $(CSRCDIR)/OpPlus.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/OpPlus.c -o $(OBJDIR)/OpPlus.o
-
-$(OBJDIR)/OpMinus.o: $(CSRCDIR)/OpMinus.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/OpMinus.c -o $(OBJDIR)/OpMinus.o
-
-$(OBJDIR)/OpStar.o: $(CSRCDIR)/OpStar.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/OpStar.c -o $(OBJDIR)/OpStar.o
-
-$(OBJDIR)/OpIns.o: $(CSRCDIR)/OpIns.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/OpIns.c -o $(OBJDIR)/OpIns.o
-
-$(OBJDIR)/OpExt.o: $(CSRCDIR)/OpExt.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/OpExt.c -o $(OBJDIR)/OpExt.o
-
-$(OBJDIR)/OpRc.o: $(CSRCDIR)/OpRc.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/OpRc.c -o $(OBJDIR)/OpRc.o
-
-$(OBJDIR)/OpCc.o: $(CSRCDIR)/OpCc.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/OpCc.c -o $(OBJDIR)/OpCc.o
-
-$(OBJDIR)/cos.o: $(CSRCDIR)/cos.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/cos.c -o $(OBJDIR)/cos.o
-
-$(OBJDIR)/cosh.o: $(CSRCDIR)/cosh.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/cosh.c -o $(OBJDIR)/cosh.o
-
-$(OBJDIR)/sin.o: $(CSRCDIR)/sin.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/sin.c -o $(OBJDIR)/sin.o
-
-$(OBJDIR)/sinh.o: $(CSRCDIR)/sinh.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/sinh.c -o $(OBJDIR)/sinh.o
-
-$(OBJDIR)/FileManagement.o: $(CSRCDIR)/FileManagement.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/FileManagement.c -o $(OBJDIR)/FileManagement.o
-
-$(OBJDIR)/OpLogLt.o: $(CSRCDIR)/OpLogLt.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/OpLogLt.c -o $(OBJDIR)/OpLogLt.o
-
-$(OBJDIR)/OpLogGt.o: $(CSRCDIR)/OpLogGt.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/OpLogGt.c -o $(OBJDIR)/OpLogGt.o
-
-$(OBJDIR)/OpLogLe.o: $(CSRCDIR)/OpLogLe.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/OpLogLe.c -o $(OBJDIR)/OpLogLe.o
-
-$(OBJDIR)/OpLogGe.o: $(CSRCDIR)/OpLogGe.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/OpLogGe.c -o $(OBJDIR)/OpLogGe.o
-
-$(OBJDIR)/OpLogEq.o: $(CSRCDIR)/OpLogEq.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/OpLogEq.c -o $(OBJDIR)/OpLogEq.o
-
-$(OBJDIR)/Find.o: $(CSRCDIR)/Find.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/Find.c -o $(OBJDIR)/Find.o
-
-$(OBJDIR)/ConvertPrecision.o: $(CSRCDIR)/ConvertPrecision.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/ConvertPrecision.c -o $(OBJDIR)/ConvertPrecision.o
-
-$(OBJDIR)/SCI2Cfft.o: $(CSRCDIR)/SCI2Cfft.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/SCI2Cfft.c -o $(OBJDIR)/SCI2Cfft.o
-
-$(OBJDIR)/SCI2Cconvol.o: $(CSRCDIR)/SCI2Cconvol.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCDIR)/SCI2Cconvol.c -o $(OBJDIR)/SCI2Cconvol.o
-
-$(OBJDIR)/sqrt.o: $(CSRCELEMFUNDIR)/sqrt/*sqrt*.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) -c $(CSRCELEMFUNDIR)/sqrt/*sqrt*.c -o $(OBJDIR)/sqrt.o
-
-$(OBJDIR)/ssqrts.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/ssqrts.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/ssqrts.c -o $(OBJDIR)/ssqrts.o
-
-$(OBJDIR)/dsqrts.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/dsqrts.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/dsqrts.c -o $(OBJDIR)/dsqrts.o
-
-$(OBJDIR)/csqrts.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/csqrts.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/csqrts.c -o $(OBJDIR)/csqrts.o
-
-$(OBJDIR)/zsqrts.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/zsqrts.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/zsqrts.c -o $(OBJDIR)/zsqrts.o
-
-$(OBJDIR)/ssqrta.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/ssqrta.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/ssqrta.c -o $(OBJDIR)/ssqrta.o
-
-$(OBJDIR)/dsqrta.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/dsqrta.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/dsqrta.c -o $(OBJDIR)/dsqrta.o
-
-$(OBJDIR)/csqrta.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/csqrta.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/csqrta.c -o $(OBJDIR)/csqrta.o
-
-$(OBJDIR)/zsqrta.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/zsqrta.c $(HSRCDIR)/*.h
- $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/zsqrta.c -o $(OBJDIR)/zsqrta.o
+
+# --- C COMPILER ---
+CC = gcc
+CFLAGS = -Wall -pedantic -O3 -I $(HSRCDIR)
+# ---------------------------
+# --- END USER PARAMETERS ---
+# ---------------------------
+
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# DON'T TOUCH ANYTHING BELOW THIS LINE
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+
+ELEMENTARY_FUNCTIONS_DIR = $(CSRCDIR)/src/elementaryFunctions
+CFLAGS_ELEMENTARY_FUNCTIONS = -I $(ELEMENTARY_FUNCTIONS_DIR)/includes -I $(ELEMENTARY_FUNCTIONS_DIR)/interfaces
+
+
+EXEFILE = $(SCI2CDIR)/$(EXEFILENAME)
+
+objects = \
+ $(OBJDIR)/doubleComplex.o \
+ $(OBJDIR)/floatComplex.o \
+ $(OBJDIR)/RealToComplex.o \
+ $(OBJDIR)/conj.o \
+ $(OBJDIR)/disp.o \
+ $(OBJDIR)/ones.o \
+ $(OBJDIR)/zeros.o \
+ $(OBJDIR)/OpApex.o \
+ $(OBJDIR)/OpColon.o \
+ $(OBJDIR)/OpDotStar.o \
+ $(OBJDIR)/OpDotHat.o \
+ $(OBJDIR)/OpDotSlash.o \
+ $(OBJDIR)/OpEqual.o \
+ $(OBJDIR)/OpPlus.o \
+ $(OBJDIR)/OpMinus.o \
+ $(OBJDIR)/OpStar.o \
+ $(OBJDIR)/OpIns.o \
+ $(OBJDIR)/OpExt.o \
+ $(OBJDIR)/OpRc.o \
+ $(OBJDIR)/OpCc.o \
+ $(OBJDIR)/cos.o \
+ $(OBJDIR)/cosh.o \
+ $(OBJDIR)/sin.o \
+ $(OBJDIR)/sinh.o \
+ $(OBJDIR)/FileManagement.o \
+ $(OBJDIR)/OpLogLt.o \
+ $(OBJDIR)/OpLogGt.o \
+ $(OBJDIR)/OpLogGe.o \
+ $(OBJDIR)/OpLogLe.o \
+ $(OBJDIR)/OpLogEq.o \
+ $(OBJDIR)/Find.o \
+ $(OBJDIR)/ConvertPrecision.o \
+ $(OBJDIR)/SCI2Cfft.o \
+ $(OBJDIR)/SCI2Cconvol.o \
+ $(OBJDIR)/ssqrts.o \
+ $(OBJDIR)/dsqrts.o \
+ $(OBJDIR)/csqrts.o \
+ $(OBJDIR)/zsqrts.o \
+ $(OBJDIR)/ssqrta.o \
+ $(OBJDIR)/dsqrta.o \
+ $(OBJDIR)/csqrta.o \
+ $(OBJDIR)/zsqrta.o
+
+# ---------------
+# --- TARGETS ---
+# ---------------
+compileexecute: $(objects)
+ @echo " "
+ @echo "============================"
+ @echo "Generation of the executable"
+ @echo "============================"
+ $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) $(objects) $(SCI2CDIR)/*.c -o $(EXEFILE)
+ @echo " "
+ @echo "=============="
+ @echo "Executing code"
+ @echo "=============="
+ $(EXEFILE)
+
+clean:
+ @echo " "
+ @echo "============================="
+ @echo "Removing only exe + obj files"
+ @echo "============================="
+ rm -rf $(EXEFILE)
+ rm -rf $(objects)
+ @echo " "
+
+cleanexe:
+ @echo " "
+ @echo "=========================="
+ @echo "Removing only the exe file"
+ @echo "=========================="
+ rm -rf $(EXEFILE)
+ @echo " "
+
+$(OBJDIR)/doubleComplex.o: $(CSRCDIR)/doubleComplex.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/doubleComplex.c -o $(OBJDIR)/doubleComplex.o
+
+$(OBJDIR)/floatComplex.o: $(CSRCDIR)/floatComplex.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/floatComplex.c -o $(OBJDIR)/floatComplex.o
+
+$(OBJDIR)/RealToComplex.o: $(CSRCDIR)/RealToComplex.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/RealToComplex.c -o $(OBJDIR)/RealToComplex.o
+
+$(OBJDIR)/conj.o: $(CSRCDIR)/conj.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/conj.c -o $(OBJDIR)/conj.o
+
+$(OBJDIR)/disp.o: $(CSRCDIR)/disp.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/disp.c -o $(OBJDIR)/disp.o
+
+$(OBJDIR)/zeros.o: $(CSRCDIR)/zeros.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/zeros.c -o $(OBJDIR)/zeros.o
+
+$(OBJDIR)/ones.o: $(CSRCDIR)/ones.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/ones.c -o $(OBJDIR)/ones.o
+
+$(OBJDIR)/OpApex.o: $(CSRCDIR)/OpApex.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpApex.c -o $(OBJDIR)/OpApex.o
+
+$(OBJDIR)/OpColon.o: $(CSRCDIR)/OpColon.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpColon.c -o $(OBJDIR)/OpColon.o
+
+$(OBJDIR)/OpDotStar.o: $(CSRCDIR)/OpDotStar.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpDotStar.c -o $(OBJDIR)/OpDotStar.o
+
+$(OBJDIR)/OpDotHat.o: $(CSRCDIR)/OpDotHat.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpDotHat.c -o $(OBJDIR)/OpDotHat.o
+
+$(OBJDIR)/OpDotSlash.o: $(CSRCDIR)/OpDotSlash.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpDotSlash.c -o $(OBJDIR)/OpDotSlash.o
+
+$(OBJDIR)/OpEqual.o: $(CSRCDIR)/OpEqual.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpEqual.c -o $(OBJDIR)/OpEqual.o
+
+$(OBJDIR)/OpPlus.o: $(CSRCDIR)/OpPlus.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpPlus.c -o $(OBJDIR)/OpPlus.o
+
+$(OBJDIR)/OpMinus.o: $(CSRCDIR)/OpMinus.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpMinus.c -o $(OBJDIR)/OpMinus.o
+
+$(OBJDIR)/OpStar.o: $(CSRCDIR)/OpStar.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpStar.c -o $(OBJDIR)/OpStar.o
+
+$(OBJDIR)/OpIns.o: $(CSRCDIR)/OpIns.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpIns.c -o $(OBJDIR)/OpIns.o
+
+$(OBJDIR)/OpExt.o: $(CSRCDIR)/OpExt.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpExt.c -o $(OBJDIR)/OpExt.o
+
+$(OBJDIR)/OpRc.o: $(CSRCDIR)/OpRc.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpRc.c -o $(OBJDIR)/OpRc.o
+
+$(OBJDIR)/OpCc.o: $(CSRCDIR)/OpCc.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpCc.c -o $(OBJDIR)/OpCc.o
+
+$(OBJDIR)/cos.o: $(CSRCDIR)/cos.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/cos.c -o $(OBJDIR)/cos.o
+
+$(OBJDIR)/cosh.o: $(CSRCDIR)/cosh.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/cosh.c -o $(OBJDIR)/cosh.o
+
+$(OBJDIR)/sin.o: $(CSRCDIR)/sin.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/sin.c -o $(OBJDIR)/sin.o
+
+$(OBJDIR)/sinh.o: $(CSRCDIR)/sinh.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/sinh.c -o $(OBJDIR)/sinh.o
+
+$(OBJDIR)/FileManagement.o: $(CSRCDIR)/FileManagement.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/FileManagement.c -o $(OBJDIR)/FileManagement.o
+
+$(OBJDIR)/OpLogLt.o: $(CSRCDIR)/OpLogLt.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpLogLt.c -o $(OBJDIR)/OpLogLt.o
+
+$(OBJDIR)/OpLogGt.o: $(CSRCDIR)/OpLogGt.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpLogGt.c -o $(OBJDIR)/OpLogGt.o
+
+$(OBJDIR)/OpLogLe.o: $(CSRCDIR)/OpLogLe.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpLogLe.c -o $(OBJDIR)/OpLogLe.o
+
+$(OBJDIR)/OpLogGe.o: $(CSRCDIR)/OpLogGe.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpLogGe.c -o $(OBJDIR)/OpLogGe.o
+
+$(OBJDIR)/OpLogEq.o: $(CSRCDIR)/OpLogEq.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpLogEq.c -o $(OBJDIR)/OpLogEq.o
+
+$(OBJDIR)/Find.o: $(CSRCDIR)/Find.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/Find.c -o $(OBJDIR)/Find.o
+
+$(OBJDIR)/ConvertPrecision.o: $(CSRCDIR)/ConvertPrecision.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/ConvertPrecision.c -o $(OBJDIR)/ConvertPrecision.o
+
+$(OBJDIR)/SCI2Cfft.o: $(CSRCDIR)/SCI2Cfft.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/SCI2Cfft.c -o $(OBJDIR)/SCI2Cfft.o
+
+$(OBJDIR)/SCI2Cconvol.o: $(CSRCDIR)/SCI2Cconvol.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/SCI2Cconvol.c -o $(OBJDIR)/SCI2Cconvol.o
+
+$(OBJDIR)/sqrt.o: $(CSRCELEMFUNDIR)/sqrt/*sqrt*.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCELEMFUNDIR)/sqrt/*sqrt*.c -o $(OBJDIR)/sqrt.o
+
+$(OBJDIR)/ssqrts.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/ssqrts.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/ssqrts.c -o $(OBJDIR)/ssqrts.o
+
+$(OBJDIR)/dsqrts.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/dsqrts.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/dsqrts.c -o $(OBJDIR)/dsqrts.o
+
+$(OBJDIR)/csqrts.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/csqrts.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/csqrts.c -o $(OBJDIR)/csqrts.o
+
+$(OBJDIR)/zsqrts.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/zsqrts.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/zsqrts.c -o $(OBJDIR)/zsqrts.o
+
+$(OBJDIR)/ssqrta.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/ssqrta.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/ssqrta.c -o $(OBJDIR)/ssqrta.o
+
+$(OBJDIR)/dsqrta.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/dsqrta.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/dsqrta.c -o $(OBJDIR)/dsqrta.o
+
+$(OBJDIR)/csqrta.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/csqrta.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/csqrta.c -o $(OBJDIR)/csqrta.o
+
+$(OBJDIR)/zsqrta.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/zsqrta.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/zsqrta.c -o $(OBJDIR)/zsqrta.o
diff --git a/src/Scilab2C/Scilab2C/CCodeGeneration/SCI2CMakefileTemplate.bkp1 b/src/Scilab2C/Scilab2C/CCodeGeneration/SCI2CMakefileTemplate.bkp1
new file mode 100644
index 00000000..65184df1
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CCodeGeneration/SCI2CMakefileTemplate.bkp1
@@ -0,0 +1,230 @@
+
+# --- C COMPILER ---
+CC = gcc
+CFLAGS = -Wall -pedantic -O3 -I $(HSRCDIR)
+# ---------------------------
+# --- END USER PARAMETERS ---
+# ---------------------------
+
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# DON'T TOUCH ANYTHING BELOW THIS LINE
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+
+ELEMENTARY_FUNCTIONS_DIR = $(CSRCDIR)/src/elementaryFunctions
+CFLAGS_ELEMENTARY_FUNCTIONS = -I $(ELEMENTARY_FUNCTIONS_DIR)/includes -I $(ELEMENTARY_FUNCTIONS_DIR)/interfaces
+
+
+EXEFILE = $(SCI2CDIR)/$(EXEFILENAME)
+
+objects = \
+ $(OBJDIR)/doubleComplex.o \
+ $(OBJDIR)/floatComplex.o \
+ $(OBJDIR)/RealToComplex.o \
+ $(OBJDIR)/conj.o \
+ $(OBJDIR)/disp.o \
+ $(OBJDIR)/ones.o \
+ $(OBJDIR)/zeros.o \
+ $(OBJDIR)/OpApex.o \
+ $(OBJDIR)/OpColon.o \
+ $(OBJDIR)/OpDotStar.o \
+ $(OBJDIR)/OpDotHat.o \
+ $(OBJDIR)/OpDotSlash.o \
+ $(OBJDIR)/OpEqual.o \
+ $(OBJDIR)/OpPlus.o \
+ $(OBJDIR)/OpMinus.o \
+ $(OBJDIR)/OpStar.o \
+ $(OBJDIR)/OpIns.o \
+ $(OBJDIR)/OpExt.o \
+ $(OBJDIR)/OpRc.o \
+ $(OBJDIR)/OpCc.o \
+ $(OBJDIR)/cos.o \
+ $(OBJDIR)/cosh.o \
+ $(OBJDIR)/sin.o \
+ $(OBJDIR)/sinh.o \
+ $(OBJDIR)/FileManagement.o \
+ $(OBJDIR)/OpLogLt.o \
+ $(OBJDIR)/OpLogGt.o \
+ $(OBJDIR)/OpLogGe.o \
+ $(OBJDIR)/OpLogLe.o \
+ $(OBJDIR)/OpLogEq.o \
+ $(OBJDIR)/Find.o \
+ $(OBJDIR)/ConvertPrecision.o \
+ $(OBJDIR)/SCI2Cfft.o \
+ $(OBJDIR)/SCI2Cconvol.o \
+ $(OBJDIR)/ssqrts.o \
+ $(OBJDIR)/dsqrts.o \
+ $(OBJDIR)/csqrts.o \
+ $(OBJDIR)/zsqrts.o \
+ $(OBJDIR)/ssqrta.o \
+ $(OBJDIR)/dsqrta.o \
+ $(OBJDIR)/csqrta.o \
+ $(OBJDIR)/zsqrta.o
+
+# ---------------
+# --- TARGETS ---
+# ---------------
+compileexecute: $(objects)
+ @echo " "
+ @echo "============================"
+ @echo "Generation of the executable"
+ @echo "============================"
+ $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) $(objects) $(SCI2CDIR)/*.c -o $(EXEFILE)
+ @echo " "
+ @echo "=============="
+ @echo "Executing code"
+ @echo "=============="
+ $(EXEFILE)
+
+clean:
+ @echo " "
+ @echo "============================="
+ @echo "Removing only exe + obj files"
+ @echo "============================="
+ rm -rf $(EXEFILE)
+ rm -rf $(objects)
+ @echo " "
+
+cleanexe:
+ @echo " "
+ @echo "=========================="
+ @echo "Removing only the exe file"
+ @echo "=========================="
+ rm -rf $(EXEFILE)
+ @echo " "
+
+$(OBJDIR)/doubleComplex.o: $(CSRCDIR)/doubleComplex.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/doubleComplex.c -o $(OBJDIR)/doubleComplex.o
+
+$(OBJDIR)/floatComplex.o: $(CSRCDIR)/floatComplex.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/floatComplex.c -o $(OBJDIR)/floatComplex.o
+
+$(OBJDIR)/RealToComplex.o: $(CSRCDIR)/RealToComplex.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/RealToComplex.c -o $(OBJDIR)/RealToComplex.o
+
+$(OBJDIR)/conj.o: $(CSRCDIR)/conj.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/conj.c -o $(OBJDIR)/conj.o
+
+$(OBJDIR)/disp.o: $(CSRCDIR)/disp.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/disp.c -o $(OBJDIR)/disp.o
+
+$(OBJDIR)/zeros.o: $(CSRCDIR)/zeros.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/zeros.c -o $(OBJDIR)/zeros.o
+
+$(OBJDIR)/ones.o: $(CSRCDIR)/ones.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/ones.c -o $(OBJDIR)/ones.o
+
+$(OBJDIR)/OpApex.o: $(CSRCDIR)/OpApex.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpApex.c -o $(OBJDIR)/OpApex.o
+
+$(OBJDIR)/OpColon.o: $(CSRCDIR)/OpColon.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpColon.c -o $(OBJDIR)/OpColon.o
+
+$(OBJDIR)/OpDotStar.o: $(CSRCDIR)/OpDotStar.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpDotStar.c -o $(OBJDIR)/OpDotStar.o
+
+$(OBJDIR)/OpDotHat.o: $(CSRCDIR)/OpDotHat.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpDotHat.c -o $(OBJDIR)/OpDotHat.o
+
+$(OBJDIR)/OpDotSlash.o: $(CSRCDIR)/OpDotSlash.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpDotSlash.c -o $(OBJDIR)/OpDotSlash.o
+
+$(OBJDIR)/OpEqual.o: $(CSRCDIR)/OpEqual.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpEqual.c -o $(OBJDIR)/OpEqual.o
+
+$(OBJDIR)/OpPlus.o: $(CSRCDIR)/OpPlus.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpPlus.c -o $(OBJDIR)/OpPlus.o
+
+$(OBJDIR)/OpMinus.o: $(CSRCDIR)/OpMinus.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpMinus.c -o $(OBJDIR)/OpMinus.o
+
+$(OBJDIR)/OpStar.o: $(CSRCDIR)/OpStar.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpStar.c -o $(OBJDIR)/OpStar.o
+
+$(OBJDIR)/OpIns.o: $(CSRCDIR)/OpIns.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpIns.c -o $(OBJDIR)/OpIns.o
+
+$(OBJDIR)/OpExt.o: $(CSRCDIR)/OpExt.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpExt.c -o $(OBJDIR)/OpExt.o
+
+$(OBJDIR)/OpRc.o: $(CSRCDIR)/OpRc.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpRc.c -o $(OBJDIR)/OpRc.o
+
+$(OBJDIR)/OpCc.o: $(CSRCDIR)/OpCc.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpCc.c -o $(OBJDIR)/OpCc.o
+
+$(OBJDIR)/cos.o: $(CSRCDIR)/cos.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/cos.c -o $(OBJDIR)/cos.o
+
+$(OBJDIR)/cosh.o: $(CSRCDIR)/cosh.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/cosh.c -o $(OBJDIR)/cosh.o
+
+$(OBJDIR)/sin.o: $(CSRCDIR)/sin.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/sin.c -o $(OBJDIR)/sin.o
+
+$(OBJDIR)/sinh.o: $(CSRCDIR)/sinh.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/sinh.c -o $(OBJDIR)/sinh.o
+
+$(OBJDIR)/FileManagement.o: $(CSRCDIR)/FileManagement.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/FileManagement.c -o $(OBJDIR)/FileManagement.o
+
+$(OBJDIR)/OpLogLt.o: $(CSRCDIR)/OpLogLt.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpLogLt.c -o $(OBJDIR)/OpLogLt.o
+
+$(OBJDIR)/OpLogGt.o: $(CSRCDIR)/OpLogGt.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpLogGt.c -o $(OBJDIR)/OpLogGt.o
+
+$(OBJDIR)/OpLogLe.o: $(CSRCDIR)/OpLogLe.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpLogLe.c -o $(OBJDIR)/OpLogLe.o
+
+$(OBJDIR)/OpLogGe.o: $(CSRCDIR)/OpLogGe.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpLogGe.c -o $(OBJDIR)/OpLogGe.o
+
+$(OBJDIR)/OpLogEq.o: $(CSRCDIR)/OpLogEq.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/OpLogEq.c -o $(OBJDIR)/OpLogEq.o
+
+$(OBJDIR)/Find.o: $(CSRCDIR)/Find.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/Find.c -o $(OBJDIR)/Find.o
+
+$(OBJDIR)/ConvertPrecision.o: $(CSRCDIR)/ConvertPrecision.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/ConvertPrecision.c -o $(OBJDIR)/ConvertPrecision.o
+
+$(OBJDIR)/SCI2Cfft.o: $(CSRCDIR)/SCI2Cfft.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/SCI2Cfft.c -o $(OBJDIR)/SCI2Cfft.o
+
+$(OBJDIR)/SCI2Cconvol.o: $(CSRCDIR)/SCI2Cconvol.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCDIR)/SCI2Cconvol.c -o $(OBJDIR)/SCI2Cconvol.o
+
+$(OBJDIR)/sqrt.o: $(CSRCELEMFUNDIR)/sqrt/*sqrt*.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) -c $(CSRCELEMFUNDIR)/sqrt/*sqrt*.c -o $(OBJDIR)/sqrt.o
+
+$(OBJDIR)/ssqrts.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/ssqrts.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/ssqrts.c -o $(OBJDIR)/ssqrts.o
+
+$(OBJDIR)/dsqrts.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/dsqrts.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/dsqrts.c -o $(OBJDIR)/dsqrts.o
+
+$(OBJDIR)/csqrts.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/csqrts.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/csqrts.c -o $(OBJDIR)/csqrts.o
+
+$(OBJDIR)/zsqrts.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/zsqrts.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/zsqrts.c -o $(OBJDIR)/zsqrts.o
+
+$(OBJDIR)/ssqrta.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/ssqrta.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/ssqrta.c -o $(OBJDIR)/ssqrta.o
+
+$(OBJDIR)/dsqrta.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/dsqrta.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/dsqrta.c -o $(OBJDIR)/dsqrta.o
+
+$(OBJDIR)/csqrta.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/csqrta.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/csqrta.c -o $(OBJDIR)/csqrta.o
+
+$(OBJDIR)/zsqrta.o: $(CSRCDIR)/src/elementaryFunctions/sqrt/zsqrta.c $(HSRCDIR)/*.h
+ $(CC) $(CFLAGS) $(CFLAGS_ELEMENTARY_FUNCTIONS) -c $(ELEMENTARY_FUNCTIONS_DIR)/sqrt/zsqrta.c -o $(OBJDIR)/zsqrta.o
diff --git a/src/Scilab2C/Scilab2C/CCodeGeneration/SCI2CMakefileTemplate.bkp2 b/src/Scilab2C/Scilab2C/CCodeGeneration/SCI2CMakefileTemplate.bkp2
new file mode 100644
index 00000000..c6ba2a9c
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CCodeGeneration/SCI2CMakefileTemplate.bkp2
@@ -0,0 +1,126 @@
+
+# --- C COMPILER ---
+CC = gcc
+CFLAGS = -Wall -pedantic -O3 -I $(HSRCDIR) -I $(ISRCDIR)
+# ---------------------------
+# --- END USER PARAMETERS ---
+# ---------------------------
+
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# DON'T TOUCH ANYTHING BELOW THIS LINE
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+
+EXEFILE = $(SCI2CDIR)/$(EXEFILENAME)
+
+SWSRCS = \
+ $(CSRCDIR)/doubleComplex.c \
+ $(CSRCDIR)/floatComplex.c \
+ $(CSRCDIR)/RealToComplex.c \
+ $(CSRCDIR)/conj.c \
+ $(CSRCDIR)/disp.c \
+ $(CSRCDIR)/ones.c \
+ $(CSRCDIR)/zeros.c \
+ $(CSRCDIR)/OpApex.c \
+ $(CSRCDIR)/OpColon.c \
+ $(CSRCDIR)/OpDotStar.c \
+ $(CSRCDIR)/OpDotHat.c \
+ $(CSRCDIR)/OpDotSlash.c \
+ $(CSRCDIR)/OpEqual.c \
+ $(CSRCDIR)/OpPlus.c \
+ $(CSRCDIR)/OpMinus.c \
+ $(CSRCDIR)/OpStar.c \
+ $(CSRCDIR)/OpIns.c \
+ $(CSRCDIR)/OpExt.c \
+ $(CSRCDIR)/OpRc.c \
+ $(CSRCDIR)/OpCc.c \
+ $(CSRCDIR)/cos.c \
+ $(CSRCDIR)/cosh.c \
+ $(CSRCDIR)/sin.c \
+ $(CSRCDIR)/sinh.c \
+ $(CSRCDIR)/FileManagement.c \
+ $(CSRCDIR)/OpLogLt.c \
+ $(CSRCDIR)/OpLogGt.c \
+ $(CSRCDIR)/OpLogGe.c \
+ $(CSRCDIR)/OpLogLe.c \
+ $(CSRCDIR)/OpLogEq.c \
+ $(CSRCDIR)/OpLogOr.c \
+ $(CSRCDIR)/OpLogAnd.c \
+ $(CSRCDIR)/Find.c \
+ $(CSRCDIR)/ConvertPrecision.c \
+ $(CSRCDIR)/SCI2Cfft.c \
+ $(CSRCDIR)/SCI2Cconvol.c \
+ $(CSRCDIR)/ssqrts.c \
+ $(CSRCDIR)/dsqrts.c \
+ $(CSRCDIR)/csqrts.c \
+ $(CSRCDIR)/zsqrts.c \
+ $(CSRCDIR)/ssqrta.c \
+ $(CSRCDIR)/dsqrta.c \
+ $(CSRCDIR)/csqrta.c \
+ $(CSRCDIR)/zsqrta.c \
+ $(CSRCDIR)/sabss.c \
+ $(CSRCDIR)/dabss.c \
+ $(CSRCDIR)/cabss.c \
+ $(CSRCDIR)/zabss.c \
+ $(CSRCDIR)/sabsa.c \
+ $(CSRCDIR)/dabsa.c \
+ $(CSRCDIR)/cabsa.c \
+ $(CSRCDIR)/zabsa.c \
+ $(CSRCDIR)/sexps.c \
+ $(CSRCDIR)/dexps.c \
+ $(CSRCDIR)/cexps.c \
+ $(CSRCDIR)/zexps.c \
+ $(CSRCDIR)/sexpa.c \
+ $(CSRCDIR)/dexpa.c \
+ $(CSRCDIR)/cexpa.c \
+ $(CSRCDIR)/zexpa.c
+
+SWOBJS = $(SWSRCS:.c=.o)
+
+# ---------------
+# --- TARGETS ---
+# ---------------
+compileexecute: $(SWOBJS)
+ @echo " "
+ @echo "============================"
+ @echo "Generation of the executable"
+ @echo "============================"
+ $(CC) $(CFLAGS) $(SWOBJS) $(SCI2CDIR)/*.c -o $(EXEFILE)
+ @echo " "
+ @echo "=============="
+ @echo "Executing code"
+ @echo "=============="
+ $(EXEFILE)
+
+clean:
+ @echo " "
+ @echo "============================="
+ @echo "Removing only exe + obj files"
+ @echo "============================="
+ rm -rf $(EXEFILE)
+ rm -rf $(SWOBJS)
+ @echo " "
+
+cleanexe:
+ @echo " "
+ @echo "=========================="
+ @echo "Removing only the exe file"
+ @echo "=========================="
+ rm -rf $(EXEFILE)
+ @echo " "
+
+# how to compile object code .o from C source files .c (general rule)
+# space between -o and filename for SUN make
+.c.o:
+ $(CC) $(CFLAGS) -c -o $(@) $<
+
+# Make object code from source
+swobjs: $(SWOBJS)
+
diff --git a/src/Scilab2C/Scilab2C/CCodeGeneration/SCI2CMakefileTemplate.rc b/src/Scilab2C/Scilab2C/CCodeGeneration/SCI2CMakefileTemplate.rc
index d56a51cd..abd20375 100644
--- a/src/Scilab2C/Scilab2C/CCodeGeneration/SCI2CMakefileTemplate.rc
+++ b/src/Scilab2C/Scilab2C/CCodeGeneration/SCI2CMakefileTemplate.rc
@@ -1,70 +1,70 @@
-
-# --- C COMPILER ---
-CC = gcc
-CFLAGS = -Wall -pedantic -O3 -I $(HSRCDIR) -I $(ISRCDIR)
-# ---------------------------
-# --- END USER PARAMETERS ---
-# ---------------------------
-
-# ------------------------------------
-# ------------------------------------
-# ------------------------------------
-# ------------------------------------
-# ------------------------------------
-# DON'T TOUCH ANYTHING BELOW THIS LINE
-# ------------------------------------
-# ------------------------------------
-# ------------------------------------
-# ------------------------------------
-# ------------------------------------
-
-EXEFILE = $(SCI2CDIR)/$(EXEFILENAME)
-
-SWSRCS = \
- $(CSRCDIR)/doubleComplex.c \
- $(CSRCDIR)/floatComplex.c \
- $(CSRCDIR)/RealToComplex.c \
- $(CSRCDIR)/conj.c \
- $(CSRCDIR)/disp.c \
- $(CSRCDIR)/ones.c \
- $(CSRCDIR)/zeros.c \
- $(CSRCDIR)/OpApex.c \
- $(CSRCDIR)/OpColon.c \
- $(CSRCDIR)/OpDotStar.c \
- $(CSRCDIR)/OpDotHat.c \
- $(CSRCDIR)/OpDotSlash.c \
- $(CSRCDIR)/OpEqual.c \
- $(CSRCDIR)/OpPlus.c \
- $(CSRCDIR)/OpMinus.c \
- $(CSRCDIR)/OpStar.c \
- $(CSRCDIR)/OpIns.c \
- $(CSRCDIR)/OpExt.c \
- $(CSRCDIR)/OpRc.c \
- $(CSRCDIR)/OpCc.c \
- $(CSRCDIR)/cos.c \
- $(CSRCDIR)/cosh.c \
- $(CSRCDIR)/sin.c \
- $(CSRCDIR)/sinh.c \
- $(CSRCDIR)/FileManagement.c \
- $(CSRCDIR)/OpLogLt.c \
- $(CSRCDIR)/OpLogGt.c \
- $(CSRCDIR)/OpLogGe.c \
- $(CSRCDIR)/OpLogLe.c \
- $(CSRCDIR)/OpLogEq.c \
- $(CSRCDIR)/OpLogOr.c \
- $(CSRCDIR)/OpLogAnd.c \
- $(CSRCDIR)/Find.c \
- $(CSRCDIR)/ConvertPrecision.c \
- $(CSRCDIR)/SCI2Cfft.c \
- $(CSRCDIR)/SCI2Cconvol.c \
- $(CSRCDIR)/ssqrts.c \
- $(CSRCDIR)/dsqrts.c \
- $(CSRCDIR)/csqrts.c \
- $(CSRCDIR)/zsqrts.c \
- $(CSRCDIR)/ssqrta.c \
- $(CSRCDIR)/dsqrta.c \
- $(CSRCDIR)/csqrta.c \
- $(CSRCDIR)/zsqrta.c \
+
+# --- C COMPILER ---
+CC = gcc
+CFLAGS = -Wall -pedantic -O3 -I $(HSRCDIR) -I $(ISRCDIR)
+# ---------------------------
+# --- END USER PARAMETERS ---
+# ---------------------------
+
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# DON'T TOUCH ANYTHING BELOW THIS LINE
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+# ------------------------------------
+
+EXEFILE = $(SCI2CDIR)/$(EXEFILENAME)
+
+SWSRCS = \
+ $(CSRCDIR)/doubleComplex.c \
+ $(CSRCDIR)/floatComplex.c \
+ $(CSRCDIR)/RealToComplex.c \
+ $(CSRCDIR)/conj.c \
+ $(CSRCDIR)/disp.c \
+ $(CSRCDIR)/ones.c \
+ $(CSRCDIR)/zeros.c \
+ $(CSRCDIR)/OpApex.c \
+ $(CSRCDIR)/OpColon.c \
+ $(CSRCDIR)/OpDotStar.c \
+ $(CSRCDIR)/OpDotHat.c \
+ $(CSRCDIR)/OpDotSlash.c \
+ $(CSRCDIR)/OpEqual.c \
+ $(CSRCDIR)/OpPlus.c \
+ $(CSRCDIR)/OpMinus.c \
+ $(CSRCDIR)/OpStar.c \
+ $(CSRCDIR)/OpIns.c \
+ $(CSRCDIR)/OpExt.c \
+ $(CSRCDIR)/OpRc.c \
+ $(CSRCDIR)/OpCc.c \
+ $(CSRCDIR)/cos.c \
+ $(CSRCDIR)/cosh.c \
+ $(CSRCDIR)/sin.c \
+ $(CSRCDIR)/sinh.c \
+ $(CSRCDIR)/FileManagement.c \
+ $(CSRCDIR)/OpLogLt.c \
+ $(CSRCDIR)/OpLogGt.c \
+ $(CSRCDIR)/OpLogGe.c \
+ $(CSRCDIR)/OpLogLe.c \
+ $(CSRCDIR)/OpLogEq.c \
+ $(CSRCDIR)/OpLogOr.c \
+ $(CSRCDIR)/OpLogAnd.c \
+ $(CSRCDIR)/Find.c \
+ $(CSRCDIR)/ConvertPrecision.c \
+ $(CSRCDIR)/SCI2Cfft.c \
+ $(CSRCDIR)/SCI2Cconvol.c \
+ $(CSRCDIR)/ssqrts.c \
+ $(CSRCDIR)/dsqrts.c \
+ $(CSRCDIR)/csqrts.c \
+ $(CSRCDIR)/zsqrts.c \
+ $(CSRCDIR)/ssqrta.c \
+ $(CSRCDIR)/dsqrta.c \
+ $(CSRCDIR)/csqrta.c \
+ $(CSRCDIR)/zsqrta.c \
$(CSRCDIR)/sabss.c \
$(CSRCDIR)/dabss.c \
$(CSRCDIR)/cabss.c \
@@ -73,6 +73,14 @@ SWSRCS = \
$(CSRCDIR)/dabsa.c \
$(CSRCDIR)/cabsa.c \
$(CSRCDIR)/zabsa.c \
+ $(CSRCDIR)/smeana.c \
+ $(CSRCDIR)/dmeana.c \
+ $(CSRCDIR)/cmeana.c \
+ $(CSRCDIR)/zmeana.c \
+ $(CSRCDIR)/ssuma.c \
+ $(CSRCDIR)/dsuma.c \
+ $(CSRCDIR)/csuma.c \
+ $(CSRCDIR)/zsuma.c \
$(CSRCDIR)/sexps.c \
$(CSRCDIR)/dexps.c \
$(CSRCDIR)/cexps.c \
@@ -80,47 +88,72 @@ SWSRCS = \
$(CSRCDIR)/sexpa.c \
$(CSRCDIR)/dexpa.c \
$(CSRCDIR)/cexpa.c \
- $(CSRCDIR)/zexpa.c
-
+ $(CSRCDIR)/zexpa.c \
+ $(CSRCDIR)/slog10s.c \
+ $(CSRCDIR)/dlog10s.c \
+ $(CSRCDIR)/slog10a.c \
+ $(CSRCDIR)/dlog10a.c \
+ $(CSRCDIR)/slogs.c \
+ $(CSRCDIR)/dlogs.c \
+ $(CSRCDIR)/sloga.c \
+ $(CSRCDIR)/dloga.c \
+ $(CSRCDIR)/slog1ps.c \
+ $(CSRCDIR)/dlog1ps.c \
+ $(CSRCDIR)/slog1pa.c \
+ $(CSRCDIR)/dlog1pa.c \
+
+# $(CSRCDIR)/clog10s.c \
+# $(CSRCDIR)/zlog10s.c \
+# $(CSRCDIR)/clog10a.c \
+# $(CSRCDIR)/zlog10a.c \
+# $(CSRCDIR)/cloga.c \
+# $(CSRCDIR)/zloga.c \
+# $(CSRCDIR)/clogs.c \
+# $(CSRCDIR)/zlogs.c \
+# $(CSRCDIR)/clog1ps.c \
+# $(CSRCDIR)/zlog1ps.c \
+# $(CSRCDIR)/clog1pa.c \
+# $(CSRCDIR)/zlog1pa.c
+
SWOBJS = $(SWSRCS:.c=.o)
-
-# ---------------
-# --- TARGETS ---
-# ---------------
-compileexecute: $(SWOBJS)
- @echo " "
- @echo "============================"
- @echo "Generation of the executable"
- @echo "============================"
- $(CC) $(CFLAGS) $(SWOBJS) $(SCI2CDIR)/*.c -o $(EXEFILE)
- @echo " "
- @echo "=============="
- @echo "Executing code"
- @echo "=============="
- $(EXEFILE)
-
-clean:
- @echo " "
- @echo "============================="
- @echo "Removing only exe + obj files"
- @echo "============================="
- rm -rf $(EXEFILE)
- rm -rf $(SWOBJS)
- @echo " "
-
-cleanexe:
- @echo " "
- @echo "=========================="
- @echo "Removing only the exe file"
- @echo "=========================="
- rm -rf $(EXEFILE)
- @echo " "
-
+
+# ---------------
+# --- TARGETS ---
+# ---------------
+compileexecute: $(SWOBJS)
+ @echo " "
+ @echo "============================"
+ @echo "Generation of the executable"
+ @echo "============================"
+ $(CC) $(CFLAGS) $(SWOBJS) $(SCI2CDIR)/*.c -o $(EXEFILE)
+ @echo " "
+ @echo "=============="
+ @echo "Executing code"
+ @echo "=============="
+ $(EXEFILE)
+
+clean:
+ @echo " "
+ @echo "============================="
+ @echo "Removing only exe + obj files"
+ @echo "============================="
+ rm -rf $(EXEFILE)
+ rm -rf $(SWOBJS)
+ @echo " "
+
+cleanexe:
+ @echo " "
+ @echo "=========================="
+ @echo "Removing only the exe file"
+ @echo "=========================="
+ rm -rf $(EXEFILE)
+ @echo " "
+
# how to compile object code .o from C source files .c (general rule)
# space between -o and filename for SUN make
.c.o:
- $(CC) $(CFLAGS) -c -o $(@) $<
-
+ $(CC) $(CFLAGS) -c -o $(@) $<
+
# Make object code from source
swobjs: $(SWOBJS)
-
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/ConvertPrecision.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/ConvertPrecision.c
new file mode 100644
index 00000000..ee3ecc3a
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/ConvertPrecision.c
@@ -0,0 +1,41 @@
+/*
+** -*- C -*-
+**
+** ConvertPrecision.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+** Copyright Raffaele Nutricato 2008
+*/
+
+
+double s0doubled0(float in)
+{
+ double out;
+ out = (double) in;
+ return (out);
+}
+
+void s2doubled2(float* in, int* inSize, double* out)
+{
+ int i;
+ for (i=0; i<inSize[0]*inSize[1]; i++)
+ {
+ out[i] = (double) in[i];
+ }
+}
+
+float d0floats0(double in)
+{
+ float out;
+ out = (float) in;
+ return (out);
+}
+
+void d2floats2(double* in, int* inSize, float* out)
+{
+ int i;
+ for (i=0; i<inSize[0]*inSize[1]; i++)
+ {
+ out[i] = (float) in[i];
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/FileManagement.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/FileManagement.c
new file mode 100644
index 00000000..427b3551
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/FileManagement.c
@@ -0,0 +1,12 @@
+/*
+** -*- C -*-
+**
+** FileManagement.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Rubby Nutricato 2007
+*/
+
+#include "FileManagement.h"
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/Find.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/Find.c
new file mode 100644
index 00000000..e1a3aab6
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/Find.c
@@ -0,0 +1,7 @@
+/* #include <math.h>*/
+/* Author: Raffaele Nutricato */
+/* raffaele.nutricato@tiscali.it */
+
+#include "Find.h"
+
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpApex.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpApex.c
new file mode 100644
index 00000000..fa0630e9
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpApex.c
@@ -0,0 +1,82 @@
+/* #include <math.h>*/
+#include "OpApex.h"
+
+float sOpApexs(float x) {
+ return (x);
+}
+
+double dOpApexs(double x) {
+ return (x);
+}
+
+
+void sOpApexa(float* x, int xrows,int xcols, float* y)
+{
+ int i = 0;
+ int j = 0;
+ for (i = 0; i < xrows; i++)
+ {
+ for (j = 0; j < xcols; j++)
+ {
+ y[j*xrows+i] = x[i*xcols+j];
+ }
+ }
+}
+
+void dOpApexa(double* x, int xrows,int xcols, double* y)
+{
+ int i = 0;
+ int j = 0;
+ for (i = 0; i < xrows; i++)
+ {
+ for (j = 0; j < xcols; j++)
+ {
+ y[j*xrows+i] = x[i*xcols+j];
+ }
+ }
+}
+
+
+floatComplex c0OpApexc0(floatComplex x)
+{
+ return (c0conjc0(x));
+}
+
+void c2OpApexc2(floatComplex* x, int* xSize, floatComplex* y)
+{
+ int i = 0;
+ int j = 0;
+ int xrows = xSize[0];
+ int xcols = xSize[1];
+
+ for (i = 0; i < xrows; i++)
+ {
+ for (j = 0; j < xcols; j++)
+ {
+ y[j*xrows+i] = c0conjc0(x[i*xcols+j]);
+ }
+ }
+}
+
+doubleComplex z0OpApexz0(doubleComplex x)
+{
+ return (z0conjz0(x));
+}
+
+
+void z2OpApexz2(doubleComplex* x, int* xSize, doubleComplex* y)
+{
+ int i = 0;
+ int j = 0;
+ int xrows = xSize[0];
+ int xcols = xSize[1];
+
+ for (i = 0; i < xrows; i++)
+ {
+ for (j = 0; j < xcols; j++)
+ {
+ y[j*xrows+i] = z0conjz0(x[i*xcols+j]);
+ /*~ y[j*xrows+i] = x[i*xcols+j];*/
+ }
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpCc.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpCc.c
new file mode 100644
index 00000000..40ffed28
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpCc.c
@@ -0,0 +1,211 @@
+/*
+** -*- C -*-
+**
+** OpCc.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpCc.h"
+
+void d0d0OpCcd2(double in1, double in2, double* out)
+{
+ out[0] = in1;
+ out[1] = in2;
+}
+
+void d2d0OpCcd2(double* in1, int* in1Size, double in2, double* out)
+{
+ int i;
+ for (i = 0; i < in1Size[0]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[0]] = in2;
+}
+
+void d0d2OpCcd2(double in2, double* in1, int* in1Size, double* out)
+{
+ int i;
+ for (i = 0; i < in1Size[0]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[0]] = in2;
+}
+
+
+void d2d2OpCcd2(double* in1, int* in1Size, double* in2, int* in2Size, double* out)
+{
+ /* I assume that number of columns of in1 and in2 are the same. */
+ int cntrow;
+ int cntcol;
+
+ for (cntrow = 0; cntrow < in1Size[0]; cntrow++)
+ {
+ for (cntcol = 0; cntcol < in1Size[1]; cntcol++)
+ {
+ out[cntrow*in1Size[1]+cntcol] = in1[cntrow*in1Size[1]+cntcol];
+ }
+ }
+
+ for (cntrow = 0; cntrow < in2Size[0]; cntrow++)
+ {
+ for (cntcol = 0; cntcol < in1Size[1]; cntcol++)
+ {
+ out[(in1Size[0]+cntrow)*in1Size[1]+cntcol] = in2[cntrow*in1Size[1]+cntcol];
+ }
+ }
+}
+
+void s0s0OpCcs2(float in1, float in2, float* out)
+{
+ out[0] = in1;
+ out[1] = in2;
+}
+
+void s2s0OpCcs2(float* in1, int* in1Size, float in2, float* out)
+{
+ int i;
+ for (i = 0; i < in1Size[0]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[0]] = in2;
+}
+
+void s0s2OpCcs2(float in2, float* in1, int* in1Size, float* out)
+{
+ int i;
+ for (i = 0; i < in1Size[0]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[0]] = in2;
+}
+
+
+void s2s2OpCcs2(float* in1, int* in1Size, float* in2, int* in2Size, float* out)
+{
+ /* I assume that number of columns of in1 and in2 are the same. */
+ int cntrow;
+ int cntcol;
+
+ for (cntrow = 0; cntrow < in1Size[0]; cntrow++)
+ {
+ for (cntcol = 0; cntcol < in1Size[1]; cntcol++)
+ {
+ out[cntrow*in1Size[1]+cntcol] = in1[cntrow*in1Size[1]+cntcol];
+ }
+ }
+
+ for (cntrow = 0; cntrow < in2Size[0]; cntrow++)
+ {
+ for (cntcol = 0; cntcol < in1Size[1]; cntcol++)
+ {
+ out[(in1Size[0]+cntrow)*in1Size[1]+cntcol] = in2[cntrow*in1Size[1]+cntcol];
+ }
+ }
+}
+
+void z0z0OpCcz2(doubleComplex in1, doubleComplex in2, doubleComplex* out)
+{
+ out[0] = in1;
+ out[1] = in2;
+}
+
+void z2z0OpCcz2(doubleComplex* in1, int* in1Size, doubleComplex in2, doubleComplex* out)
+{
+ int i;
+ for (i = 0; i < in1Size[0]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[0]] = in2;
+}
+
+void z0z2OpCcz2(doubleComplex in2, doubleComplex* in1, int* in1Size, doubleComplex* out)
+{
+ int i;
+ for (i = 0; i < in1Size[0]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[0]] = in2;
+}
+
+
+void z2z2OpCcz2(doubleComplex* in1, int* in1Size, doubleComplex* in2, int* in2Size, doubleComplex* out)
+{
+ /* I assume that number of columns of in1 and in2 are the same. */
+ int cntrow;
+ int cntcol;
+
+ for (cntrow = 0; cntrow < in1Size[0]; cntrow++)
+ {
+ for (cntcol = 0; cntcol < in1Size[1]; cntcol++)
+ {
+ out[cntrow*in1Size[1]+cntcol] = in1[cntrow*in1Size[1]+cntcol];
+ }
+ }
+
+ for (cntrow = 0; cntrow < in2Size[0]; cntrow++)
+ {
+ for (cntcol = 0; cntcol < in1Size[1]; cntcol++)
+ {
+ out[(in1Size[0]+cntrow)*in1Size[1]+cntcol] = in2[cntrow*in1Size[1]+cntcol];
+ }
+ }
+}
+
+void c0c0OpCcc2(floatComplex in1, floatComplex in2, floatComplex* out)
+{
+ out[0] = in1;
+ out[1] = in2;
+}
+
+void c2c0OpCcc2(floatComplex* in1, int* in1Size, floatComplex in2, floatComplex* out)
+{
+ int i;
+ for (i = 0; i < in1Size[0]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[0]] = in2;
+}
+
+void c0c2OpCcc2(floatComplex in2, floatComplex* in1, int* in1Size, floatComplex* out)
+{
+ int i;
+ for (i = 0; i < in1Size[0]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[0]] = in2;
+}
+
+
+void c2c2OpCcc2(floatComplex* in1, int* in1Size, floatComplex* in2, int* in2Size, floatComplex* out)
+{
+ /* I assume that number of columns of in1 and in2 are the same. */
+ int cntrow;
+ int cntcol;
+
+ for (cntrow = 0; cntrow < in1Size[0]; cntrow++)
+ {
+ for (cntcol = 0; cntcol < in1Size[1]; cntcol++)
+ {
+ out[cntrow*in1Size[1]+cntcol] = in1[cntrow*in1Size[1]+cntcol];
+ }
+ }
+
+ for (cntrow = 0; cntrow < in2Size[0]; cntrow++)
+ {
+ for (cntcol = 0; cntcol < in1Size[1]; cntcol++)
+ {
+ out[(in1Size[0]+cntrow)*in1Size[1]+cntcol] = in2[cntrow*in1Size[1]+cntcol];
+ }
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpColon.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpColon.c
new file mode 100644
index 00000000..76948ec0
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpColon.c
@@ -0,0 +1,303 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Copyright Raffaele Nutricato
+*/
+
+#include "OpColon.h"
+
+
+double d0d0OpColond0(double in1, double in2)
+{
+ double i;
+ double out = 0;
+ int j=0;
+ for (i = in1 ; i <= in2 ; i+=1)
+ {
+ out = i;
+ j++;
+ }
+ return out;
+}
+
+float c0c0OpColons0(floatComplex in1, floatComplex in2)
+{
+ float i = 0;
+ float out = 0;
+ int j=0;
+ for (i = creals(in1) ; i <= creals(in2) ; i+=1)
+ {
+ out = i;
+ j++;
+ }
+ return out;
+}
+
+double z0z0OpColond0(doubleComplex in1, doubleComplex in2)
+{
+ int i = 0;
+ int j = 0;
+ double out = 0;
+ for (i = ((int) zreals(in1)) ; i <= ((int) zreals(in2)) ; i++)
+ {
+ out = i;
+ j++;
+ }
+ return out;
+}
+
+void s0s0OpColons2(float in1, float in2, float* out)
+{
+ float i;
+ int j=0;
+ for (i = in1 ; i <= in2 ; i+=1)
+ {
+ out[j] = i;
+ j++;
+ }
+}
+
+void d0d0OpColond2(double in1, double in2, double* out)
+{
+ double i;
+ int j=0;
+ for (i = in1 ; i <= in2 ; i+=1)
+ {
+ out[j] = i;
+ j++;
+ }
+}
+
+void c0c0OpColons2(floatComplex in1, floatComplex in2, float* out)
+{
+ float i = 0;
+ int j=0;
+ for (i = creals(in1) ; i <= creals(in2) ; i+=1)
+ {
+ out[j] = i;
+ j++;
+ }
+}
+
+void z0z0OpColond2(doubleComplex in1, doubleComplex in2, double* out)
+{
+ int i = 0;
+ int j = 0;
+ for (i = ((int) zreals(in1)) ; i <= ((int) zreals(in2)) ; i++)
+ {
+ out[j] = i;
+ j++;
+ }
+}
+
+float s0s0s0OpColons0(float in1, float in2, float in3)
+{
+ float i;
+ float out=0;
+ int j=0;
+ if (in2 >= 0)
+ {
+ for (i = in1 ; i <= in3 ; i+=in2)
+ {
+ out = i;
+ j++;
+ }
+ }
+ else
+ {
+ for (i = in1 ; i >= in3 ; i+=in2)
+ {
+ out = i;
+ j++;
+ }
+ }
+ return (out);
+}
+
+double d0d0d0OpColond0(double in1, double in2, double in3)
+{
+ double i;
+ double out=0;
+ int j=0;
+ if (in2 >= 0)
+ {
+ for (i = in1 ; i <= in3 ; i+=in2)
+ {
+ out = i;
+ j++;
+ }
+ }
+ else
+ {
+ for (i = in1 ; i >= in3 ; i+=in2)
+ {
+ out = i;
+ j++;
+ }
+ }
+ return out;
+}
+
+float c0c0c0OpColons0(floatComplex in1, floatComplex in3, floatComplex in2)
+{
+ float i = 0;
+ float out = 0;
+ int j=0;
+
+ if (creals(in2) >= 0)
+ {
+ for (i = creals(in1) ; i <= creals(in2) ; i+=creals(in3))
+ {
+ out = i;
+ j++;
+ }
+ }
+ else
+ {
+ for (i = creals(in1) ; i >= creals(in2) ; i+=creals(in3))
+ {
+ out = i;
+ j++;
+ }
+ }
+
+ return out;
+}
+
+double z0z0z0OpColond0(doubleComplex in1, doubleComplex in3, doubleComplex in2)
+{
+ int i = 0;
+ int j = 0;
+ double out = 0;
+ if (zreals(in2) >= 0)
+ {
+ for (i = zreals(in1) ; i <= zreals(in2) ; i+=zreals(in3))
+ {
+ out = i;
+ j++;
+ }
+ }
+ else
+ {
+ for (i = zreals(in1) ; i >= zreals(in2) ; i+=zreals(in3))
+ {
+ out = i;
+ j++;
+ }
+ }
+ return out;
+}
+
+void s0s0s0OpColons2(float in1, float in2, float in3, float* out)
+{
+ float i;
+ int j=0;
+ if (in2 >= 0)
+ {
+ for (i = in1 ; i <= in3 ; i+=in2)
+ {
+ out[j] = i;
+ j++;
+ }
+ }
+ else
+ {
+ for (i = in1 ; i >= in3 ; i+=in2)
+ {
+ out[j] = i;
+ j++;
+ }
+ }
+}
+
+void d0d0d0OpColond2(double in1, double in2, double in3, double* out)
+{
+ double i;
+ int j=0;
+ if (in2 >= 0)
+ {
+ for (i = in1 ; i <= in3; i += in2)
+ {
+ out[j] = i;
+ //~ out[j] = i;
+ //~ out[j] = i;
+ //~ out[j] = i;
+ //~ out[j] = i;
+ //~ out[j] = i;
+ //~ out[j] = i;
+ //~ out[j] = i;
+ //~ printf("%f\n",out[j]);
+ //~ printf("%f\n",out[j]);
+ //~ printf("%f\n",out[j]);
+ //~ printf("%f\n",out[j]);
+ //~ printf("%f\n",out[j]);
+ //~ printf("%f\n",out[j]);
+ //~ printf("%f\n",out[j]);
+ //~ printf("%f\n",out[j]);
+ //~ printf("%f\n",out[j]);
+ //~ printf("%f\n",out[j]);
+ //~ printf("%f\n",out[j]);
+ //~ printf("%f\n",out[j]);
+ //~ out[j] = i;
+ //~ out[j] = i;
+ j++;
+ }
+ }
+ else
+ {
+ for (i = in1 ; i >= in3 ; i+=in2)
+ {
+ out[j] = i;
+ j++;
+ }
+ }
+}
+
+void c0c0c0OpColons2(floatComplex in1, floatComplex in3, floatComplex in2, float* out)
+{
+ float i = 0;
+ int j=0;
+
+ if (creals(in2) >= 0)
+ {
+ for (i = creals(in1) ; i <= creals(in2) ; i+=creals(in3))
+ {
+ out[j] = i;
+ j++;
+ }
+ }
+ else
+ {
+ for (i = creals(in1) ; i >= creals(in2) ; i+=creals(in3))
+ {
+ out[j] = i;
+ j++;
+ }
+ }
+}
+
+void z0z0z0OpColond2(doubleComplex in1, doubleComplex in3, doubleComplex in2, double* out)
+{
+ int i = 0;
+ int j = 0;
+
+ if (zreals(in2) >= 0)
+ {
+ for (i = zreals(in1) ; i <= zreals(in2) ; i+=zreals(in3))
+ {
+ out[j] = i;
+ j++;
+ }
+ }
+ else
+ {
+ for (i = zreals(in1) ; i >= zreals(in2) ; i+=zreals(in3))
+ {
+ out[j] = i;
+ j++;
+ }
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpDotHat.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpDotHat.c
new file mode 100644
index 00000000..02489934
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpDotHat.c
@@ -0,0 +1,76 @@
+/*
+** -*- C -*-
+**
+** OpDotSlash.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpDotHat.h"
+
+
+float s0s0OpDotHats0(float in1,float in2)
+{
+ return(pow(in1,in2));
+}
+
+void s0s2OpDotHats2(float in1,float* in2, int* in2Size, float* out)
+{
+ int i = 0;
+ for (i = 0; i < in2Size[0]*in2Size[1]; ++i)
+ {
+ out[i] = pow(in1,in2[i]);
+ }
+}
+
+void s2s0OpDotHats2(float* in1,int* in1Size, float in2, float* out)
+{
+ int i = 0;
+ for (i = 0; i < in1Size[0]*in1Size[1]; ++i)
+ {
+ out[i] = pow(in1[i],in2);
+ }
+}
+
+void s2s2OpDotHats2(float* in1,int* in1Size,float* in2, int* in2Size, float* out)
+{
+ int i = 0;
+ for (i = 0; i < in1Size[0]*in1Size[1]; ++i)
+ {
+ out[i] = pow(in1[i],in2[i]);
+ }
+}
+
+double d0d0OpDotHatd0(double in1,double in2)
+{
+ return(pow(in1,in2));
+}
+
+void d0d2OpDotHatd2(double in1,double* in2, int* in2Size, double* out)
+{
+ int i = 0;
+ for (i = 0; i < in2Size[0]*in2Size[1]; ++i)
+ {
+ out[i] = pow(in1,in2[i]);
+ }
+}
+
+void d2d0OpDotHatd2(double* in1,int* in1Size, double in2, double* out)
+{
+ int i = 0;
+ for (i = 0; i < in1Size[0]*in1Size[1]; ++i)
+ {
+ out[i] = pow(in1[i],in2);
+ }
+}
+
+void d2d2OpDotHatd2(double* in1,int* in1Size,double* in2, int* in2Size, double* out)
+{
+ int i = 0;
+ for (i = 0; i < in1Size[0]*in1Size[1]; ++i)
+ {
+ out[i] = pow(in1[i],in2[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpDotSlash.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpDotSlash.c
new file mode 100644
index 00000000..7bb79465
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpDotSlash.c
@@ -0,0 +1,115 @@
+/*
+** -*- C -*-
+**
+** OpDotSlash.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpDotSlash.h"
+
+float s0s0OpDotSlashs0(float x1, float x2){
+ return(x1/x2);
+}
+
+void s0s2OpDotSlashs2(float x1,float* x2, int* x2Size, float* y){
+ int i = 0;
+ for (i = 0; i < x2Size[0]*x2Size[1]; ++i) {
+ y[i] = x1/(float)x2[i];
+ }
+}
+
+void s2s0OpDotSlashs2(float* x2, int* x2Size,float x1, float* y){
+ int i = 0;
+ for (i = 0; i < x2Size[0]*x2Size[1]; ++i) {
+ y[i] = (float)x2[i]/x1;
+ }
+}
+
+void s2s2OpDotSlashs2(float* x1, int* x1Size, float* x2, int* x2Size, float* y){
+ int i = 0;
+ for (i = 0; i < x2Size[0]*x2Size[1]; ++i) {
+ y[i] = (float)x1[i]/(float)x2[i];
+ }
+}
+
+
+double d0d0OpDotSlashd0(double x1, double x2){
+ return(x1/x2);
+}
+
+void d0d2OpDotSlashd2(double x1,double* x2, int* x2Size, double* y){
+ int i = 0;
+ for (i = 0; i < x2Size[0]*x2Size[1]; ++i) {
+ y[i] = x1/(double)x2[i];
+ }
+}
+
+void d2d0OpDotSlashd2(double* x2, int* x2Size,double x1, double* y){
+ int i = 0;
+ for (i = 0; i < x2Size[0]*x2Size[1]; ++i) {
+ y[i] = (double)x2[i]/x1;
+ }
+}
+
+void d2d2OpDotSlashd2(double* x1, int* x1Size, double* x2, int* x2Size, double* y){
+ int i = 0;
+ for (i = 0; i < x2Size[0]*x2Size[1]; ++i) {
+ y[i] = (double)x1[i]/(double)x2[i];
+ }
+}
+
+/*
+floatComplex c0c0OpDotSlashc0(floatComplex x1, floatComplex x2)
+{
+ return(x1/x2);
+}
+
+void c0c2OpDotSlashc2(floatComplex x1,floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = x1/(floatComplex)x2[i];
+ }
+}
+
+void c2c2OpDotSlashc2(floatComplex* x1,int* x1Size,floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = x1[i]/x2[i];
+ }
+}
+
+doubleComplex z0z0OpDotSlashz0(doubleComplex x1, doubleComplex x2)
+{
+ return(x1/x2);
+}
+
+void z0z2OpDotSlashz2(doubleComplex x1,doubleComplex* x2, int* x2Size, doubleComplex* y){
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = x1/(doubleComplex)x2[i];
+ }
+}
+
+void z2z2OpDotSlashz2(doubleComplex* x1,int* x1Size,doubleComplex* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = x1[i]/x2[i];
+ }
+}
+*/
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpDotStar.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpDotStar.c
new file mode 100644
index 00000000..c39e256a
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpDotStar.c
@@ -0,0 +1,228 @@
+/*
+** -*- C -*-
+**
+** OpDotStar.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpDotStar.h"
+
+float ssOpDotStarss1(float x1, float x2){
+ return(x1*x2);
+}
+
+void ssOpDotStarsa1(float x1,float* x2, int size, float* y){
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = x1*(float)x2[i];
+ }
+}
+
+void ssOpDotStaraa1(float* x1,float* x2, int size, float* y){
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = x1[i]*x2[i];
+ }
+}
+
+
+double ddOpDotStarss1(double x1,double x2){
+ return(x1*x2);
+}
+
+void ddOpDotStarsa1(double x1,double* x2, int size, double* y){
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = x1*x2[i];
+ }
+}
+
+void ddOpDotStaraa1(double* x1,double* x2, int size, double* y){
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = x1[i]*x2[i];
+ }
+}
+
+floatComplex s0c0OpDotStarc0(float x2,floatComplex x1)
+{
+ return(ctimess(x1,FloatComplex(x2,0)));
+}
+
+floatComplex c0s0OpDotStarc0(floatComplex x1,float x2)
+{
+ return(ctimess(x1,FloatComplex(x2,0)));
+}
+
+floatComplex c0c0OpDotStarc0(floatComplex x1, floatComplex x2)
+{
+ return(ctimess(x1,x2));
+}
+
+void c0s2OpDotStarc2(floatComplex x1,float* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = ctimess(x1,FloatComplex(x2[i],0));
+ }
+}
+
+void c2c0OpDotStarc2(floatComplex* x2, int* x2Size, floatComplex x1,floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = ctimess(x1,x2[i]);
+ }
+}
+
+void s2c0OpDotStarc2(float* x2, int* x2Size, floatComplex x1,floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = ctimess(x1,FloatComplex(x2[i],0));
+ }
+}
+
+void s0c2OpDotStarc2(float x1,floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = ctimess(FloatComplex(x1,0),x2[i]);
+ }
+}
+
+void c0c2OpDotStarc2(floatComplex x1,floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = ctimess(x1,x2[i]);
+ }
+}
+
+void c2s2OpDotStarc2(floatComplex* x1,int* x1Size,float* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = ctimess(x1[i],FloatComplex(x2[i],0));
+ }
+}
+
+
+void c2c2OpDotStarc2(floatComplex* x1,int* x1Size,floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = ctimess(x1[i],x2[i]);
+ }
+}
+
+
+doubleComplex z0d0OpDotStarz0(doubleComplex x1, double x2)
+{
+ return(ztimess(x1,DoubleComplex(x2,0)));
+}
+
+doubleComplex d0z0OpDotStarz0(double x2,doubleComplex x1)
+{
+ return(ztimess(x1,DoubleComplex(x2,0)));
+}
+
+doubleComplex z0z0OpDotStarz0(doubleComplex x1, doubleComplex x2)
+{
+ return(ztimess(x1,x2));
+}
+
+void z0d2OpDotStarz2(doubleComplex x1,double* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = ztimess(x1,DoubleComplex(x2[i],0));
+ }
+}
+
+void d2z0OpDotStarz2(double* x2, int* x2Size, doubleComplex x1, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = ztimess(x1,DoubleComplex(x2[i],0));
+ }
+}
+
+void z2z0OpDotStarz2(doubleComplex* x2, int* x2Size, doubleComplex x1, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = ztimess(x1,x2[i]);
+ }
+}
+
+void d0z2OpDotStarz2(double x1,doubleComplex* x2, int* x2Size, doubleComplex* y){
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = ztimess(DoubleComplex(x1,0),x2[i]);
+ }
+}
+
+void z0z2OpDotStarz2(doubleComplex x1,doubleComplex* x2, int* x2Size, doubleComplex* y){
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = ztimess(x1,x2[i]);
+ }
+}
+
+void z2d2OpDotStarz2(doubleComplex* x1,int* x1Size,double* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = ztimess(x1[i],DoubleComplex(x2[i],0));
+ }
+}
+
+void z2z2OpDotStarz2(doubleComplex* x1,int* x1Size,doubleComplex* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = ztimess(x1[i],x2[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpEqual.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpEqual.c
new file mode 100644
index 00000000..70f3d504
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpEqual.c
@@ -0,0 +1,90 @@
+/*
+** -*- C -*-
+**
+** OpEqual.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpEqual.h"
+
+float sOpEquals1(float x)
+{
+ return (x);
+}
+
+double dOpEquals1(double x)
+{
+ return x;
+}
+
+floatComplex c0OpEqualc0(floatComplex x)
+{
+ return x;
+}
+
+doubleComplex z0OpEqualz0(doubleComplex x)
+{
+ return x;
+}
+
+char g0OpEqualg0(char x)
+{
+ return x;
+}
+
+void sOpEquala1(float* x, int size, float* y)
+{
+ int i = 0;
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = x[i];
+ }
+}
+
+void dOpEquala1(double* x, int size, double* y)
+{
+ int i = 0;
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = x[i];
+ }
+}
+
+void c2OpEqualc2(floatComplex* x, int* xSize, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = xSize[0]*xSize[1];
+
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = x[i];
+ }
+}
+
+void z2OpEqualz2(doubleComplex* x, int* xSize, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = xSize[0]*xSize[1];
+
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = x[i];
+ }
+}
+
+void g2OpEqualg2(char* x, int* xSize, char* y)
+{
+ int i = 0;
+ int size;
+ size = xSize[0]*xSize[1];
+
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = x[i];
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpExt.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpExt.c
new file mode 100644
index 00000000..0b137b14
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpExt.c
@@ -0,0 +1,11 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Copyright Raffaele Nutricato
+*/
+
+#include "OpExt.h"
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpIns.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpIns.c
new file mode 100644
index 00000000..df386894
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpIns.c
@@ -0,0 +1,11 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Copyright Raffaele Nutricato
+*/
+
+#include "OpIns.h"
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogAnd.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogAnd.c
new file mode 100644
index 00000000..86deee72
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogAnd.c
@@ -0,0 +1,38 @@
+/*
+** -*- C -*-
+**
+** OpLogAnd.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpLogAnd.h"
+
+void s2s0OpLogAnds2(float* in1, int* in1Size, float in2, float* out)
+{
+ int rows = 0;
+ int cols = 0;
+ for (rows = 0; rows < in1Size[0];rows++)
+ {
+ for (cols = 0; cols < in1Size[1];cols++)
+ {
+ out[rows*in1Size[1]+cols] = (float) (in1[rows*in1Size[1]+cols] && in2);
+ }
+ }
+}
+
+void d2d0OpLogAndd2(double* in1, int* in1Size, double in2, double* out)
+{
+ int rows = 0;
+ int cols = 0;
+ for (rows = 0; rows < in1Size[0];rows++)
+ {
+ for (cols = 0; cols < in1Size[1];cols++)
+ {
+ out[rows*in1Size[1]+cols] = (double) (in1[rows*in1Size[1]+cols] && in2);
+ }
+ }
+}
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogEq.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogEq.c
new file mode 100644
index 00000000..77d3f728
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogEq.c
@@ -0,0 +1,38 @@
+/*
+** -*- C -*-
+**
+** OpDotSlash.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpLogEq.h"
+
+void s2s0OpLogEqs2(float* in1, int* in1Size, float in2, float* out)
+{
+ int rows = 0;
+ int cols = 0;
+ for (rows = 0; rows < in1Size[0];rows++)
+ {
+ for (cols = 0; cols < in1Size[1];cols++)
+ {
+ out[rows*in1Size[1]+cols] = (float) (in1[rows*in1Size[1]+cols] == in2);
+ }
+ }
+}
+
+void d2d0OpLogEqd2(double* in1, int* in1Size, double in2, double* out)
+{
+ int rows = 0;
+ int cols = 0;
+ for (rows = 0; rows < in1Size[0];rows++)
+ {
+ for (cols = 0; cols < in1Size[1];cols++)
+ {
+ out[rows*in1Size[1]+cols] = (double) (in1[rows*in1Size[1]+cols] == in2);
+ }
+ }
+}
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogGe.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogGe.c
new file mode 100644
index 00000000..3664f2e1
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogGe.c
@@ -0,0 +1,37 @@
+/*
+** -*- C -*-
+**
+** OpDotSlash.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpLogGe.h"
+
+void s2s0OpLogGes2(float* in1, int* in1Size, float in2, float* out)
+{
+ int rows = 0;
+ int cols = 0;
+ for (rows = 0; rows < in1Size[0];rows++)
+ {
+ for (cols = 0; cols < in1Size[1];cols++)
+ {
+ out[rows*in1Size[1]+cols] = (float) (in1[rows*in1Size[1]+cols] >= in2);
+ }
+ }
+}
+
+void d2d0OpLogGed2(double* in1, int* in1Size, double in2, double* out)
+{
+ int rows = 0;
+ int cols = 0;
+ for (rows = 0; rows < in1Size[0];rows++)
+ {
+ for (cols = 0; cols < in1Size[1];cols++)
+ {
+ out[rows*in1Size[1]+cols] = (double) (in1[rows*in1Size[1]+cols] >= in2);
+ }
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogGt.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogGt.c
new file mode 100644
index 00000000..25e4bd96
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogGt.c
@@ -0,0 +1,37 @@
+/*
+** -*- C -*-
+**
+** OpDotSlash.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpLogGt.h"
+
+void s2s0OpLogGts2(float* in1, int* in1Size, float in2, float* out)
+{
+ int rows = 0;
+ int cols = 0;
+ for (rows = 0; rows < in1Size[0];rows++)
+ {
+ for (cols = 0; cols < in1Size[1];cols++)
+ {
+ out[rows*in1Size[1]+cols] = (float) (in1[rows*in1Size[1]+cols] > in2);
+ }
+ }
+}
+
+void d2d0OpLogGtd2(double* in1, int* in1Size, double in2, double* out)
+{
+ int rows = 0;
+ int cols = 0;
+ for (rows = 0; rows < in1Size[0];rows++)
+ {
+ for (cols = 0; cols < in1Size[1];cols++)
+ {
+ out[rows*in1Size[1]+cols] = (double) (in1[rows*in1Size[1]+cols] > in2);
+ }
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogLe.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogLe.c
new file mode 100644
index 00000000..a1544489
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogLe.c
@@ -0,0 +1,37 @@
+/*
+** -*- C -*-
+**
+** OpDotSlash.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpLogLe.h"
+
+void s2s0OpLogLes2(float* in1, int* in1Size, float in2, float* out)
+{
+ int rows = 0;
+ int cols = 0;
+ for (rows = 0; rows < in1Size[0];rows++)
+ {
+ for (cols = 0; cols < in1Size[1];cols++)
+ {
+ out[rows*in1Size[1]+cols] = (float) (in1[rows*in1Size[1]+cols] <= in2);
+ }
+ }
+}
+
+void d2d0OpLogLed2(double* in1, int* in1Size, double in2, double* out)
+{
+ int rows = 0;
+ int cols = 0;
+ for (rows = 0; rows < in1Size[0];rows++)
+ {
+ for (cols = 0; cols < in1Size[1];cols++)
+ {
+ out[rows*in1Size[1]+cols] = (double) (in1[rows*in1Size[1]+cols] <= in2);
+ }
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogLt.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogLt.c
new file mode 100644
index 00000000..a7e6d774
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogLt.c
@@ -0,0 +1,37 @@
+/*
+** -*- C -*-
+**
+** OpDotSlash.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpLogLt.h"
+
+void s2s0OpLogLts2(float* in1, int* in1Size, float in2, float* out)
+{
+ int rows = 0;
+ int cols = 0;
+ for (rows = 0; rows < in1Size[0];rows++)
+ {
+ for (cols = 0; cols < in1Size[1];cols++)
+ {
+ out[rows*in1Size[1]+cols] = (float) (in1[rows*in1Size[1]+cols] < in2);
+ }
+ }
+}
+
+void d2d0OpLogLtd2(double* in1, int* in1Size, double in2, double* out)
+{
+ int rows = 0;
+ int cols = 0;
+ for (rows = 0; rows < in1Size[0];rows++)
+ {
+ for (cols = 0; cols < in1Size[1];cols++)
+ {
+ out[rows*in1Size[1]+cols] = (double) (in1[rows*in1Size[1]+cols] < in2);
+ }
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogOr.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogOr.c
new file mode 100644
index 00000000..eb553b33
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpLogOr.c
@@ -0,0 +1,38 @@
+/*
+** -*- C -*-
+**
+** OpLogOr.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpLogOr.h"
+
+void s2s0OpLogOrs2(float* in1, int* in1Size, float in2, float* out)
+{
+ int rows = 0;
+ int cols = 0;
+ for (rows = 0; rows < in1Size[0];rows++)
+ {
+ for (cols = 0; cols < in1Size[1];cols++)
+ {
+ out[rows*in1Size[1]+cols] = (float) (in1[rows*in1Size[1]+cols] || in2);
+ }
+ }
+}
+
+void d2d0OpLogOrd2(double* in1, int* in1Size, double in2, double* out)
+{
+ int rows = 0;
+ int cols = 0;
+ for (rows = 0; rows < in1Size[0];rows++)
+ {
+ for (cols = 0; cols < in1Size[1];cols++)
+ {
+ out[rows*in1Size[1]+cols] = (double) (in1[rows*in1Size[1]+cols] || in2);
+ }
+ }
+}
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpMinus.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpMinus.c
new file mode 100644
index 00000000..03c85689
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpMinus.c
@@ -0,0 +1,281 @@
+/*
+** -*- C -*-
+**
+** OpMinus.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpMinus.h"
+
+float s0OpMinuss0(float x1)
+{
+ return(-x1);
+}
+
+void s2OpMinuss2(float* in1,int* in1Size, float* out)
+{
+ int i = 0;
+ for (i = 0; i < in1Size[0]*in1Size[1]; ++i)
+ {
+ out[i] = -in1[i];
+ }
+}
+
+double d0OpMinusd0(double x1)
+{
+ return(-x1);
+}
+
+void d2OpMinusd2(double* in1,int* in1Size, double* out)
+{
+ int i = 0;
+ for (i = 0; i < in1Size[0]*in1Size[1]; ++i)
+ {
+ out[i] = -in1[i];
+ }
+}
+
+
+
+float s0s0OpMinuss0(float x1, float x2)
+{
+ return(x1-x2);
+}
+
+void s0s2OpMinuss2(float x2, float* x1,int* x1Size, float* y)
+{
+ int i = 0;
+ for (i = 0; i < x1Size[0]*x1Size[1]; ++i) {
+ y[i] = x2-x1[i];
+ }
+}
+
+void s2s0OpMinuss2(float* x1,int* x1Size, float x2, float* y)
+{
+ int i = 0;
+ for (i = 0; i < x1Size[0]*x1Size[1]; ++i) {
+ y[i] = x1[i]-x2;
+ }
+}
+
+void s2s2OpMinuss2(float* x1,int* x1Size, float* x2,int* x2Size, float* y)
+{
+ int i = 0;
+ for (i = 0; i < x1Size[0]*x1Size[1]; ++i)
+ {
+ y[i] = x1[i]-x2[i];
+ }
+}
+
+
+double d0d0OpMinusd0(double x1, double x2)
+{
+ return(x1-x2);
+}
+
+void d0d2OpMinusd2(double x2, double* x1,int* x1Size, double* y)
+{
+ int i = 0;
+ for (i = 0; i < x1Size[0]*x1Size[1]; ++i) {
+ y[i] = x2-x1[i];
+ }
+}
+
+void d2d0OpMinusd2(double* x1,int* x1Size, double x2, double* y)
+{
+ int i = 0;
+ for (i = 0; i < x1Size[0]*x1Size[1]; ++i) {
+ y[i] = x1[i]-x2;
+ }
+}
+
+void d2d2OpMinusd2(double* x1,int* x1Size, double* x2,int* x2Size, double* y)
+{
+ int i = 0;
+ for (i = 0; i < x1Size[0]*x1Size[1]; ++i) {
+ y[i] = x1[i]-x2[i];
+ }
+}
+
+
+floatComplex c0OpMinusc0(floatComplex x1)
+{
+ floatComplex x2;
+ x2 = FloatComplex(-creals(x1),-cimags(x1));
+ return(x2);
+}
+
+void c2OpMinusc2(floatComplex* in1,int* in1Size, floatComplex* out)
+{
+ int i = 0;
+ for (i = 0; i < in1Size[0]*in1Size[1]; ++i)
+ {
+ out[i] = FloatComplex(-creals(in1[i]),-cimags(in1[i]));
+ }
+}
+
+floatComplex s0c0OpMinusc0(float x1,floatComplex x2)
+{
+ return(cdiffs(FloatComplex(x1,0),x2));
+}
+
+doubleComplex d0z0OpMinusz0(double x1,doubleComplex x2)
+{
+ return(zdiffs(DoubleComplex(x1,0),x2));
+}
+
+floatComplex c0c0OpMinusc0(floatComplex x1,floatComplex x2)
+{
+ return(cdiffs(x1,x2));
+}
+
+doubleComplex z0z0OpMinusz0(doubleComplex x1,doubleComplex x2)
+{
+ return(zdiffs(x1,x2));
+}
+
+void c0c2OpMinusc2(floatComplex x1,floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = cdiffs(x1,x2[i]);
+ }
+}
+
+void c2c0OpMinusc2(floatComplex* x2, int* x2Size, floatComplex x1,floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = cdiffs(x1,x2[i]);
+ }
+}
+
+void c2c2OpMinusc2(floatComplex* x1,int* x1Size,floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = cdiffs(x1[i],x2[i]);
+ }
+}
+
+doubleComplex z0OpMinusz0(doubleComplex x1)
+{
+ return(ztimess(DoubleComplex(-1,0),x1));
+}
+
+void z2OpMinusz2(doubleComplex* in1,int* in1Size, doubleComplex* out)
+{
+ int i = 0;
+ for (i = 0; i < in1Size[0]*in1Size[1]; ++i)
+ {
+ out[i] = ztimess(DoubleComplex(-1,0),in1[i]);
+ }
+}
+
+void z0z2OpMinusz2(doubleComplex x1,doubleComplex* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = zdiffs(x1,x2[i]);
+ }
+}
+
+void z2z0OpMinusz2(doubleComplex* x2, int* x2Size, doubleComplex x1,doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = zdiffs(x1,x2[i]);
+ }
+}
+
+void z2z2OpMinusz2(doubleComplex* x1,int* x1Size,doubleComplex* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = zdiffs(x1[i],x2[i]);
+ }
+}
+
+void z2d2OpMinusz2(doubleComplex* x2,int* x2Size,double* x1, int* x1Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = zdiffs(DoubleComplex(x1[i],0),x2[i]);
+ }
+}
+
+void d2z2OpMinusz2(double* x1,int* x1Size,doubleComplex* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = zdiffs(DoubleComplex(x1[i],0),x2[i]);
+ }
+}
+
+
+void c2s2OpMinusc2(floatComplex* x2,int* x2Size,float* x1, int* x1Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = cdiffs(FloatComplex(x1[i],0),x2[i]);
+ }
+}
+
+void s2c2OpMinusc2(float* x1,int* x1Size,floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = cdiffs(FloatComplex(x1[i],0),x2[i]);
+ }
+}
+
+void s0c2OpMinusc2(float x1,floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = cdiffs(FloatComplex(x1,0),x2[i]);
+ }
+}
+
+
+void d0z2OpMinusz2(double x1,doubleComplex* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = zdiffs(DoubleComplex(x1,0),x2[i]);
+ }
+}
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpPlus.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpPlus.c
new file mode 100644
index 00000000..6a3d35e1
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpPlus.c
@@ -0,0 +1,267 @@
+/*
+** -*- C -*-
+**
+** OpPlus.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpPlus.h"
+
+float ssOpPlusss1(float x1, float x2){
+ return(x1+x2);
+}
+
+void ssOpPlussa1(float x1,float* x2, int size, float* y){
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = x1+(float)x2[i];
+ }
+}
+
+void ssOpPlusaa1(float* x1,float* x2, int size, float* y){
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = x1[i]+x2[i];
+ }
+}
+
+
+double ddOpPlusss1(double x1,double x2){
+ return(x1+x2);
+}
+
+void ddOpPlussa1(double x1,double* x2, int size, double* y){
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = x1+x2[i];
+ }
+}
+
+void ddOpPlusaa1(double* x1,double* x2, int size, double* y){
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = x1[i]+x2[i];
+ }
+}
+
+double d0OpPlusd0(double x1)
+{
+ return(x1);
+}
+
+void d2OpPlusd2(double* in1,int* in1Size, double* out)
+{
+ int i = 0;
+ for (i = 0; i < in1Size[0]*in1Size[1]; ++i)
+ {
+ out[i] = in1[i];
+ }
+}
+floatComplex c0OpPlusc0(floatComplex x1)
+{
+ return(x1);
+}
+
+void c2OpPlusc2(floatComplex* in1,int* in1Size, floatComplex* out)
+{
+ int i = 0;
+ for (i = 0; i < in1Size[0]*in1Size[1]; ++i)
+ {
+ out[i] = in1[i];
+ }
+}
+
+floatComplex c0c0OpPlusc0(floatComplex x1,floatComplex x2)
+{
+ return(cadds(x1,x2));
+}
+
+floatComplex c0s0OpPlusc0(floatComplex x1,float x2)
+{
+ return(cadds(x1,FloatComplex(x2,0)));
+}
+
+floatComplex s0c0OpPlusc0(float x2,floatComplex x1)
+{
+ return(cadds(x1,FloatComplex(x2,0)));
+}
+
+void s0c2OpPlusc2(float x1,floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = cadds(FloatComplex(x1,0),x2[i]);
+ }
+}
+
+void c0c2OpPlusc2(floatComplex x1,floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = cadds(x1,x2[i]);
+ }
+}
+
+void c2c0OpPlusc2(floatComplex* x2, int* x2Size, floatComplex x1,floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = cadds(x1,x2[i]);
+ }
+}
+
+void c2c2OpPlusc2(floatComplex* x1,int* x1Size,floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = cadds(x1[i],x2[i]);
+ }
+}
+
+doubleComplex z0OpPlusz0(doubleComplex x1)
+{
+ return(x1);
+}
+
+void z2OpPlusz2(doubleComplex* in1,int* in1Size, doubleComplex* out)
+{
+ int i = 0;
+ for (i = 0; i < in1Size[0]*in1Size[1]; ++i)
+ {
+ out[i] = in1[i];
+ }
+}
+
+doubleComplex d0z0OpPlusz0(double x1,doubleComplex x2)
+{
+ return(zadds(x2,DoubleComplex(x1,0)));
+}
+
+doubleComplex z0d0OpPlusz0(doubleComplex x1,double x2)
+{
+ return(zadds(x1,DoubleComplex(x2,0)));
+}
+
+doubleComplex z0z0OpPlusz0(doubleComplex x1,doubleComplex x2)
+{
+ return(zadds(x1,x2));
+}
+
+void d0z2OpPlusz2(double x1,doubleComplex* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = zadds(DoubleComplex(x1,0),x2[i]);
+ }
+}
+
+void z0z2OpPlusz2(doubleComplex x1,doubleComplex* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = zadds(x1,x2[i]);
+ }
+}
+
+void z2z0OpPlusz2(doubleComplex* x2, int* x2Size, doubleComplex x1,doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i) {
+ y[i] = zadds(x1,x2[i]);
+ }
+}
+
+void z2d2OpPlusz2(doubleComplex* x2,int* x2Size,double* x1, int* x1Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = zadds(DoubleComplex(x1[i],0),x2[i]);
+ }
+}
+
+void d2z2OpPlusz2(double* x1,int* x1Size,doubleComplex* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = zadds(DoubleComplex(x1[i],0),x2[i]);
+ }
+}
+
+
+void c2s2OpPlusc2(floatComplex* x2,int* x2Size,float* x1, int* x1Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = cadds(FloatComplex(x1[i],0),x2[i]);
+ }
+}
+
+void s2c2OpPlusc2(float* x1,int* x1Size,floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = cadds(FloatComplex(x1[i],0),x2[i]);
+ }
+}
+
+
+void z2z2OpPlusz2(doubleComplex* x1,int* x1Size,doubleComplex* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+ for (i = 0; i < size; ++i) {
+ y[i] = zadds(x1[i],x2[i]);
+ }
+}
+
+void g0g0OpPlusg2(char x1, char x2, char* y)
+{
+ y[0] = x1;
+ y[1] = x2;
+}
+
+void g2g2OpPlusg2(char* x1,int* x1Size,char* x2, int* x2Size, char* y)
+{
+ int i = 0;
+ int j = 0;
+ for (i = 0; i < x1Size[1]-1; ++i,++j)
+ {
+ y[j] = x1[i];
+ }
+ for (i = 0; i < x2Size[1]; ++i,++j)
+ {
+ y[j] = x2[i];
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpRc.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpRc.c
new file mode 100644
index 00000000..d13c2fcb
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpRc.c
@@ -0,0 +1,195 @@
+/*
+** -*- C -*-
+**
+** OpRc.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpRc.h"
+
+void d0d0OpRcd2(double in1, double in2, double* out)
+{
+ out[0] = in1;
+ out[1] = in2;
+}
+
+void d2d0OpRcd2(double* in1, int* in1Size, double in2, double* out)
+{
+ int i;
+ for (i = 0; i < in1Size[1]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[1]] = in2;
+}
+
+void d0d2OpRcd2(double in2, double* in1, int* in1Size, double* out)
+{
+ int i;
+ for (i = 0; i < in1Size[1]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[1]] = in2;
+}
+
+void d2d2OpRcd2(double* in1, int* in1Size, double* in2, int* in2Size, double* out)
+{
+ int cntrow;
+ int offsetrow;
+ int cntcol1;
+ int cntcol2;
+ for (cntrow = 0; cntrow < in1Size[0]; cntrow++)
+ {
+ offsetrow = cntrow * (in1Size[1]+in2Size[1]);
+ for (cntcol1 = 0; cntcol1 < in1Size[1]; cntcol1++)
+ {
+ out[offsetrow+cntcol1] = in1[cntrow*in1Size[1]+cntcol1];
+ }
+ for (cntcol2 = 0; cntcol2 < in2Size[1]; cntcol2++)
+ {
+ out[offsetrow+in1Size[1]+cntcol2] = in2[cntrow*in2Size[1]+cntcol2];
+ }
+ }
+}
+
+void s0s0OpRcs2(float in1, float in2, float* out)
+{
+ out[0] = in1;
+ out[1] = in2;
+}
+
+void s2s0OpRcs2(float* in1, int* in1Size, float in2, float* out)
+{
+ int i;
+ for (i = 0; i < in1Size[1]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[1]] = in2;
+}
+
+void s0s2OpRcs2(float in2, float* in1, int* in1Size, float* out)
+{
+ int i;
+ for (i = 0; i < in1Size[1]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[1]] = in2;
+}
+
+void s2s2OpRcs2(float* in1, int* in1Size, float* in2, int* in2Size, float* out)
+{
+ int cntrow;
+ int offsetrow;
+ int cntcol1;
+ int cntcol2;
+ for (cntrow = 0; cntrow < in1Size[0]; cntrow++)
+ {
+ offsetrow = cntrow * (in1Size[1]+in2Size[1]);
+ for (cntcol1 = 0; cntcol1 < in1Size[1]; cntcol1++)
+ {
+ out[offsetrow+cntcol1] = in1[cntrow*in1Size[1]+cntcol1];
+ }
+ for (cntcol2 = 0; cntcol2 < in2Size[1]; cntcol2++)
+ {
+ out[offsetrow+in1Size[1]+cntcol2] = in2[cntrow*in2Size[1]+cntcol2];
+ }
+ }
+}
+
+void z0z0OpRcz2(doubleComplex in1, doubleComplex in2, doubleComplex* out)
+{
+ out[0] = in1;
+ out[1] = in2;
+}
+
+void z2z0OpRcz2(doubleComplex* in1, int* in1Size, doubleComplex in2, doubleComplex* out)
+{
+ int i;
+ for (i = 0; i < in1Size[1]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[1]] = in2;
+}
+
+void z0z2OpRcz2(doubleComplex in2, doubleComplex* in1, int* in1Size, doubleComplex* out)
+{
+ int i;
+ for (i = 0; i < in1Size[1]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[1]] = in2;
+}
+
+void z2z2OpRcz2(doubleComplex* in1, int* in1Size, doubleComplex* in2, int* in2Size, doubleComplex* out)
+{
+ int cntrow;
+ int offsetrow;
+ int cntcol1;
+ int cntcol2;
+ for (cntrow = 0; cntrow < in1Size[0]; cntrow++)
+ {
+ offsetrow = cntrow * (in1Size[1]+in2Size[1]);
+ for (cntcol1 = 0; cntcol1 < in1Size[1]; cntcol1++)
+ {
+ out[offsetrow+cntcol1] = in1[cntrow*in1Size[1]+cntcol1];
+ }
+ for (cntcol2 = 0; cntcol2 < in2Size[1]; cntcol2++)
+ {
+ out[offsetrow+in1Size[1]+cntcol2] = in2[cntrow*in2Size[1]+cntcol2];
+ }
+ }
+}
+
+void c0c0OpRcc2(floatComplex in1, floatComplex in2, floatComplex* out)
+{
+ out[0] = in1;
+ out[1] = in2;
+}
+
+void c2c0OpRcc2(floatComplex* in1, int* in1Size, floatComplex in2, floatComplex* out)
+{
+ int i;
+ for (i = 0; i < in1Size[1]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[1]] = in2;
+}
+
+void c0c2OpRcc2(floatComplex in2, floatComplex* in1, int* in1Size, floatComplex* out)
+{
+ int i;
+ for (i = 0; i < in1Size[1]; i++)
+ {
+ out[i] = in1[i];
+ }
+ out[in1Size[1]] = in2;
+}
+
+void c2c2OpRcc2(floatComplex* in1, int* in1Size, floatComplex* in2, int* in2Size, floatComplex* out)
+{
+ int cntrow;
+ int offsetrow;
+ int cntcol1;
+ int cntcol2;
+ for (cntrow = 0; cntrow < in1Size[0]; cntrow++)
+ {
+ offsetrow = cntrow * (in1Size[1]+in2Size[1]);
+ for (cntcol1 = 0; cntcol1 < in1Size[1]; cntcol1++)
+ {
+ out[offsetrow+cntcol1] = in1[cntrow*in1Size[1]+cntcol1];
+ }
+ for (cntcol2 = 0; cntcol2 < in2Size[1]; cntcol2++)
+ {
+ out[offsetrow+in1Size[1]+cntcol2] = in2[cntrow*in2Size[1]+cntcol2];
+ }
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpStar.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpStar.c
new file mode 100644
index 00000000..31879b47
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/OpStar.c
@@ -0,0 +1,398 @@
+/*
+** -*- C -*-
+**
+** OpStar.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "OpStar.h"
+
+float ssOpStarss1(float x1, float x2){
+ return(x1*x2);
+}
+
+void ssOpStarsa1(float x1,float* x2, int size, float* y){
+ int i = 0;
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = x1*(float)x2[i];
+ }
+}
+
+void ssOpStaraa1(float* x1,int x1rows, int x1cols, float* x2, int x2cols, float* y)
+{
+ int i = 0;
+ int j = 0;
+ int z = 0;
+ for (i = 0; i < x1rows; ++i)
+ {
+ for (j = 0; j < x2cols; j++)
+ {
+ y[i*x2cols+j] = 0;
+ for (z = 0; z < x1cols; z++)
+ {
+ y[i*x2cols+j] = y[i*x2cols+j] + x1[i*x1cols+z]*x2[z*x2cols+j];
+ }
+ }
+ }
+}
+
+double ddOpStarss1(double x1,double x2){
+ return(x1*x2);
+}
+
+void ddOpStarsa1(double x1,double* x2, int size, double* y){
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = x1*x2[i];
+ }
+}
+
+void ddOpStaraa1(double* x1,int x1rows, int x1cols, double* x2, int x2cols, double* y)
+{
+ int i = 0;
+ int j = 0;
+ int z = 0;
+ for (i = 0; i < x1rows; i++)
+ {
+ for (j = 0; j < x2cols; j++)
+ {
+ y[i*x2cols+j] = 0;
+ for (z = 0; z < x1cols; z++)
+ {
+ y[i*x2cols+j] = y[i*x2cols+j] + x1[i*x1cols+z]*x2[z*x2cols+j];
+ }
+ }
+ }
+}
+
+floatComplex s0c0OpStarc0(float x2, floatComplex x1)
+{
+ return(ctimess(x1,FloatComplex(x2,0)));
+}
+
+floatComplex c0s0OpStarc0(floatComplex x1, float x2)
+{
+ return(ctimess(x1,FloatComplex(x2,0)));
+}
+
+floatComplex c0c0OpStarc0(floatComplex x1, floatComplex x2)
+{
+ return(ctimess(x1,x2));
+}
+
+void c0s2OpStarc2(floatComplex x1,float* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = ctimess(x1,FloatComplex(x2[i],0));
+ }
+}
+
+void s2c0OpStarc2(float* x2, int* x2Size, floatComplex x1, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = ctimess(x1,FloatComplex(x2[i],0));
+ }
+}
+
+void s0c2OpStarc2(float x1,floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = ctimess(FloatComplex(x1,0),x2[i]);
+ }
+}
+
+void c0c2OpStarc2(floatComplex x1,floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = ctimess(x1,x2[i]);
+ }
+}
+
+void c2c0OpStarc2(floatComplex* x2, int* x2Size,floatComplex x1, floatComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = ctimess(x1,x2[i]);
+ }
+}
+
+void c2s2OpStarc2(floatComplex* x1,int* x1Size, float* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int j = 0;
+ int z = 0;
+ int x1rows = x1Size[0];
+ int x1cols = x1Size[1];
+ int x2cols = x2Size[1];
+ for (i = 0; i < x1rows; ++i)
+ {
+ for (j = 0; j < x2cols; j++)
+ {
+ y[i*x2cols+j] = FloatComplex(0,0);
+ for (z = 0; z < x1cols; z++)
+ {
+ y[i*x2cols+j] = cadds(y[i*x2cols+j],ctimess(x1[i*x1cols+z],FloatComplex(x2[z*x2cols+j],0)));
+ }
+ }
+ }
+}
+
+void c2c2OpStarc2(floatComplex* x1,int* x1Size, floatComplex* x2, int* x2Size, floatComplex* y)
+{
+ int i = 0;
+ int j = 0;
+ int z = 0;
+ int x1rows = x1Size[0];
+ int x1cols = x1Size[1];
+ int x2cols = x2Size[1];
+ for (i = 0; i < x1rows; ++i)
+ {
+ for (j = 0; j < x2cols; j++)
+ {
+ y[i*x2cols+j] = FloatComplex(0,0);
+ for (z = 0; z < x1cols; z++)
+ {
+ y[i*x2cols+j] = cadds(y[i*x2cols+j],ctimess(x1[i*x1cols+z],x2[z*x2cols+j]));
+ }
+ }
+ }
+}
+
+doubleComplex d0z0OpStarz0(double x2, doubleComplex x1)
+{
+ return(ztimess(x1,DoubleComplex(x2,0)));
+}
+
+doubleComplex z0d0OpStarz0(doubleComplex x1, double x2)
+{
+ return(ztimess(x1,DoubleComplex(x2,0)));
+}
+
+doubleComplex z0z0OpStarz0(doubleComplex x1, doubleComplex x2)
+{
+ return(ztimess(x1,x2));
+}
+
+void z0d2OpStarz2(doubleComplex x1,double* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = ztimess(x1,DoubleComplex(x2[i],0));
+ }
+}
+
+void d2z0OpStarz2(double* x2, int* x2Size, doubleComplex x1, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = ztimess(x1,DoubleComplex(x2[i],0));
+ }
+}
+
+void d0z2OpStarz2(double x1,doubleComplex* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = ztimess(DoubleComplex(x1,0),x2[i]);
+ }
+}
+
+void z0z2OpStarz2(doubleComplex x1,doubleComplex* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = ztimess(x1,x2[i]);
+ }
+}
+
+void z2z0OpStarz2(doubleComplex* x2, int* x2Size,doubleComplex x1, doubleComplex* y)
+{
+ int i = 0;
+ int size;
+ size = x2Size[0]*x2Size[1];
+
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = ztimess(x1,x2[i]);
+ }
+}
+
+void z2d2OpStarz2(doubleComplex* x1,int* x1Size, double* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int j = 0;
+ int z = 0;
+ int x1rows = x1Size[0];
+ int x1cols = x1Size[1];
+ int x2cols = x2Size[1];
+ for (i = 0; i < x1rows; ++i)
+ {
+ for (j = 0; j < x2cols; j++)
+ {
+ y[i*x2cols+j] = DoubleComplex(0,0);
+ for (z = 0; z < x1cols; z++)
+ {
+ y[i*x2cols+j] = zadds(y[i*x2cols+j],ztimess(x1[i*x1cols+z],DoubleComplex(x2[z*x2cols+j],0)));
+ }
+ }
+ }
+}
+
+void z2z2OpStarz2(doubleComplex* x1,int* x1Size, doubleComplex* x2, int* x2Size, doubleComplex* y)
+{
+ int i = 0;
+ int j = 0;
+ int z = 0;
+ int x1rows = x1Size[0];
+ int x1cols = x1Size[1];
+ int x2cols = x2Size[1];
+ for (i = 0; i < x1rows; ++i)
+ {
+ for (j = 0; j < x2cols; j++)
+ {
+ y[i*x2cols+j] = DoubleComplex(0,0);
+ for (z = 0; z < x1cols; z++)
+ {
+ y[i*x2cols+j] = zadds(y[i*x2cols+j],ztimess(x1[i*x1cols+z],x2[z*x2cols+j]));
+ }
+ }
+ }
+}
+
+
+
+float s2s2OpStars0(float* x1,int* x1Size, float* x2,int* x2Size)
+{
+ int i = 0;
+ int j = 0;
+ int z = 0;
+ float y = 0;
+ int x1rows = x1Size[0];
+ int x1cols = x1Size[1];
+ int x2cols = x2Size[1];
+ for (i = 0; i < x1rows; ++i)
+ {
+ for (j = 0; j < x2cols; j++)
+ {
+ y = 0;
+ for (z = 0; z < x1cols; z++)
+ {
+ y += x1[i*x1cols+z]*x2[z*x2cols+j];
+ }
+ }
+ }
+ return(y);
+}
+
+double d2d2OpStard0(double* x1,int* x1Size, double* x2,int* x2Size)
+{
+ int i = 0;
+ int j = 0;
+ int z = 0;
+ int x1rows = x1Size[0];
+ int x1cols = x1Size[1];
+ int x2cols = x2Size[1];
+ double y = 0;
+ for (i = 0; i < x1rows; ++i)
+ {
+ for (j = 0; j < x2cols; j++)
+ {
+ y = 0;
+ for (z = 0; z < x1cols; z++)
+ {
+ y += x1[i*x1cols+z]*x2[z*x2cols+j];
+ }
+ }
+ }
+ return(y);
+}
+
+floatComplex c2c2OpStarc0(floatComplex* x1,int* x1Size, floatComplex* x2,int* x2Size)
+{
+ int i = 0;
+ int j = 0;
+ int z = 0;
+ int x1rows = x1Size[0];
+ int x1cols = x1Size[1];
+ int x2cols = x2Size[1];
+ floatComplex y = FloatComplex(0,0);
+ for (i = 0; i < x1rows; ++i)
+ {
+ for (j = 0; j < x2cols; j++)
+ {
+ y = FloatComplex(0,0);
+ for (z = 0; z < x1cols; z++)
+ {
+ y = cadds(y,ctimess(x1[i*x1cols+z],x2[z*x2cols+j]));
+ }
+ }
+ }
+ return(y);
+}
+
+doubleComplex z2z2OpStarz0(doubleComplex* x1,int* x1Size, doubleComplex* x2,int* x2Size)
+{
+ int i = 0;
+ int j = 0;
+ int z = 0;
+ int x1rows = x1Size[0];
+ int x1cols = x1Size[1];
+ int x2cols = x2Size[1];
+ doubleComplex y = DoubleComplex(0,0);
+ for (i = 0; i < x1rows; ++i)
+ {
+ for (j = 0; j < x2cols; j++)
+ {
+ y = DoubleComplex(0,0);
+ for (z = 0; z < x1cols; z++)
+ {
+ y = zadds(y,ztimess(x1[i*x1cols+z],x2[z*x2cols+j]));
+ }
+ }
+ }
+ return(y);
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/RealToComplex.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/RealToComplex.c
new file mode 100644
index 00000000..dd7b5ecf
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/RealToComplex.c
@@ -0,0 +1,134 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Copyright Raffaele Nutricato
+*/
+
+#include "RealToComplex.h"
+
+floatComplex s0floatcomplexc0(float in)
+{
+ floatComplex out;
+ out = FloatComplex(in,0);
+ return out;
+}
+
+floatComplex d0floatcomplexc0(double in)
+{
+ floatComplex out;
+ out = FloatComplex(in,0);
+ return out;
+}
+
+floatComplex c0floatcomplexc0(floatComplex in)
+{
+ return in;
+}
+
+floatComplex z0floatcomplexc0(doubleComplex in)
+{
+ floatComplex out;
+ out = FloatComplex((float)zreals(in),(float)zimags(in));
+ return out;
+}
+
+void s2floatcomplexc2(float* in, int* inSize, floatComplex* out)
+{
+ int i = 0;
+ for (i=0;i<inSize[0]*inSize[1];i++)
+ {
+ out[i] = s0floatcomplexc0(in[i]);
+ }
+}
+
+void d2floatcomplexc2(double* in, int* inSize, floatComplex* out)
+{
+ int i = 0;
+ for (i=0;i<inSize[0]*inSize[1];i++)
+ {
+ out[i] = d0floatcomplexc0(in[i]);
+ }
+}
+
+void c2floatcomplexc2(floatComplex* in, int* inSize, floatComplex* out)
+{
+ int i = 0;
+ for (i=0;i<inSize[0]*inSize[1];i++)
+ {
+ out[i] = c0floatcomplexc0(in[i]);
+ }
+}
+
+void z2floatcomplexc2(doubleComplex* in, int* inSize, floatComplex* out)
+{
+ int i = 0;
+ for (i=0;i<inSize[0]*inSize[1];i++)
+ {
+ out[i] = z0floatcomplexc0(in[i]);
+ }
+}
+
+doubleComplex s0doublecomplexz0(float in)
+{
+ doubleComplex out;
+ out = DoubleComplex((double)(in),0);
+ return out;
+}
+
+doubleComplex d0doublecomplexz0(double in)
+{
+ doubleComplex out;
+ out = DoubleComplex(in,0);
+ return out;
+}
+
+doubleComplex c0doublecomplexz0(floatComplex in)
+{
+ doubleComplex out;
+ out = DoubleComplex((double) creals(in),(double) cimags(in));
+ return out;
+}
+
+doubleComplex z0doublecomplexz0(doubleComplex in)
+{
+ return in;
+}
+
+void s2doublecomplexz2(float* in, int* inSize, doubleComplex* out)
+{
+ int i = 0;
+ for (i=0;i<inSize[0]*inSize[1];i++)
+ {
+ out[i] = s0doublecomplexz0(in[i]);
+ }
+}
+
+void d2doublecomplexz2(double* in, int* inSize, doubleComplex* out)
+{
+ int i = 0;
+ for (i=0;i<inSize[0]*inSize[1];i++)
+ {
+ out[i] = d0doublecomplexz0(in[i]);
+ }
+}
+
+void c2doublecomplexz2(floatComplex* in, int* inSize, doubleComplex* out)
+{
+ int i = 0;
+ for (i=0;i<inSize[0]*inSize[1];i++)
+ {
+ out[i] = c0doublecomplexz0(in[i]);
+ }
+}
+
+void z2doublecomplexz2(doubleComplex* in, int* inSize, doubleComplex* out)
+{
+ int i = 0;
+ for (i=0;i<inSize[0]*inSize[1];i++)
+ {
+ out[i] = z0doublecomplexz0(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/SCI2Cconvol.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/SCI2Cconvol.c
new file mode 100644
index 00000000..989cb9de
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/SCI2Cconvol.c
@@ -0,0 +1,2 @@
+#include "SCI2Cconvol.h"
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/SCI2Cfft.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/SCI2Cfft.c
new file mode 100644
index 00000000..9cced2e1
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/SCI2Cfft.c
@@ -0,0 +1,13 @@
+/*
+** -*- C -*-
+**
+** OpDotSlash.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "SCI2Cfft.h"
+
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cabsa.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cabsa.c
new file mode 100644
index 00000000..f4005a33
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cabsa.c
@@ -0,0 +1,21 @@
+/*
+** -*- C -*-
+**
+** cabsa.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Wed Apr 25 13:23:20 2007 jofret
+** Last update Mon Oct 22 10:46:16 2007 bruno
+**
+** Copyright INRIA 2007
+*/
+
+#include "abs.h"
+
+
+void cabsa(floatComplex *in, int size, float* out) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ out[i] = cabss(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cabss.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cabss.c
new file mode 100644
index 00000000..8cd766df
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cabss.c
@@ -0,0 +1,30 @@
+/*
+ * 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
+ *
+ */
+
+
+#include "abs.h"
+#include "sqrt.h"
+#include "max.h"
+#include "min.h"
+
+float cabss(floatComplex in) {
+ float real = sabss(creals(in));
+ float imag = sabss(cimags(in));
+ float zMax = max(real, imag);
+ float zMin = min(real, imag);
+
+ if(zMin == 0)
+ {
+ return zMax;
+ }
+ return zMax * (ssqrts(1 + (zMin / zMax) * (zMin / zMax)));
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cexpa.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cexpa.c
new file mode 100644
index 00000000..0380e43f
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cexpa.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** cexpa.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Dec 7 14:54:24 2006 jofret
+** Last update Mon Oct 22 09:53:24 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#include "exp.h"
+
+void cexpa(floatComplex* x, int size, floatComplex* y) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = cexps(x[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cexps.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cexps.c
new file mode 100644
index 00000000..667c29d0
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cexps.c
@@ -0,0 +1,23 @@
+/*
+** -*- C -*-
+**
+** cexps.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Dec 7 12:04:28 2006 jofret
+** Last update Fri Feb 23 17:08:27 2007 jofret
+**
+** Copyright INRIA 2006
+*/
+
+#include "exp.h"
+#include "cos.h"
+#include "sin.h"
+
+floatComplex cexps(floatComplex z) {
+ float real = creals(z);
+ float imag = cimags(z);
+
+ return FloatComplex(sexps(real)*scoss(imag),
+ sexps(real)*ssins(imag));
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/clog10a.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/clog10a.c
new file mode 100644
index 00000000..6f8d1905
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/clog10a.c
@@ -0,0 +1,20 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#include "log10.h"
+
+void clog10a(floatComplex* in, int size, floatComplex* out) {
+ int i = 0;
+ for (i = 0 ; i < size ; ++i) {
+ out[i] = clog10s(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/clog10s.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/clog10s.c
new file mode 100644
index 00000000..7d35ab1b
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/clog10s.c
@@ -0,0 +1,19 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#include "log10.h"
+#include "log.h"
+
+floatComplex clog10s(floatComplex in) {
+ floatComplex log_z = clogs(in);
+ return FloatComplex(creals(log_z) / slogs(10.0f), cimags(log_z) / slogs(10.0f));
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/clog1pa.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/clog1pa.c
new file mode 100644
index 00000000..76c78a94
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/clog1pa.c
@@ -0,0 +1,20 @@
+/*
+ * 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
+ *
+ */
+
+#include "log1p.h"
+
+void clog1pa(floatComplex* in, int size, floatComplex* out) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ out[i] = clog1ps(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/clog1ps.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/clog1ps.c
new file mode 100644
index 00000000..1cf6c555
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/clog1ps.c
@@ -0,0 +1,18 @@
+/*
+ * 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
+ *
+ */
+
+#include "log1p.h"
+#include "log.h"
+
+floatComplex clog1ps(floatComplex in) {
+ return clogs(FloatComplex(creals(in) + 1, cimags(in)));
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cloga.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cloga.c
new file mode 100644
index 00000000..6edf1dd0
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cloga.c
@@ -0,0 +1,20 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#include "log.h"
+
+void cloga(floatComplex* in, int size, floatComplex* out) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ out[i] = clogs(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/clogs.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/clogs.c
new file mode 100644
index 00000000..d402d1d1
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/clogs.c
@@ -0,0 +1,64 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#include <math.h>
+#include "log.h"
+#include "lapack.h"
+#include "log1p.h"
+#include "pythag.h"
+
+floatComplex clogs(floatComplex in) {
+ static float sR2 = 1.41421356237309504f;
+
+ float _RealIn = creals(in);
+ float _ImgIn = cimags(in);
+
+ float _RealOut = 0;
+ float _ImgOut = 0;
+
+ float RMax = (float) getOverflowThreshold();
+ float LInf = sqrtf((float) getUnderflowThreshold());
+ float LSup = sqrtf(0.5f * RMax);
+
+ float AbsReal = fabsf(_RealIn);
+ float AbsImg = fabsf(_ImgIn);
+
+ _ImgOut = atan2f(_ImgIn, _RealIn);
+
+ if(_ImgIn > _RealIn)
+ {/* switch Real part and Imaginary part */
+ float Temp = AbsReal;
+ AbsReal = AbsImg;
+ AbsImg = Temp;
+ }
+
+ if((0.5 <= AbsReal) && (AbsReal <= sR2))
+ _RealOut = 0.5f * slog1ps((AbsReal - 1.0f) * (AbsReal + 1.0f) + AbsImg * AbsImg);
+ else if(LInf < AbsImg && AbsReal < LSup)
+ _RealOut = 0.5f * slogs(AbsReal * AbsReal + AbsImg * AbsImg);
+ else if(AbsReal > RMax)
+ _RealOut = AbsReal;
+ else
+ {
+ float Temp = spythags(AbsReal, AbsImg);
+ if(Temp <= RMax)
+ {
+ _RealOut = slogs(Temp);
+ }
+ else /* handle rare spurious overflow with : */
+ {
+ float Temp2 = AbsImg/AbsReal;
+ _RealOut = slogs(AbsReal) + 0.5f * slog1ps(Temp2 * Temp2);
+ }
+ }
+ return FloatComplex(_RealOut, _ImgOut);
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cmeana.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cmeana.c
new file mode 100644
index 00000000..ad2a66fc
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cmeana.c
@@ -0,0 +1,24 @@
+/*
+ * 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
+ *
+ */
+
+#include "mean.h"
+
+floatComplex cmeana(floatComplex *in, int size) {
+ floatComplex accumulate = FloatComplex(0.0f, 0.0f);
+ int i = 0;
+
+ for (i = 0; i < size; ++i)
+ {
+ accumulate = cadds(accumulate, in[i]);
+ }
+ return FloatComplex(creals(accumulate) / (float) size, cimags(accumulate) / (float) size);
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/conj.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/conj.c
new file mode 100644
index 00000000..78fbfa76
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/conj.c
@@ -0,0 +1,45 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Copyright Raffaele Nutricato
+*/
+
+#include "conj.h"
+
+
+floatComplex c0conjc0(floatComplex in)
+{
+ floatComplex out;
+ out = FloatComplex(creals(in),-cimags(in));
+ return (out);
+}
+
+doubleComplex z0conjz0(doubleComplex in)
+{
+ doubleComplex out;
+ out = DoubleComplex(zreals(in),-zimags(in));
+ return (out);
+}
+
+void c2conjc2(floatComplex* in, int* insize, floatComplex* out)
+{
+ int i;
+
+ for (i=0;i<insize[0]*insize[1];i++)
+ {
+ out[i] = FloatComplex(creals(in[i]),-cimags(in[i]));
+ }
+}
+
+void z2conjz2(doubleComplex* in, int* insize, doubleComplex* out)
+{
+ int i;
+
+ for (i=0;i<insize[0]*insize[1];i++)
+ {
+ out[i] = DoubleComplex(zreals(in[i]),-zimags(in[i]));
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cos.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cos.c
new file mode 100644
index 00000000..51c88c0c
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cos.c
@@ -0,0 +1,62 @@
+#include <math.h>
+#include "cos.h"
+
+float scoss(float x) {
+ return (cos(x));
+}
+
+double dcoss(double x) {
+ return (cos(x));
+}
+
+floatComplex ccoss(floatComplex z)
+{
+ float real = creals(z);
+ float imag = cimags(z);
+
+ return FloatComplex(scoss(real) * scoshs(imag),
+ -ssins(real) * ssinhs(imag));
+}
+
+doubleComplex zcoss(doubleComplex z)
+{
+ double real = zreals(z);
+ double imag = zimags(z);
+
+ return DoubleComplex(dcoss(real) * dcoshs(imag),
+ -dsins(real) * dsinhs(imag));
+}
+
+void scosa(float* x, int size, float* y)
+{
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = scoss(x[i]);
+ }
+}
+
+void dcosa(double* x, int size, double* y)
+{
+ int i = 0;
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = dcoss(x[i]);
+ }
+}
+
+void ccosa(floatComplex* x, int size, floatComplex* y)
+{
+ int i = 0;
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = ccoss(x[i]);
+ }
+}
+
+void zcosa(doubleComplex* x, int size, doubleComplex* y)
+{
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = zcoss(x[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cosh.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cosh.c
new file mode 100644
index 00000000..0fd7db55
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cosh.c
@@ -0,0 +1,40 @@
+#include <math.h>
+#include "cosh.h"
+#include "cos.h"
+
+
+void zcosha(doubleComplex* x, int size, doubleComplex* y) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = zcoshs(x[i]);
+ }
+}
+
+float scoshs(float x) {
+ return (cosh(x));
+}
+
+void scosha(float* x, int size, float* y) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = scoshs(x[i]);
+ }
+}
+
+double dcoshs(double x) {
+ return (cosh(x));
+}
+
+void dcosha(double* x, int size, double* y) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = dcoshs(x[i]);
+ }
+}
+
+doubleComplex zcoshs(doubleComplex z) {
+ double real = zreals(z);
+ double minusImag = -zimags(z);
+
+ return (zcoss(DoubleComplex(minusImag, real)));
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cpythags.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cpythags.c
new file mode 100644
index 00000000..0701ce98
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/cpythags.c
@@ -0,0 +1,19 @@
+/*
+** -*- C -*-
+**
+** spythags.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Mon Apr 23 11:31:47 2007 jofret
+** Last update Thu Aug 16 12:17:21 2007 bruno
+**
+** Copyright INRIA 2007
+*/
+
+#include "complex.h"
+#include "pythag.h"
+
+floatComplex cpythags(floatComplex x, floatComplex y) {
+ return (csqrts( cadds(ctimess(x,x),
+ ctimess(y,y)) ));
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/csqrta.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/csqrta.c
new file mode 100644
index 00000000..62851ff1
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/csqrta.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** csqrta.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Fri Sep 7 11:40:55 2007 bruno
+** Last update Mon Oct 22 09:49:44 2007 bruno
+**
+** Copyright INRIA 2007
+*/
+
+#include "sqrt.h"
+
+void csqrta(floatComplex* in, int size, floatComplex* out) {
+ int i = 0;
+ for (i = 0 ; i < size ; ++i) {
+ out[i] = csqrts(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/csqrts.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/csqrts.c
new file mode 100644
index 00000000..f39b67f5
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/csqrts.c
@@ -0,0 +1,18 @@
+/*
+ * 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
+ *
+ */
+
+#include "sqrt.h"
+
+floatComplex csqrts(floatComplex in) {
+ /* FIXME : Dummy ... */
+ return in;
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/csuma.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/csuma.c
new file mode 100644
index 00000000..68ebb291
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/csuma.c
@@ -0,0 +1,24 @@
+/*
+ * 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
+ *
+ */
+
+#include "sum.h"
+
+floatComplex csuma(floatComplex *in, int size) {
+ floatComplex accumulate = FloatComplex(0.0f, 0.0f);
+ int i = 0;
+
+ for (i = 0; i < size; ++i)
+ {
+ accumulate = cadds(accumulate, in[i]);
+ }
+ return accumulate;
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dabsa.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dabsa.c
new file mode 100644
index 00000000..5081fa25
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dabsa.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** dabsa.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Wed Apr 25 11:17:25 2007 jofret
+** Last update Mon Oct 22 10:45:56 2007 bruno
+**
+** Copyright INRIA 2007
+*/
+
+#include "abs.h"
+
+void dabsa(double *in, int size, double* out){
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ out[i] = dabss(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dabss.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dabss.c
new file mode 100644
index 00000000..16f04773
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dabss.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** sabss.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Feb 8 10:26:22 2007 jofret
+** Last update Fri Apr 20 15:56:25 2007 jofret
+**
+** Copyright INRIA 2007
+*/
+
+#include "abs.h"
+
+double dabss(double num) {
+ if (num >= 0) {
+ return num;
+ }
+ return -num;
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dexpa.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dexpa.c
new file mode 100644
index 00000000..037d89e5
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dexpa.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** dexpa.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Dec 7 14:54:56 2006 jofret
+** Last update Mon Oct 22 09:53:15 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#include "exp.h"
+
+void dexpa(double* x, int size, double* y) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = dexps(x[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dexps.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dexps.c
new file mode 100644
index 00000000..21c92aca
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dexps.c
@@ -0,0 +1,18 @@
+/*
+** -*- C -*-
+**
+** dexps.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Dec 7 12:02:41 2006 jofret
+** Last update Fri Apr 20 14:46:12 2007 jofret
+**
+** Copyright INRIA 2006
+*/
+
+#include <math.h>
+#include "exp.h"
+
+double dexps(double x) {
+ return (exp(x));
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/disp.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/disp.c
new file mode 100644
index 00000000..4cb7b154
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/disp.c
@@ -0,0 +1,194 @@
+#include "disp.h"
+
+ /* =================================
+ =================================
+ === SCILAB 2 C Debug Library. ===
+ =================================
+ =================================
+ */
+/*~ double ddisps1 (double invar)
+{
+ char* invarname = "ans";
+ printf("\n%s: %f\n",invarname,invar);
+ return 0;
+}
+*/
+
+
+double sdisps2 (float invar,char* invarname)
+{
+ printf("\n%s: %g\n",invarname,invar);
+ return 0;
+}
+
+double ddisps2 (double invar,char* invarname)
+{
+ printf("\n%s: %g\n",invarname,invar);
+ return 0;
+}
+
+double cdisps2 (floatComplex invar,char* invarname)
+{
+ printf("\n%s: (%g,%g)\n",invarname,creals(invar),cimags(invar));
+ return 0;
+}
+
+double zdisps2 (doubleComplex invar,char* invarname)
+{
+ printf("\n%s: (%g,%g)\n",invarname,zreals(invar),zimags(invar));
+ return 0;
+}
+
+double g0dispd0(char array)
+{
+ /*int counterrows;*/
+ /*int countercols;*/
+ /*
+ //~ printf("\n");
+ //~ printf("\n%s:\n",arrayname);
+ */
+ printf("\n");
+ printf("%c",array);
+ printf("\n");
+ return 0;
+}
+/*
+double ddispa1(double *array,int* tmparraysize)
+{
+ char* arrayname = "ans";
+ int counterrows ;
+ int countercols ;
+
+ printf("\n========================================================");
+ printf("\n%s:\n",arrayname);
+ for(counterrows = 0; counterrows < tmparraysize[0]; counterrows++)
+ {
+ for(countercols = 0; countercols < tmparraysize[1]; countercols++)
+ {
+ printf("\t[%d,%d]:%f",counterrows,countercols,array[counterrows*tmparraysize[0]+countercols]);
+ }
+ printf("\n");
+ }
+ printf("\n========================================================\n");
+ return 0;
+}
+*/
+
+double sdispa2(float *array,int* tmparraysize,char* arrayname)
+{
+ int counterrows ;
+ int countercols ;
+
+ printf("\n========================================================");
+ printf("\n%s:\n",arrayname);
+ for(counterrows = 0; counterrows < tmparraysize[0]; counterrows++)
+ {
+ for(countercols = 0; countercols < tmparraysize[1]; countercols++)
+ {
+ printf(" [%d,%d]:%g",counterrows+1,countercols+1,array[counterrows*tmparraysize[1]+countercols]);
+ }
+ printf("\n");
+ }
+ printf("\n========================================================\n");
+ return 0;
+}
+
+double ddispa2(double *array,int* tmparraysize,char* arrayname)
+{
+ int counterrows ;
+ int countercols ;
+
+ printf("\n========================================================");
+ printf("\n%s:\n",arrayname);
+ for(counterrows = 0; counterrows < tmparraysize[0]; counterrows++)
+ {
+ for(countercols = 0; countercols < tmparraysize[1]; countercols++)
+ {
+ printf(" [%d,%d]:%g",counterrows+1,countercols+1,array[counterrows*tmparraysize[1]+countercols]);
+ }
+ printf("\n");
+ }
+ printf("\n========================================================\n");
+ return 0;
+}
+
+
+double cdispa2(floatComplex *array,int* tmparraysize,char* arrayname)
+{
+ int counterrows ;
+ int countercols ;
+
+ printf("\n========================================================");
+ printf("\n%s:\n",arrayname);
+ for(counterrows = 0; counterrows < tmparraysize[0]; counterrows++)
+ {
+ for(countercols = 0; countercols < tmparraysize[1]; countercols++)
+ {
+ printf(" [%d,%d]:(%g,%g)",counterrows+1,countercols+1,
+ creals(array[counterrows*tmparraysize[1]+countercols]),
+ cimags(array[counterrows*tmparraysize[1]+countercols]));
+ }
+ printf("\n");
+ }
+ printf("\n========================================================\n");
+ return 0;
+}
+
+double zdispa2(doubleComplex *array,int* tmparraysize,char* arrayname)
+{
+ int counterrows ;
+ int countercols ;
+
+ printf("\n========================================================");
+ printf("\n%s:\n",arrayname);
+ for(counterrows = 0; counterrows < tmparraysize[0]; counterrows++)
+ {
+ for(countercols = 0; countercols < tmparraysize[1]; countercols++)
+ {
+ printf(" [%d,%d]:(%g,%g)",counterrows+1,countercols+1,
+ zreals(array[counterrows*tmparraysize[1]+countercols]),
+ zimags(array[counterrows*tmparraysize[1]+countercols]));
+ }
+ printf("\n");
+ }
+ printf("\n========================================================\n");
+ return 0;
+}
+
+double idispa2(int *array,int* tmparraysize,char* arrayname)
+{
+ int counterrows ;
+ int countercols ;
+
+ printf("\n========================================================");
+ printf("\n%s:\n",arrayname);
+ for(counterrows = 0; counterrows < tmparraysize[0]; counterrows++)
+ {
+ for(countercols = 0; countercols < tmparraysize[1]; countercols++)
+ {
+ printf(" [%d,%d]:%d",counterrows+1,countercols+1,array[counterrows*tmparraysize[1]+countercols]);
+ }
+ printf("\n");
+ }
+ printf("\n========================================================\n");
+ return 0;
+}
+
+double g2dispd0(char *array,int* tmparraysize)
+{
+ int counterrows;
+ /*int countercols;*/
+ /*
+ //~ printf("\n");
+ //~ printf("\n%s:\n",arrayname);
+ */
+ for(counterrows = 0; counterrows < tmparraysize[0]; counterrows++)
+ {
+ printf("\n");
+ printf("%s",array);
+ printf("\n");
+ }
+ return 0;
+}
+
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dlog10a.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dlog10a.c
new file mode 100644
index 00000000..fcfeb486
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dlog10a.c
@@ -0,0 +1,20 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#include "log10.h"
+
+void dlog10a(double* in, int size, double* out) {
+ int i = 0;
+ for (i = 0 ; i < size ; ++i) {
+ out[i] = dlog10s(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dlog10s.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dlog10s.c
new file mode 100644
index 00000000..14bc739b
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dlog10s.c
@@ -0,0 +1,18 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#include <math.h>
+#include "log10.h"
+
+double dlog10s(double in) {
+ return (log10(in));
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dlog1pa.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dlog1pa.c
new file mode 100644
index 00000000..c1bf85ba
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dlog1pa.c
@@ -0,0 +1,20 @@
+/*
+ * 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
+ *
+ */
+
+#include "log1p.h"
+
+void dlog1pa(double* x, int size, double* y) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = dlog1ps(x[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dlog1ps.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dlog1ps.c
new file mode 100644
index 00000000..8275ea57
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dlog1ps.c
@@ -0,0 +1,37 @@
+/*
+ * 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
+ *
+ */
+
+#include "log1p.h"
+#include "log.h"
+
+double dlog1ps(double in) {
+ static double A = -1.0/3.0;
+ static double B = 0.5;
+
+ if(in < -1)
+ {/* got NaN */
+ return (in - in) / (in - in); /* NaN */
+ }
+ else if(A <= in && in <= B)
+ {/* use the function log((1+g)/(1-g)) with g = x/(x + 2) */
+ double Temp = 0;
+ Temp = in / ( in + 2);
+ /*
+return lnp1m1(Temp);
+ */
+ return 0;
+ }
+ else
+ {/* use the standard formula */
+ return dlogs(in + 1);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dloga.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dloga.c
new file mode 100644
index 00000000..e5f7490d
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dloga.c
@@ -0,0 +1,20 @@
+/*
+ * 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
+ *
+ */
+
+#include "log.h"
+
+void dloga(double* x, int size, double* y) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = dlogs(x[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dlogs.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dlogs.c
new file mode 100644
index 00000000..c75bef21
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dlogs.c
@@ -0,0 +1,18 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#include <math.h>
+#include "log.h"
+
+double dlogs(double in) {
+ return (log(in));
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dmeana.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dmeana.c
new file mode 100644
index 00000000..db11766a
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dmeana.c
@@ -0,0 +1,25 @@
+/*
+ * 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
+ *
+ */
+
+#include "mean.h"
+
+double dmeana(double *in, int size) {
+ double accumulate = 0.0;
+ int i = 0;
+
+ for (i = 0; i < size; ++i)
+ {
+ accumulate += in[i];
+ }
+ return accumulate / (double) size;
+
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/doubleComplex.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/doubleComplex.c
new file mode 100644
index 00000000..380be331
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/doubleComplex.c
@@ -0,0 +1,144 @@
+/*
+** -*- C -*-
+**
+** doubleComplex.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Nov 30 16:27:08 2006 jofret
+** Last update Thu Aug 16 12:25:46 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#ifdef __STDC_VERSION__
+# ifndef STDC
+# define STDC
+# endif
+# if __STDC_VERSION__ >= 199901L
+# ifndef STDC99
+# define STDC99
+# endif
+# endif
+#endif
+
+#include "doubleComplex.h"
+
+#ifndef STDC99
+/*
+** \function zreals
+** \brief Return a Complex Real Part .
+*/
+double zreals(doubleComplex z) {
+ return z.real;
+}
+
+/*
+** \function zimags
+** \brief Return a Complex Imaginary Part .
+*/
+double zimags(doubleComplex z) {
+ return z.imag;
+}
+#else
+/*
+** \function zreals
+** \brief Return a Complex Real Part .
+*/
+double zreals(doubleComplex z) {
+ return creal(z);
+}
+
+/*
+** \function zimags
+** \brief Return a Complex Imaginary Part .
+*/
+double zimags(doubleComplex z) {
+ return cimag(z);
+}
+
+
+#endif
+
+/*
+** \function DoubleComplex
+** \brief construct a Double Complex .
+*/
+doubleComplex DoubleComplex(double real, double imag) {
+ doubleComplex z;
+#ifndef STDC99
+ z.real = real;
+ z.imag = imag;
+#else
+ z = real + I * imag;
+#endif
+ return z;
+}
+
+/*
+** \function isreal
+** \brief check if complex is real .
+*/
+bool zisreals(doubleComplex z) {
+ if (zimags(z) == 0)
+ return true;
+ return false;
+}
+
+/*
+** \function isimag
+** \brief check if complex is pure imaginary .
+*/
+bool zisimags(doubleComplex z) {
+ if (zreals(z) == 0)
+ return true;
+ return false;
+}
+
+/*
+** Operators
+** {
+*/
+
+/*
+** \function zadds
+** \brief add 2 Complex numbers.
+*/
+doubleComplex zadds(doubleComplex z1, doubleComplex z2) {
+#ifndef STDC99
+ return DoubleComplex(z1.real + z2.real, z1.imag + z2.imag);
+#else
+ return z1 + z2;
+#endif
+}
+
+/*
+** \function zdiffs
+** \brief diff 2 Complex numbers.
+*/
+doubleComplex zdiffs(doubleComplex z1, doubleComplex z2) {
+#ifndef STDC99
+ return DoubleComplex(z1.real - z2.real, z1.imag - z2.imag);
+#else
+ return z1 - z2;
+#endif
+}
+
+/*
+** \function ztimess
+** \brief Multiply 2 Complex numbers.
+*/
+doubleComplex ztimess(doubleComplex z1, doubleComplex z2) {
+#ifndef STDC99
+ return DoubleComplex(z1.real*z2.real - z1.imag*z2.imag,
+ z1.real*z2.imag + z2.real*z1.imag);
+#else
+ return z1 * z2;
+#endif
+}
+
+
+
+
+/*
+** }
+*/
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dpythags.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dpythags.c
new file mode 100644
index 00000000..a40fa7cd
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dpythags.c
@@ -0,0 +1,18 @@
+/*
+** -*- C -*-
+**
+** dpythags.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Mon Apr 23 11:54:15 2007 jofret
+** Last update Thu Aug 16 12:10:17 2007 bruno
+**
+** Copyright INRIA 2007
+*/
+
+#include "pythag.h"
+
+double dpythags(double x, double y) {
+ return (dsqrts( (x*x) + (y*y) ) );
+}
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dsqrta.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dsqrta.c
new file mode 100644
index 00000000..56d6ea1f
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dsqrta.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** dsqrta.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Fri Sep 7 11:40:21 2007 bruno
+** Last update Mon Oct 22 09:49:34 2007 bruno
+**
+** Copyright INRIA 2007
+*/
+
+#include "sqrt.h"
+
+void dsqrta(double* in, int size, double* out) {
+ int i = 0;
+ for (i = 0 ; i < size ; ++i) {
+ out[i] = dsqrts(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dsqrts.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dsqrts.c
new file mode 100644
index 00000000..a8159e38
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dsqrts.c
@@ -0,0 +1,18 @@
+/*
+** -*- C -*-
+**
+** dsqrts.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Fri Apr 20 10:59:31 2007 jofret
+** Last update Mon Apr 23 17:37:02 2007 jofret
+**
+** Copyright INRIA 2007
+*/
+
+#include <math.h>
+#include "sqrt.h"
+
+double dsqrts(double in){
+ return sqrt(in);
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dsuma.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dsuma.c
new file mode 100644
index 00000000..eddceb6f
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/dsuma.c
@@ -0,0 +1,25 @@
+/*
+ * 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
+ *
+ */
+
+#include "sum.h"
+
+double dsuma(double *in, int size) {
+ double accumulate = 0.0;
+ int i = 0;
+
+ for (i = 0; i < size; ++i)
+ {
+ accumulate += in[i];
+ }
+ return accumulate;
+
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/floatComplex.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/floatComplex.c
new file mode 100644
index 00000000..a5483161
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/floatComplex.c
@@ -0,0 +1,143 @@
+/*
+** -*- C -*-
+**
+** floatComplex.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Nov 30 16:27:08 2006 jofret
+** Last update Thu Aug 30 09:42:59 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#ifdef __STDC_VERSION__
+# ifndef STDC
+# define STDC
+# endif
+# if __STDC_VERSION__ >= 199901L
+# ifndef STDC99
+# define STDC99
+# endif
+# endif
+#endif
+
+#include <stdio.h>
+#include "floatComplex.h"
+
+#ifndef STDC99
+/*
+** \function real
+** \brief Return a Complex Real Part .
+*/
+float creals(floatComplex z) {
+ return z.real;
+}
+
+/*
+** \function imag
+** \brief Return a Complex Imaginary Part .
+*/
+float cimags(floatComplex z) {
+ return z.imag;
+}
+#else
+/*
+** \function real
+** \brief Return a Complex Real Part .
+*/
+float creals(floatComplex z) {
+ return crealf(z);
+}
+
+/*
+** \function imag
+** \brief Return a Complex Imaginary Part .
+*/
+float cimags(floatComplex z) {
+ return cimagf(z);
+}
+#endif
+
+/*
+** \function FloatComplex
+** \brief construct a Float Complex .
+*/
+floatComplex FloatComplex(float a, float b) {
+ floatComplex z;
+#ifndef STDC99
+ z.real = a;
+ z.imag = b;
+#else
+ z = a + I * b;
+#endif
+ return z;
+}
+
+/*
+** \function isreal
+** \brief check if complex is real .
+*/
+bool cisreals(floatComplex z) {
+ if (cimags(z) == 0)
+ return true;
+ return false;
+}
+
+/*
+** \function isimag
+** \brief check if complex is pure imaginary .
+*/
+bool cisimags(floatComplex z) {
+ if (creals(z) == 0)
+ return true;
+ return false;
+}
+
+/*
+** Operators
+** {
+*/
+
+/*
+** \function cadds
+** \brief add 2 Complex numbers.
+*/
+floatComplex cadds(floatComplex z1, floatComplex z2) {
+#ifndef STDC99
+ return FloatComplex(z1.real + z2.real, z1.imag + z2.imag);
+#else
+ return z1 + z2;
+#endif
+}
+
+/*
+** \function cdiffs
+** \brief diff 2 Complex numbers.
+*/
+floatComplex cdiffs(floatComplex z1, floatComplex z2) {
+#ifndef STDC99
+ return FloatComplex(z1.real - z2.real, z1.imag - z2.imag);
+#else
+ return z1 - z2;
+#endif
+}
+
+/*
+** \function ctimess
+** \brief Multiply 2 Complex numbers.
+*/
+floatComplex ctimess(floatComplex z1, floatComplex z2) {
+#ifndef STDC99
+ return FloatComplex(z1.real*z2.real - z1.imag*z2.imag,
+ z1.real*z2.imag + z2.real*z1.imag);
+#else
+ return z1 * z2;
+#endif
+}
+
+
+
+
+/*
+** }
+*/
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/ones.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/ones.c
new file mode 100644
index 00000000..97cafbbd
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/ones.c
@@ -0,0 +1,40 @@
+/*
+** -*- C -*-
+**
+** OpEqual.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "ones.h"
+void ddonesss1(double in1, double in2, double* out)
+{
+ int i = 0;
+ for (i = 0 ; i < (((int) in1) * ((int) in2)) ; i++)
+ {
+ out[i] = 1;
+ }
+}
+
+double d0d0onesd0(double in1, double in2)
+{
+ /*RN anche qui c'e' da capire se questi casi banali possono essere eliminati.*/
+ return 1;
+}
+
+void ssonesss1(float in1, float in2, float* out)
+{
+ int i = 0;
+ for (i = 0 ; i < (((int) in1) * ((int) in2)) ; i++)
+ {
+ out[i] = 1;
+ }
+}
+
+float s0s0oness0(float in1, float in2)
+{
+ /*RN anche qui c'e' da capire se questi casi banali possono essere eliminati.*/
+ return 1;
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sabsa.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sabsa.c
new file mode 100644
index 00000000..df5af141
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sabsa.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** sabsa.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Wed Apr 25 10:53:09 2007 jofret
+** Last update Mon Oct 22 10:45:22 2007 bruno
+**
+** Copyright INRIA 2007
+*/
+
+#include "abs.h"
+
+void sabsa(float *in, int size, float* out) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ out[i] = sabss(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sabss.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sabss.c
new file mode 100644
index 00000000..e567b210
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sabss.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** sabss.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Feb 8 10:26:22 2007 jofret
+** Last update Fri Apr 20 15:56:37 2007 jofret
+**
+** Copyright INRIA 2007
+*/
+
+#include "abs.h"
+
+float sabss(float num) {
+ if (num >= 0) {
+ return num;
+ }
+ return -num;
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sexpa.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sexpa.c
new file mode 100644
index 00000000..3c576971
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sexpa.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** sexpa.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Dec 7 16:03:27 2006 jofret
+** Last update Mon Oct 22 09:53:06 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#include "exp.h"
+
+void sexpa(float* x, int size, float* y) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = sexps(x[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sexps.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sexps.c
new file mode 100644
index 00000000..643e8873
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sexps.c
@@ -0,0 +1,18 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2006-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#include <math.h>
+#include "exp.h"
+
+float sexps(float x) {
+ return (expf(x));
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sin.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sin.c
new file mode 100644
index 00000000..748bd338
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sin.c
@@ -0,0 +1,61 @@
+#include <math.h>
+#include "sin.h"
+
+float ssins(float x) {
+ return (sin(x));
+}
+
+double dsins(double x) {
+ return (sin(x));
+}
+
+floatComplex csins(floatComplex z)
+{
+ float real = creals(z);
+ float imag = cimags(z);
+
+ return(FloatComplex(ssins(real) * scoshs(imag), scoss(real) * ssinhs(imag)));
+}
+
+doubleComplex zsins(doubleComplex z)
+{
+ double real = zreals(z);
+ double imag = zimags(z);
+
+ return(DoubleComplex(dsins(real) * dcoshs(imag), dcoss(real) * dsinhs(imag)));
+}
+
+
+void ssina(float* x, int size, float* y) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = ssins(x[i]);
+ }
+}
+
+void dsina(double* x, int size, double* y) {
+ int i = 0;
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = dsins(x[i]);
+ }
+}
+
+void csina(floatComplex* x, int size, floatComplex* y)
+{
+ int i = 0;
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = csins(x[i]);
+ }
+}
+
+void zsina(doubleComplex* x, int size, doubleComplex* y)
+{
+ int i = 0;
+ for (i = 0; i < size; ++i)
+ {
+ y[i] = zsins(x[i]);
+ }
+}
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sinh.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sinh.c
new file mode 100644
index 00000000..dbdf7ee9
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sinh.c
@@ -0,0 +1,58 @@
+#include <math.h>
+#include "sinh.h"
+#include "sin.h"
+
+float ssinhs(float x) {
+ return (sinh(x));
+}
+
+double dsinhs(double x) {
+ return (sinh(x));
+}
+
+floatComplex csinhs(floatComplex z)
+{
+ float real = creals(z);
+ float imag = cimags(z);
+
+ floatComplex result = csins(FloatComplex(-imag, real));
+ return (FloatComplex(cimags(result), -creals(result)));
+}
+
+doubleComplex zsinhs(doubleComplex z) {
+ double real = zreals(z);
+ double imag = zimags(z);
+
+ doubleComplex result = zsins(DoubleComplex(-imag, real));
+ return (DoubleComplex(zimags(result), -zreals(result)));
+}
+
+void ssinha(float* x, int size, float* y) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = ssinhs(x[i]);
+ }
+}
+
+void dsinha(double* x, int size, double* y) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = dsinhs(x[i]);
+ }
+}
+
+void csinha(floatComplex* x, int size, floatComplex* y)
+{
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = csinhs(x[i]);
+ }
+}
+
+void zsinha(doubleComplex* x, int size, doubleComplex* y) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = zsinhs(x[i]);
+ }
+}
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/slog10a.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/slog10a.c
new file mode 100644
index 00000000..b5f65405
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/slog10a.c
@@ -0,0 +1,20 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#include "log10.h"
+
+void slog10a(float* in, int size, float* out) {
+ int i = 0;
+ for (i = 0 ; i < size ; ++i) {
+ out[i] = slog10s(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/slog10s.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/slog10s.c
new file mode 100644
index 00000000..cd1ed8e8
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/slog10s.c
@@ -0,0 +1,18 @@
+/*
+ * 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
+ *
+ */
+
+#include <math.h>
+#include "log10.h"
+
+float slog10s(float in) {
+ return (log10f(in));
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/slog1pa.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/slog1pa.c
new file mode 100644
index 00000000..05334841
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/slog1pa.c
@@ -0,0 +1,20 @@
+/*
+ * 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
+ *
+ */
+
+#include "log1p.h"
+
+void slog1pa(float* in, int size, float* out) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ out[i] = slog1ps(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/slog1ps.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/slog1ps.c
new file mode 100644
index 00000000..22d59544
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/slog1ps.c
@@ -0,0 +1,18 @@
+/*
+ * 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
+ *
+ */
+
+#include <math.h>
+#include "log1p.h"
+
+float slog1ps(float in) {
+ return (log1pf(in));
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sloga.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sloga.c
new file mode 100644
index 00000000..e6fab861
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/sloga.c
@@ -0,0 +1,20 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#include "log.h"
+
+void sloga(float* in, int size, float* out) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ out[i] = slogs(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/slogs.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/slogs.c
new file mode 100644
index 00000000..f8e7b61b
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/slogs.c
@@ -0,0 +1,18 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#include <math.h>
+#include "log.h"
+
+float slogs(float in) {
+ return (logf(in));
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/smeana.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/smeana.c
new file mode 100644
index 00000000..f4b1cd10
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/smeana.c
@@ -0,0 +1,25 @@
+/*
+ * 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
+ *
+ */
+
+#include "mean.h"
+
+float smeana(float *in, int size) {
+ float accumulate = 0.0f;
+ int i = 0;
+
+ for (i = 0; i < size; ++i)
+ {
+ accumulate += in[i];
+ }
+ return accumulate / (float) size;
+
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/spythags.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/spythags.c
new file mode 100644
index 00000000..47c0e85c
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/spythags.c
@@ -0,0 +1,17 @@
+/*
+** -*- C -*-
+**
+** spythags.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Mon Apr 23 11:31:47 2007 jofret
+** Last update Thu Aug 16 12:10:01 2007 bruno
+**
+** Copyright INRIA 2007
+*/
+
+#include "pythag.h"
+
+float spythags(float x, float y) {
+ return (ssqrts( (x*x) + (y*y) ));
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/ssqrta.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/ssqrta.c
new file mode 100644
index 00000000..6ffa5c26
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/ssqrta.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** ssqrta.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Fri Sep 7 11:06:03 2007 bruno
+** Last update Mon Oct 22 09:49:22 2007 bruno
+**
+** Copyright INRIA 2007
+*/
+
+#include "sqrt.h"
+
+void ssqrta(float* in, int size, float* out) {
+ int i = 0;
+ for (i = 0 ; i < size ; ++i) {
+ out[i] = ssqrts(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/ssqrts.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/ssqrts.c
new file mode 100644
index 00000000..541fea2f
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/ssqrts.c
@@ -0,0 +1,18 @@
+/*
+ * 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
+ *
+ */
+
+#include <math.h>
+#include "sqrt.h"
+
+float ssqrts(float in) {
+ return (float) sqrt((float) in);
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/ssuma.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/ssuma.c
new file mode 100644
index 00000000..aabc7fe0
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/ssuma.c
@@ -0,0 +1,25 @@
+/*
+ * 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
+ *
+ */
+
+#include "sum.h"
+
+float ssuma(float *in, int size) {
+ float accumulate = 0.0f;
+ int i = 0;
+
+ for (i = 0; i < size; ++i)
+ {
+ accumulate += in[i];
+ }
+ return accumulate;
+
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zabsa.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zabsa.c
new file mode 100644
index 00000000..56b24ce9
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zabsa.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** zabsa.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Wed Apr 25 13:24:43 2007 jofret
+** Last update Mon Oct 22 10:47:00 2007 bruno
+**
+** Copyright INRIA 2007
+*/
+
+#include "abs.h"
+
+void zabsa(doubleComplex *in, int size, double* out) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ out[i] = zabss(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zabss.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zabss.c
new file mode 100644
index 00000000..4e7b4dd3
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zabss.c
@@ -0,0 +1,31 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#include <math.h>
+
+#include "abs.h"
+#include "sqrt.h"
+#include "max.h"
+#include "min.h"
+
+double zabss(doubleComplex in) {
+ double real = dabss(zreals(in));
+ double imag = dabss(zimags(in));
+ double zMax = max(real, imag);
+ double zMin = min(real, imag);
+
+ if(zMin == 0)
+ {
+ return zMax;
+ }
+ return zMax * (dsqrts(1 + (zMin / zMax) * (zMin / zMax)));
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zeros.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zeros.c
new file mode 100644
index 00000000..a80a45df
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zeros.c
@@ -0,0 +1,41 @@
+/*
+** -*- C -*-
+**
+** zeros.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#include "zeros.h"
+void d0d0zerosd2(double in1, double in2, double* out)
+{
+ int i = 0;
+ for (i = 0 ; i < (((int) in1) * ((int) in2)) ; i++)
+ {
+ out[i] = 0;
+ }
+}
+
+double d0d0zerosd0(double in1, double in2)
+{
+ /*RN anche qui c'e' da capire se questi casi banali possono essere eliminati.*/
+ return 0;
+}
+
+void s0s0zeross2(float in1, float in2, float* out)
+{
+ int i = 0;
+ for (i = 0 ; i < (((int) in1) * ((int) in2)) ; i++)
+ {
+ out[i] = 0;
+ }
+}
+
+double s0s0zeross0(float in1, float in2)
+{
+ /*RN anche qui c'e' da capire se questi casi banali possono essere eliminati.*/
+ return 0;
+}
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zexpa.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zexpa.c
new file mode 100644
index 00000000..dda49422
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zexpa.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** zexpa.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Dec 7 16:12:02 2006 jofret
+** Last update Mon Oct 22 09:52:57 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#include "exp.h"
+
+void zexpa(doubleComplex* x, int size, doubleComplex* y) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ y[i] = zexps(x[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zexps.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zexps.c
new file mode 100644
index 00000000..91babc61
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zexps.c
@@ -0,0 +1,23 @@
+/*
+** -*- C -*-
+**
+** zexps.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Dec 7 12:05:48 2006 jofret
+** Last update Fri Feb 23 17:08:38 2007 jofret
+**
+** Copyright INRIA 2006
+*/
+
+#include "exp.h"
+#include "cos.h"
+#include "sin.h"
+
+doubleComplex zexps(doubleComplex z) {
+ double real = zreals(z);
+ double imag = zimags(z);
+
+ return DoubleComplex(dexps(real)*dcoss(imag),
+ dexps(real)*dsins(imag));
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zlog10a.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zlog10a.c
new file mode 100644
index 00000000..dd25f7a5
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zlog10a.c
@@ -0,0 +1,20 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#include "log10.h"
+
+void zlog10a(doubleComplex* in, int size, doubleComplex* out) {
+ int i = 0;
+ for (i = 0 ; i < size ; ++i) {
+ out[i] = zlog10s(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zlog10s.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zlog10s.c
new file mode 100644
index 00000000..5403162f
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zlog10s.c
@@ -0,0 +1,19 @@
+/*
+ * 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
+ *
+ */
+
+#include "log10.h"
+#include "log.h"
+
+doubleComplex zlog10s(doubleComplex in) {
+ doubleComplex log_z = zlogs(in);
+ return DoubleComplex(zreals(log_z) / dlogs(10.0), zimags(log_z) / dlogs(10.0));
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zlog1pa.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zlog1pa.c
new file mode 100644
index 00000000..0b6b35ae
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zlog1pa.c
@@ -0,0 +1,20 @@
+/*
+ * 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
+ *
+ */
+
+#include "log1p.h"
+
+void zlog1pa(doubleComplex* in, int size, doubleComplex* out) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ out[i] = zlog1ps(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zlog1ps.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zlog1ps.c
new file mode 100644
index 00000000..8b0aeb67
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zlog1ps.c
@@ -0,0 +1,18 @@
+/*
+ * 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
+ *
+ */
+
+#include "log.h"
+#include "log1p.h"
+
+doubleComplex zlog1ps(doubleComplex in) {
+ return zlogs(DoubleComplex(zreals(in) + 1, zimags(in)));
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zloga.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zloga.c
new file mode 100644
index 00000000..d4f083d7
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zloga.c
@@ -0,0 +1,20 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#include "log.h"
+
+void zloga(doubleComplex* in, int size, doubleComplex* out) {
+ int i = 0;
+ for (i = 0; i < size; ++i) {
+ out[i] = zlogs(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zlogs.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zlogs.c
new file mode 100644
index 00000000..dd0792a9
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zlogs.c
@@ -0,0 +1,64 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Bruno JOFRET
+ *
+ * This file must be used under the terms of the CeCILL.
+ * This source file is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
+ * are also available at
+ * http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#include <math.h>
+#include "log.h"
+#include "lapack.h"
+#include "log1p.h"
+#include "pythag.h"
+
+doubleComplex zlogs(doubleComplex in) {
+ static double sR2 = 1.41421356237309504;
+
+ double _RealIn = zreals(in);
+ double _ImgIn = zimags(in);
+
+ double _RealOut = 0;
+ double _ImgOut = 0;
+
+ double RMax = getOverflowThreshold();
+ double LInf = sqrt(getUnderflowThreshold());
+ double LSup = sqrt(0.5 * RMax);
+
+ double AbsReal = fabs(_RealIn);
+ double AbsImg = fabs(_ImgIn);
+
+ _ImgOut = atan2(_ImgIn, _RealIn);
+
+ if(_ImgIn > _RealIn)
+ {/* switch Real part and Imaginary part */
+ double Temp = AbsReal;
+ AbsReal = AbsImg;
+ AbsImg = Temp;
+ }
+
+ if((0.5 <= AbsReal) && (AbsReal <= sR2))
+ _RealOut = 0.5 * dlog1ps((AbsReal - 1) * (AbsReal + 1) + AbsImg * AbsImg);
+ else if(LInf < AbsImg && AbsReal < LSup)
+ _RealOut = 0.5 * dlogs(AbsReal * AbsReal + AbsImg * AbsImg);
+ else if(AbsReal > RMax)
+ _RealOut = AbsReal;
+ else
+ {
+ double Temp = dpythags(AbsReal, AbsImg);
+ if(Temp <= RMax)
+ {
+ _RealOut = dlogs(Temp);
+ }
+ else /* handle rare spurious overflow with : */
+ {
+ double Temp2 = AbsImg/AbsReal;
+ _RealOut = dlogs(AbsReal) + 0.5 * dlog1ps(Temp2 * Temp2);
+ }
+ }
+ return DoubleComplex(_RealOut, _ImgOut);
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zmeana.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zmeana.c
new file mode 100644
index 00000000..aae80ffc
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zmeana.c
@@ -0,0 +1,24 @@
+/*
+ * 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
+ *
+ */
+
+#include "mean.h"
+
+doubleComplex zmeana(doubleComplex *in, int size) {
+ doubleComplex accumulate = DoubleComplex(0.0f, 0.0f);
+ int i = 0;
+
+ for (i = 0; i < size; ++i)
+ {
+ accumulate = zadds(accumulate, in[i]);
+ }
+ return DoubleComplex(zreals(accumulate) / (double) size, zimags(accumulate) / (double) size);
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zsqrta.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zsqrta.c
new file mode 100644
index 00000000..92e6fb1c
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zsqrta.c
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** zsqrta.c
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Fri Sep 7 11:41:40 2007 bruno
+** Last update Mon Oct 22 09:49:12 2007 bruno
+**
+** Copyright INRIA 2007
+*/
+
+#include "sqrt.h"
+
+void zsqrta(doubleComplex* in, int size, doubleComplex* out) {
+ int i = 0;
+ for (i = 0 ; i < size ; ++i) {
+ out[i] = zsqrts(in[i]);
+ }
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zsqrts.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zsqrts.c
new file mode 100644
index 00000000..05d9192e
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zsqrts.c
@@ -0,0 +1,18 @@
+/*
+ * 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
+ *
+ */
+
+#include "sqrt.h"
+
+doubleComplex zsqrts(doubleComplex in) {
+ /* FIXME : Dummy ... */
+ return in;
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zsuma.c b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zsuma.c
new file mode 100644
index 00000000..e566c95a
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2ccode/zsuma.c
@@ -0,0 +1,24 @@
+/*
+ * 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
+ *
+ */
+
+#include "sum.h"
+
+doubleComplex zsuma(doubleComplex *in, int size) {
+ doubleComplex accumulate = DoubleComplex(0.0f, 0.0f);
+ int i = 0;
+
+ for (i = 0; i < size; ++i)
+ {
+ accumulate = zadds(accumulate, in[i]);
+ }
+ return accumulate;
+}
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/ConvertPrecision.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/ConvertPrecision.h
new file mode 100644
index 00000000..0546432d
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/ConvertPrecision.h
@@ -0,0 +1,18 @@
+/*
+** -*- C -*-
+**
+** ConvertPrecision.h
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+** Copyright Raffaele Nutricato 2008
+*/
+
+#ifndef __ConvertPrecision_H__
+#define __ConvertPrecision_H__
+
+
+double s0doubled0(float in);
+void s2doubled2(float* in, int* inSize, double* out);
+float d0floats0(double in);
+void d2floats2(double* in, int* inSize, float* out);
+#endif /* !__ConvertPrecision_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/FileManagement.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/FileManagement.h
new file mode 100644
index 00000000..937a66ef
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/FileManagement.h
@@ -0,0 +1,13 @@
+/*
+** -*- C -*-
+**
+** FileManagement.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Rubby Nutricato 2007
+** 31-dec-2007
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/Find.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/Find.h
new file mode 100644
index 00000000..be3e590c
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/Find.h
@@ -0,0 +1,15 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Copyright Raffaele Nutricato
+*/
+
+
+#ifndef __FIND_H__
+#define __FIND_H__
+
+
+#endif /* !__FIND_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpApex.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpApex.h
new file mode 100644
index 00000000..a0925707
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpApex.h
@@ -0,0 +1,32 @@
+/*
+** -*- C -*-
+**
+** OpApex.h
+** Made by Raffael Nutricato
+**
+**
+*/
+
+
+#ifndef __OPAPEX_H__
+#define __OPAPEX_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+#include "conj.h"
+
+/*
+** Compute OpApex for different types .
+*/
+
+float sOpApexs(float in);
+double dOpApexs(double in);
+void sOpApexa(float* x, int xrow,int xcols, float* y);
+void dOpApexa(double* in, int xrow, int xcols, double* out);
+
+floatComplex c0OpApexc0(floatComplex x);
+void c2OpApexc2(floatComplex* x, int* xSize, floatComplex* y);
+doubleComplex z0OpApexz0(doubleComplex x);
+void z2OpApexz2(doubleComplex* x, int* xSize, doubleComplex* y);
+
+#endif /* !__OPAPEX_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpCc.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpCc.h
new file mode 100644
index 00000000..ca32b422
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpCc.h
@@ -0,0 +1,32 @@
+/*
+** -*- C -*-
+**
+** OpCc.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+void s0s0OpCcs2(float in1, float in2, float* out);
+void s2s0OpCcs2(float* in1, int* in1Size, float in2, float* out);
+void s0s2OpCcs2(float in2, float* in1, int* in1Size, float* out);
+void s2s2OpCcs2(float* in1, int* in1Size, float* in2, int* in2Size, float* out);
+
+void d0d0OpCcd2(double in1, double in2, double* out);
+void d2d0OpCcd2(double* in1, int* in1Size, double in2, double* out);
+void d0d2OpCcd2(double in2, double* in1, int* in1Size, double* out);
+void d2d2OpCcd2(double* in1, int* in1Size, double* in2, int* in2Size, double* out);
+
+void c0c0OpCcc2(floatComplex in1, floatComplex in2, floatComplex* out);
+void c2c0OpCcc2(floatComplex* in1, int* in1Size, floatComplex in2, floatComplex* out);
+void c0c2OpCcc2(floatComplex in2, floatComplex* in1, int* in1Size, floatComplex* out);
+void c2c2OpCcc2(floatComplex* in1, int* in1Size, floatComplex* in2, int* in2Size, floatComplex* out);
+
+void z0z0OpCcz2(doubleComplex in1, doubleComplex in2, doubleComplex* out);
+void z2z0OpCcz2(doubleComplex* in1, int* in1Size, doubleComplex in2, doubleComplex* out);
+void z0z2OpCcz2(doubleComplex in2, doubleComplex* in1, int* in1Size, doubleComplex* out);
+void z2z2OpCcz2(doubleComplex* in1, int* in1Size, doubleComplex* in2, int* in2Size, doubleComplex* out);
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpColon.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpColon.h
new file mode 100644
index 00000000..9a0ff883
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpColon.h
@@ -0,0 +1,36 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Copyright Raffaele Nutricato
+*/
+
+#ifndef __OPCOLON_H__
+#define __OPCOLON_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+float s0s0OpColons0(float in1, float in2);
+double d0d0OpColond0(double in1, double in2);
+float c0c0OpColons0(floatComplex in1, floatComplex in2);
+double z0z0OpColond0(doubleComplex in1, doubleComplex in2);
+
+void s0s0OpColons2(float in1, float in2, float* out);
+void d0d0OpColond2(double in1, double in2, double* out);
+void c0c0OpColons2(floatComplex in1, floatComplex in2, float* out);
+void z0z0OpColond2(doubleComplex in1, doubleComplex in2, double* out);
+
+float s0s0s0OpColons0(float in1, float in2, float in3);
+double d0d0d0OpColond0(double in1, double in2, double in3);
+float c0c0c0OpColons0(floatComplex in1, floatComplex in3, floatComplex in2);
+double z0z0z0OpColond0(doubleComplex in1, doubleComplex in3, doubleComplex in2);
+
+void s0s0s0OpColons2(float in1, float in2, float in3,float* out);
+void d0d0d0OpColond2(double in1, double in2, double in3, double* out);
+void c0c0c0OpColons2(floatComplex in1, floatComplex in3, floatComplex in2, float* out);
+void z0z0z0OpColond2(doubleComplex in1, doubleComplex in3, doubleComplex in2, double* out);
+
+#endif /* !__OPCOLON_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpDotHat.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpDotHat.h
new file mode 100644
index 00000000..857362c9
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpDotHat.h
@@ -0,0 +1,30 @@
+/*
+** -*- C -*-
+**
+** DotHat.h
+** Made by Raffaele Nutricato
+**
+**
+*/
+
+#ifndef __OPDOTHAT_H__
+#define __OPDOTHAT_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+#include "math.h"
+
+/*
+** Compute DotHat for different types .
+*/
+
+float s0s0OpDotHats0(float in1,float in2);
+void s0s2OpDotHats2(float in1,float* in2, int* in2Size, float* out);
+void s2s0OpDotHats2(float* in1,int* in1Size, float in2, float* out);
+void s2s2OpDotHats2(float* in1,int* in1Size,float* in2, int* in2Size, float* out);
+double d0d0OpDotHatd0(double in1,double in2);
+void d0d2OpDotHatd2(double in1,double* in2, int* in2Size, double* out);
+void d2d0OpDotHatd2(double* in1,int* in1Size, double in2, double* out);
+void d2d2OpDotHatd2(double* in1,int* in1Size,double* in2, int* in2Size, double* out);
+
+#endif /* !__OPDOTHAT_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpDotSlash.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpDotSlash.h
new file mode 100644
index 00000000..82117ec1
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpDotSlash.h
@@ -0,0 +1,39 @@
+/*
+** -*- C -*-
+**
+** DotSlash.h
+** Made by Raffael Nutricato
+**
+**
+*/
+
+
+#ifndef __OPDOTSLASH_H__
+#define __OPDOTSLASH_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+/*
+** Compute DotSlash for different types .
+*/
+
+float s0s0OpDotSlashs0(float x1, float x2);
+void s0s2OpDotSlashs2(float x1,float* x2, int* x2Size, float* y);
+void s2s0OpDotSlashs2(float* x2, int* x2Size,float x1, float* y);
+void s2s2OpDotSlashs2(float* x1,int* x1Size,float* x2, int* x2Size, float* y);
+double d0d0OpDotSlashd0(double x1, double x2);
+void d0d2OpDotSlashd2(double x1,double* x2, int* x2Size, double* y);
+void d2d0OpDotSlashd2(double* x2, int* x2Size,double x1, double* y);
+void d2d2OpDotSlashd2(double* x1,int* x1Size,double* x2, int* x2Size, double* y);
+
+/*
+//~ floatComplex c0c0OpDotSlashc0(floatComplex x1, floatComplex x2);
+//~ void c0c2OpDotSlashc2(floatComplex x1,floatComplex* x2, int* x2Size, floatComplex* y);
+//~ void c2c2OpDotSlashc2(floatComplex* x1,int* x1Size,floatComplex* x2, int* x2Size, floatComplex* y);
+
+//~ doubleComplex z0z0OpDotSlashz0(doubleComplex x1, doubleComplex x2);
+//~ void z0z2OpDotSlashz2(doubleComplex x1,doubleComplex* x2, int* x2Size, doubleComplex* y);
+//~ void z2z2OpDotSlashz2(doubleComplex* x1,int* x1Size,doubleComplex* x2, int* x2Size, doubleComplex* y);
+*/
+#endif /* !__OPDOTSLASH_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpDotStar.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpDotStar.h
new file mode 100644
index 00000000..4ba14306
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpDotStar.h
@@ -0,0 +1,46 @@
+/*
+** -*- C -*-
+**
+** DotStar.h
+** Made by Raffael Nutricato
+**
+**
+*/
+
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+/*
+** Compute DotStar for different types .
+*/
+
+float ssOpDotStarss1(float in1,float in2);
+void ssOpDotStarsa1(float in1,float* in2, int size, float* out);
+void ssOpDotStaraa1(float* in1,float* in2, int size, float* out);
+
+double ddOpDotStarss1(double in1,double in2);
+void ddOpDotStarsa1(double in1,double* in2, int size, double* out);
+void ddOpDotStaraa1(double* in1,double* in2, int size, double* out);
+
+floatComplex s0c0OpDotStarc0(float x2,floatComplex x1);
+floatComplex c0s0OpDotStarc0(floatComplex x1,float x2);
+floatComplex c0c0OpDotStarc0(floatComplex x1, floatComplex x2);
+void c0s2OpDotStarc2(floatComplex x1,float* x2, int* x2Size, floatComplex* y);
+void c2c0OpDotStarc2(floatComplex* x2, int* x2Size, floatComplex x1,floatComplex* y);
+void s2c0OpDotStarc2(float* x2, int* x2Size, floatComplex x1,floatComplex* y);
+void s0c2OpDotStarc2(float x1,floatComplex* x2, int* x2Size, floatComplex* y);
+void c0c2OpDotStarc2(floatComplex x1,floatComplex* x2, int* x2Size, floatComplex* y);
+void c2s2OpDotStarc2(floatComplex* x1,int* x1Size,float* x2, int* x2Size, floatComplex* y);
+void c2c2OpDotStarc2(floatComplex* x1,int* x1Size,floatComplex* x2, int* x2Size, floatComplex* y);
+
+doubleComplex z0d0OpDotStarz0(doubleComplex x1, double x2);
+doubleComplex d0z0OpDotStarz0(double x2,doubleComplex x1);
+doubleComplex z0z0OpDotStarz0(doubleComplex x1, doubleComplex x2);
+void z0d2OpDotStarz2(doubleComplex x1,double* x2, int* x2Size, doubleComplex* y);
+void z2z0OpDotStarz2(doubleComplex* x2, int* x2Size, doubleComplex x1, doubleComplex* y);
+void d2z0OpDotStarz2(double* x2, int* x2Size, doubleComplex x1, doubleComplex* y);
+void d0z2OpDotStarz2(double x1,doubleComplex* x2, int* x2Size, doubleComplex* y);
+void z0z2OpDotStarz2(doubleComplex x1,doubleComplex* x2, int* x2Size, doubleComplex* y);
+void z2d2OpDotStarz2(doubleComplex* x1,int* x1Size,double* x2, int* x2Size, doubleComplex* y);
+void z2z2OpDotStarz2(doubleComplex* x1,int* x1Size,doubleComplex* x2, int* x2Size, doubleComplex* y);
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpEqual.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpEqual.h
new file mode 100644
index 00000000..da36059a
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpEqual.h
@@ -0,0 +1,33 @@
+/*
+** -*- C -*-
+**
+** OpEqual.h
+** Made by Raffaele Nutricato
+**
+**
+*/
+
+#ifndef __OPEQUAL_H__
+#define __OPEQUAL_H__
+
+#include <string.h>
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+/*
+** Compute Opequal for different types .
+*/
+
+float sOpEquals1(float x);
+double dOpEquals1(double x);
+floatComplex c0OpEqualc0(floatComplex x);
+doubleComplex z0OpEqualz0(doubleComplex x);
+char g0OpEqualg0(char x);
+
+void sOpEquala1(float* x, int size, float* y);
+void dOpEquala1(double* x, int size, double* y);
+void c2OpEqualc2(floatComplex* x, int* xSize, floatComplex* y);
+void z2OpEqualz2(doubleComplex* x, int* xSize, doubleComplex* y);
+void g2OpEqualg2(char* x, int* xSize, char* y);
+
+#endif /* !__OPEQUAL_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpExt.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpExt.h
new file mode 100644
index 00000000..d30344cb
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpExt.h
@@ -0,0 +1,14 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Copyright Raffaele Nutricato
+*/
+
+#ifndef __OPEXT_H__
+#define __OPEXT_H__
+
+
+#endif /* !__OPEXT_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpIns.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpIns.h
new file mode 100644
index 00000000..29a5e98f
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpIns.h
@@ -0,0 +1,15 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Copyright Raffaele Nutricato
+*/
+
+#ifndef __OPINS_H__
+#define __OPINS_H__
+
+
+
+#endif /* !__OPINS_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogAnd.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogAnd.h
new file mode 100644
index 00000000..8d61a59c
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogAnd.h
@@ -0,0 +1,23 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Copyright Raffaele Nutricato
+*/
+
+#ifndef __OPLOGAND_H__
+#define __OPLOGAND_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#define s0s0OpLogAnds0(in1,in2) \
+ (float) (in1 && in2)
+void s2s0OpLogAnds2(float* in1, int* in1Size, float in2, float* out);
+
+#define d0d0OpLogAndd0(in1,in2) \
+ (double) (in1 && in2)
+void d2d0OpLogAndd2(double* in1, int* in1Size, double in2, double* out);
+#endif /* !__OPLOGAND_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogEq.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogEq.h
new file mode 100644
index 00000000..f2920c4d
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogEq.h
@@ -0,0 +1,23 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Copyright Raffaele Nutricato
+*/
+
+#ifndef __OPLOGEQ_H__
+#define __OPLOGEQ_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#define s0s0OpLogEqs0(in1,in2) \
+ (float) (in1 == in2)
+void s2s0OpLogEqs2(float* in1, int* in1Size, float in2, float* out);
+
+#define d0d0OpLogEqd0(in1,in2) \
+ (double) (in1 == in2)
+void d2d0OpLogEqd2(double* in1, int* in1Size, double in2, double* out);
+#endif /* !__OPLOGGT_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogGe.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogGe.h
new file mode 100644
index 00000000..798086f2
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogGe.h
@@ -0,0 +1,27 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Started on Tue Dec 5 15:49:18 2006 jofret
+** Last update Mon Oct 22 10:01:54 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#ifndef __OPLOGGE_H__
+#define __OPLOGGE_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#define s0s0OpLogGes0(in1,in2) \
+ (float) (in1 >= in2)
+void s2s0OpLogGes2(float* in1, int* in1Size, float in2, float* out);
+
+#define d0d0OpLogGed0(in1,in2) \
+ (double) (in1 >= in2)
+void d2d0OpLogGed2(double* in1, int* in1Size, double in2, double* out);
+
+#endif /* !__OPLOGLE_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogGt.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogGt.h
new file mode 100644
index 00000000..e8128e76
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogGt.h
@@ -0,0 +1,27 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Started on Tue Dec 5 15:49:18 2006 jofret
+** Last update Mon Oct 22 10:01:54 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#ifndef __OPLOGGT_H__
+#define __OPLOGGT_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#define s0s0OpLogGts0(in1,in2) \
+ (float) (in1 > in2)
+void s2s0OpLogGts2(float* in1, int* in1Size, float in2, float* out);
+
+#define d0d0OpLogGtd0(in1,in2) \
+ (double) (in1 > in2)
+void d2d0OpLogGtd2(double* in1, int* in1Size, double in2, double* out);
+
+#endif /* !__OPLOGGT_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogLe.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogLe.h
new file mode 100644
index 00000000..f66c4c1f
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogLe.h
@@ -0,0 +1,27 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Started on Tue Dec 5 15:49:18 2006 jofret
+** Last update Mon Oct 22 10:01:54 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#ifndef __OPLOGLE_H__
+#define __OPLOGLE_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#define s0s0OpLogLes0(in1,in2) \
+ (float) (in1 <= in2)
+void s2s0OpLogLes2(float* in1, int* in1Size, float in2, float* out);
+
+#define d0d0OpLogLed0(in1,in2) \
+ (double) (in1 <= in2)
+void d2d0OpLogLed2(double* in1, int* in1Size, double in2, double* out);
+
+#endif /* !__OPLOGLE_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogLt.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogLt.h
new file mode 100644
index 00000000..ce1981fb
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogLt.h
@@ -0,0 +1,27 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Started on Tue Dec 5 15:49:18 2006 jofret
+** Last update Mon Oct 22 10:01:54 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#ifndef __OPLOGLT_H__
+#define __OPLOGLT_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#define s0s0OpLogLts0(in1,in2) \
+ (float) (in1 < in2)
+void s2s0OpLogLts2(float* in1, int* in1Size, float in2, float* out);
+
+#define d0d0OpLogLtd0(in1,in2) \
+ (double) (in1 < in2)
+void d2d0OpLogLtd2(double* in1, int* in1Size, double in2, double* out);
+
+#endif /* !__OPLOGLT_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogOr.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogOr.h
new file mode 100644
index 00000000..331cae78
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpLogOr.h
@@ -0,0 +1,23 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Copyright Raffaele Nutricato
+*/
+
+#ifndef __OPLOGOR_H__
+#define __OPLOGOR_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+#define s0s0OpLogOrs0(in1,in2) \
+ (float) (in1 || in2)
+void s2s0OpLogOrs2(float* in1, int* in1Size, float in2, float* out);
+
+#define d0d0OpLogOrd0(in1,in2) \
+ (double) (in1 || in2)
+void d2d0OpLogOrd2(double* in1, int* in1Size, double in2, double* out);
+#endif /* !__OPLOGOR_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpMinus.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpMinus.h
new file mode 100644
index 00000000..42ff39c5
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpMinus.h
@@ -0,0 +1,59 @@
+/*
+** -*- C -*-
+**
+** OpMinus.h
+** Made by Raffael Nutricato
+**
+**
+*/
+
+#ifndef __OPMINUS_H__
+#define __OPMINUS_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+/*
+** Compute OpMinus for different types .
+*/
+
+float s0s0OpMinuss0(float x1, float x2);
+floatComplex s0c0OpMinusc0(float x1,floatComplex x2);
+void s0s2OpMinuss2(float x2, float* x1,int* x1Size, float* y);
+void s2s0OpMinuss2(float* x1,int* x1Size, float x2, float* y);
+void s2s2OpMinuss2(float* x1,int* x1Size, float* x2,int* x2Size, float* y);
+
+double d0d0OpMinusd0(double x1, double x2);
+void d0d2OpMinusd2(double x2, double* x1,int* x1Size, double* y);
+void d2d0OpMinusd2(double* x1,int* x1Size, double x2, double* y);
+void d2d2OpMinusd2(double* x1,int* x1Size, double* x2,int* x2Size, double* y);
+
+float s0OpMinuss0(float x1);
+void s2OpMinuss2(float* in1,int* in1Size, float* out);
+double d0OpMinusd0(double x1);
+void d2OpMinusd2(double* in1,int* in1Size, double* out);
+
+floatComplex c0OpMinusc0(floatComplex x1);
+void c2OpMinusc2(floatComplex* in1,int* in1Size, floatComplex* out);
+floatComplex c0c0OpMinusc0(floatComplex x1,floatComplex x2);
+void c0c2OpMinusc2(floatComplex x1,floatComplex* x2, int* x2Size, floatComplex* y);
+void c2c0OpMinusc2(floatComplex* x2, int* x2Size, floatComplex x1,floatComplex* y);
+void c2c2OpMinusc2(floatComplex* x1,int* x1Size,floatComplex* x2, int* x2Size, floatComplex* y);
+
+doubleComplex z0OpMinusz0(doubleComplex x1);
+void z2OpMinusz2(doubleComplex* in1,int* in1Size, doubleComplex* out);
+doubleComplex z0z0OpMinusz0(doubleComplex x1,doubleComplex x2);
+void z0z2OpMinusz2(doubleComplex x1,doubleComplex* x2, int* x2Size, doubleComplex* y);
+void z2z0OpMinusz2(doubleComplex* x2, int* x2Size, doubleComplex x1,doubleComplex* y);
+void z2z2OpMinusz2(doubleComplex* x1,int* x1Size,doubleComplex* x2, int* x2Size, doubleComplex* y);
+
+void z2d2OpMinusz2(doubleComplex* x2,int* x2Size,double* x1, int* x1Size, doubleComplex* y);
+void d2z2OpMinusz2(double* x1,int* x1Size,doubleComplex* x2, int* x2Size, doubleComplex* y);
+void c2s2OpMinusc2(floatComplex* x2,int* x2Size,float* x1, int* x1Size, floatComplex* y);
+void s2c2OpMinusc2(float* x1,int* x1Size,floatComplex* x2, int* x2Size, floatComplex* y);
+
+doubleComplex d0z0OpMinusz0(double x1,doubleComplex x2);
+void s0c2OpMinusc2(float x1,floatComplex* x2, int* x2Size, floatComplex* y);
+void d0z2OpMinusz2(double x1,doubleComplex* x2, int* x2Size, doubleComplex* y);
+
+#endif /* !__OPMINUS_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpPlus.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpPlus.h
new file mode 100644
index 00000000..ee7cd038
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpPlus.h
@@ -0,0 +1,60 @@
+/*
+** -*- C -*-
+**
+** OpPlus.h
+** Made by Raffael Nutricato
+**
+**
+*/
+
+#ifndef __OPPLUS_H__
+#define __OPPLUS_H__
+
+#include <string.h>
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+/*
+** Compute OpPlus for different types .
+*/
+
+float ssOpPlusss1(float in1,float in2);
+void ssOpPlussa1(float in1,float* in2, int size, float* out);
+void ssOpPlusaa1(float* x1,float* x2, int size, float* y);
+
+double ddOpPlusss1(double in1,double in2);
+void ddOpPlussa1(double in1,double* in2, int size, double* out);
+void ddOpPlusaa1(double* x1,double* x2, int size, double* y);
+double d0OpPlusd0(double x1);
+void d2OpPlusd2(double* in1,int* in1Size, double* out);
+
+floatComplex c0OpPlusc0(floatComplex x1);
+void c2OpPlusc2(floatComplex* in1,int* in1Size, floatComplex* out);
+floatComplex c0c0OpPlusc0(floatComplex x1,floatComplex x2);
+void s0c2OpPlusc2(float x1,floatComplex* x2, int* x2Size, floatComplex* y);
+void c0c2OpPlusc2(floatComplex x1,floatComplex* x2, int* x2Size, floatComplex* y);
+void c2c0OpPlusc2(floatComplex* x2, int* x2Size, floatComplex x1,floatComplex* y);
+void c2c2OpPlusc2(floatComplex* x1,int* x1Size,floatComplex* x2, int* x2Size, floatComplex* y);
+floatComplex c0s0OpPlusc0(floatComplex x1,float x2);
+floatComplex s0c0OpPlusc0(float x2,floatComplex x1);
+
+doubleComplex z0OpPlusz0(doubleComplex x1);
+void z2OpPlusz2(doubleComplex* in1,int* in1Size, doubleComplex* out);
+doubleComplex z0d0OpPlusz0(doubleComplex x1,double x2);
+doubleComplex d0z0OpPlusz0(double x1,doubleComplex x2);
+doubleComplex z0z0OpPlusz0(doubleComplex x1,doubleComplex x2);
+void d0z2OpPlusz2(double x1,doubleComplex* x2, int* x2Size, doubleComplex* y);
+void z0z2OpPlusz2(doubleComplex x1,doubleComplex* x2, int* x2Size, doubleComplex* y);
+void z2z0OpPlusz2(doubleComplex* x2, int* x2Size, doubleComplex x1,doubleComplex* y);
+void z2z2OpPlusz2(doubleComplex* x1,int* x1Size,doubleComplex* x2, int* x2Size, doubleComplex* y);
+void g0g0OpPlusg2(char x1,char x2, char* y); /*RN pensa alla possibilita' di avere sempre e solo stringhe e mai caratteri.*/
+void g2g2OpPlusg2(char* x1,int* x1Size,char* x2, int* x2Size, char* y);
+
+
+void z2d2OpPlusz2(doubleComplex* x2,int* x2Size,double* x1, int* x1Size, doubleComplex* y);
+void d2z2OpPlusz2(double* x1,int* x1Size,doubleComplex* x2, int* x2Size, doubleComplex* y);
+void c2s2OpPlusc2(floatComplex* x2,int* x2Size,float* x1, int* x1Size, floatComplex* y);
+void s2c2OpPlusc2(float* x1,int* x1Size,floatComplex* x2, int* x2Size, floatComplex* y);
+
+
+#endif /* !__OPPLUS_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpRc.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpRc.h
new file mode 100644
index 00000000..e121f309
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpRc.h
@@ -0,0 +1,35 @@
+/*
+** -*- C -*-
+**
+** OpRc.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+#ifndef __OPRC_H__
+#define __OPRC_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+void d0d0OpRcd2(double in1, double in2, double* out);
+void d2d0OpRcd2(double* in1, int* in1Size, double in2, double* out);
+void d0d2OpRcd2(double in2, double* in1, int* in1Size, double* out);
+void d2d2OpRcd2(double* in1, int* in1Size, double* in2, int* in2Size, double* out);
+
+void s0s0OpRcs2(float in1, float in2, float* out);
+void s2s0OpRcs2(float* in1, int* in1Size, float in2, float* out);
+void s0s2OpRcs2(float in2, float* in1, int* in1Size, float* out);
+void s2s2OpRcs2(float* in1, int* in1Size, float* in2, int* in2Size, float* out);
+
+void z0z0OpRcz2(doubleComplex in1, doubleComplex in2, doubleComplex* out);
+void z2z0OpRcz2(doubleComplex* in1, int* in1Size, doubleComplex in2, doubleComplex* out);
+void z0z2OpRcz2(doubleComplex in2, doubleComplex* in1, int* in1Size, doubleComplex* out);
+void z2z2OpRcz2(doubleComplex* in1, int* in1Size, doubleComplex* in2, int* in2Size, doubleComplex* out);
+
+void c0c0OpRcc2(floatComplex in1, floatComplex in2, floatComplex* out);
+void c2c0OpRcc2(floatComplex* in1, int* in1Size, floatComplex in2, floatComplex* out);
+void c0c2OpRcc2(floatComplex in2, floatComplex* in1, int* in1Size, floatComplex* out);
+void c2c2OpRcc2(floatComplex* in1, int* in1Size, floatComplex* in2, int* in2Size, floatComplex* out);
+#endif /* !__OPRC_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpStar.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpStar.h
new file mode 100644
index 00000000..75ac1bf6
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/OpStar.h
@@ -0,0 +1,48 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Copyright Raffaele Nutricato
+*/
+
+#ifndef __OPSTAR_H__
+#define __OPSTAR_H__
+
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+
+float ssOpStarss1(float x1, float x2);
+void ssOpStarsa1(float x1,float* x2, int size, float* y);
+void ssOpStaraa1(float* x1,int x1rows, int x1cols, float* x2, int x2cols, float* y);
+double ddOpStarss1(double x1,double x2);
+void ddOpStarsa1(double x1,double* x2, int size, double* y);
+void ddOpStaraa1(double* x1,int x1rows, int x1cols, double* x2, int x2cols, double* y);
+floatComplex s0c0OpStarc0(float x2, floatComplex x1);
+floatComplex c0s0OpStarc0(floatComplex x1, float x2);
+floatComplex c0c0OpStarc0(floatComplex x1, floatComplex x2);
+void s0c2OpStarc2(float x1,floatComplex* x2, int* x2Size, floatComplex* y);
+void c0s2OpStarc2(floatComplex x1,float* x2, int* x2Size, floatComplex* y);
+void s2c0OpStarc2(float* x2, int* x2Size, floatComplex x1, floatComplex* y);
+void c0c2OpStarc2(floatComplex x1,floatComplex* x2, int* x2Size, floatComplex* y);
+void c2c0OpStarc2(floatComplex* x2, int* x2Size,floatComplex x1, floatComplex* y);
+void c2s2OpStarc2(floatComplex* x1,int* x1Size, float* x2, int* x2Size, floatComplex* y);
+void c2c2OpStarc2(floatComplex* x1,int* x1Size, floatComplex* x2, int* x2Size, floatComplex* y);
+doubleComplex d0z0OpStarz0(double x2, doubleComplex x1);
+doubleComplex z0d0OpStarz0(doubleComplex x1, double x2);
+doubleComplex z0z0OpStarz0(doubleComplex x1, doubleComplex x2);
+void z0d2OpStarz2(doubleComplex x1,double* x2, int* x2Size, doubleComplex* y);
+void d2z0OpStarz2(double* x2, int* x2Size, doubleComplex x1, doubleComplex* y);
+void d0z2OpStarz2(double x1,doubleComplex* x2, int* x2Size, doubleComplex* y);
+void z0z2OpStarz2(doubleComplex x1,doubleComplex* x2, int* x2Size, doubleComplex* y);
+void z2z0OpStarz2(doubleComplex* x2, int* x2Size,doubleComplex x1, doubleComplex* y);
+void z2d2OpStarz2(doubleComplex* x1,int* x1Size, double* x2, int* x2Size, doubleComplex* y);
+void z2z2OpStarz2(doubleComplex* x1,int* x1Size, doubleComplex* x2, int* x2Size, doubleComplex* y);
+float s2s2OpStars0(float* x1,int* x1Size, float* x2,int* x2Size);
+double d2d2OpStard0(double* x1,int* x1Size, double* x2,int* x2Size);
+floatComplex c2c2OpStarc0(floatComplex* x1,int* x1Size, floatComplex* x2,int* x2Size);
+doubleComplex z2z2OpStarz0(doubleComplex* x1,int* x1Size, doubleComplex* x2,int* x2Size);
+#endif /* !__OPSTAR_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/RealToComplex.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/RealToComplex.h
new file mode 100644
index 00000000..6de98be2
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/RealToComplex.h
@@ -0,0 +1,33 @@
+/*
+** -*- C -*-
+**
+**
+** Made by Raffaele.Nutricato@tiscali.it
+**
+** Copyright Raffaele Nutricato
+*/
+
+#ifndef __REALTOCOMPLEX_H__
+#define __REALTOCOMPLEX_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+floatComplex s0floatcomplexc0(float in);
+floatComplex d0floatcomplexc0(double in);
+floatComplex c0floatcomplexc0(floatComplex in);
+floatComplex z0floatcomplexc0(doubleComplex in);
+void s2floatcomplexc2(float* in, int* inSize, floatComplex* out);
+void d2floatcomplexc2(double* in, int* inSize, floatComplex* out);
+void c2floatcomplexc2(floatComplex* in, int* inSize, floatComplex* out);
+void z2floatcomplexc2(doubleComplex* in, int* inSize, floatComplex* out);
+
+doubleComplex s0doublecomplexz0(float in);
+doubleComplex d0doublecomplexz0(double in);
+doubleComplex c0doublecomplexz0(floatComplex in);
+doubleComplex z0doublecomplexz0(doubleComplex in);
+void s2doublecomplexz2(float* in, int* inSize, doubleComplex* out);
+void d2doublecomplexz2(double* in, int* inSize, doubleComplex* out);
+void c2doublecomplexz2(floatComplex* in, int* inSize, doubleComplex* out);
+void z2doublecomplexz2(doubleComplex* in, int* inSize, doubleComplex* out);
+#endif /* !__REALTOCOMPLEX_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/SCI2CMacroInterface.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/SCI2CMacroInterface.h
new file mode 100644
index 00000000..a129a410
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/SCI2CMacroInterface.h
@@ -0,0 +1,280 @@
+/*
+** ----------------------
+** --- Class OPEQUAL. ---
+** ----------------------
+*/
+/* --- Equal. --- */
+#define s0OpEquals0(in) \
+sOpEquals1(in);
+
+#define s2OpEquals2(inptr,insizeptr,outptr) \
+sOpEquala1(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+#define d0OpEquald0(in) \
+dOpEquals1(in);
+
+#define d2OpEquald2(inptr,insizeptr,outptr) \
+dOpEquala1(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+/*
+// ---------------------
+// --- Class OPSTAR. ---
+// ---------------------
+*/
+/* --- OpStar. --- */
+#define s0s0OpStars0(in1,in2) \
+ssOpStarss1(in1,in2);
+
+#define s0s2OpStars2(in1,inptr2,insizeptr2,outptr) \
+ssOpStarsa1(in1,inptr2, insizeptr2[0]*insizeptr2[1], outptr);
+
+#define s2s0OpStars2(inptr2,insizeptr2,in1,outptr) \
+ssOpStarsa1(in1,inptr2, insizeptr2[0]*insizeptr2[1], outptr);
+/*questa su e' una macro */
+
+#define s2s2OpStars2(inptr1,insizeptr1,inptr2,insizeptr2,outptr) \
+ssOpStaraa1(inptr1,insizeptr1[0],insizeptr1[1], inptr2, insizeptr2[1], outptr);
+
+#define d0d0OpStard0(in1,in2) \
+ddOpStarss1(in1,in2);
+
+#define d0d2OpStard2(in1,inptr2,insizeptr2,outptr) \
+ddOpStarsa1(in1,inptr2, (insizeptr2[0]) * (insizeptr2[1]), outptr)
+
+#define d2d0OpStard2(inptr2,insizeptr2,in1,outptr) \
+ddOpStarsa1(in1,inptr2, (insizeptr2[0]) * (insizeptr2[1]), outptr)
+/*questa su e' una macro */
+
+#define d2d2OpStard2(inptr1,insizeptr1,inptr2,insizeptr2,outptr) \
+ddOpStaraa1(inptr1,insizeptr1[0],insizeptr1[1], inptr2, insizeptr2[1], outptr);
+
+/*
+// ---------------------
+// --- Class OPPLUS. ---
+// ---------------------
+*/
+/* --- OpPlus. ---*/
+/*RN volendo puoi fare una sola macro del tipo sa1() che serve per tutte le operazioni*/
+#define s0s0OpPluss0(in1,in2) \
+ssOpPlusss1(in1,in2);
+
+#define s0s2OpPluss2(in1,inptr2,insizeptr2,outptr) \
+ssOpPlussa1(in1,inptr2, insizeptr2[0]*insizeptr2[1], outptr);
+
+#define s2s2OpPluss2(inptr1,insizeptr1,inptr2,insizeptr2,outptr) \
+ssOpPlusaa1(inptr1,inptr2, insizeptr1[0]*insizeptr1[1], outptr)
+
+#define s2s0OpPluss2(inptr2,insizeptr2,in1,outptr) \
+ssOpPlussa1(in1,inptr2, insizeptr2[0]*insizeptr2[1], outptr);
+/*questa su e' una macro */
+
+#define d0d0OpPlusd0(in1,in2) \
+ddOpPlusss1(in1,in2);
+
+#define d2d2OpPlusd2(inptr1,insizeptr1,inptr2,insizeptr2,outptr) \
+ddOpPlusaa1(inptr1,inptr2, insizeptr1[0]*insizeptr1[1], outptr);
+
+#define d0d2OpPlusd2(in1,inptr2,insizeptr2,outptr) \
+ddOpPlussa1(in1,inptr2, (insizeptr2[0]) * (insizeptr2[1]), outptr)
+
+#define d2d0OpPlusd2(inptr2,insizeptr2,in1,outptr) \
+ddOpPlussa1(in1,inptr2, (insizeptr2[0]) * (insizeptr2[1]), outptr)
+/*questa su e' una macro */
+
+
+/* --- OpDotStar. ---*/
+#define s0s0OpDotStars0(in1,in2) \
+ssOpDotStarss1(in1,in2);
+
+#define s0s2OpDotStars2(in1,inptr2,insizeptr2,outptr) \
+ssOpDotStarsa1(in1,inptr2, insizeptr2[0]*insizeptr2[1], outptr);
+
+#define s2s2OpDotStars2(inptr1,insizeptr1,inptr2,insizeptr2,outptr) \
+ssOpDotStaraa1(inptr1,inptr2, insizeptr1[0]*insizeptr1[1], outptr)
+
+#define s2s0OpDotStars2(inptr2,insizeptr2,in1,outptr) \
+ssOpDotStarsa1(in1,inptr2, insizeptr2[0]*insizeptr2[1], outptr);
+/*questa su e' una macro */
+
+#define d0d0OpDotStard0(in1,in2) \
+ddOpDotStarss1(in1,in2);
+
+#define d2d2OpDotStard2(inptr1,insizeptr1,inptr2,insizeptr2,outptr) \
+ddOpDotStaraa1(inptr1,inptr2, insizeptr1[0]*insizeptr1[1], outptr);
+
+#define d0d2OpDotStard2(in1,inptr2,insizeptr2,outptr) \
+ddOpDotStarsa1(in1,inptr2, (insizeptr2[0]) * (insizeptr2[1]), outptr)
+
+#define d2d0OpDotStard2(inptr2,insizeptr2,in1,outptr) \
+ddOpDotStarsa1(in1,inptr2, (insizeptr2[0]) * (insizeptr2[1]), outptr)
+/*questa su e' una macro */
+
+/*
+// ---------------------
+// --- Class ^. ---
+// ---------------------
+*/
+/*RN DA FARE ANCORA forse la si puo' integrare dentro le operazioni OPPLUS*/
+
+/*
+// ---------------------
+// --- Class OPAPEX. ---
+// ---------------------
+*/
+/* --- OpApex. ---*/
+#define s0OpApexs0(in) \
+sOpApexs(in);
+
+#define d0OpApexd0(in) \
+dOpApexs(in);
+
+#define s2OpApexs2(inptr,insizeptr,outptr) \
+sOpApexa(inptr, insizeptr[0],insizeptr[1], outptr);
+
+#define d2OpApexd2(inptr,insizeptr,outptr) \
+dOpApexa(inptr, insizeptr[0],insizeptr[1], outptr);
+
+/*
+// ---------------------
+// --- Class SIN. ---
+// ---------------------
+*/
+/* --- sin. ---*/
+#define s0sins0(inptr) \
+ssins(inptr);
+
+#define d0sind0(inptr) \
+dsins(inptr);
+
+#define c0sinc0(inptr) \
+csins(inptr);
+
+#define z0sinz0(inptr) \
+zsins(inptr);
+
+#define s2sins2(inptr,insizeptr,outptr) \
+ssina(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+#define d2sind2(inptr,insizeptr,outptr) \
+dsina(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+#define c2sinc2(inptr,insizeptr,outptr) \
+csina(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+#define z2sinz2(inptr,insizeptr,outptr) \
+zsina(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+/* --- cos. ---*/
+#define s0coss0(inptr) \
+scoss(inptr);
+
+#define d0cosd0(inptr) \
+dcoss(inptr);
+
+#define c0cosc0(inptr) \
+ccoss(inptr);
+
+#define z0cosz0(inptr) \
+zcoss(inptr);
+
+#define s2coss2(inptr,insizeptr,outptr) \
+scosa(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+#define d2cosd2(inptr,insizeptr,outptr) \
+dcosa(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+#define c2cosc2(inptr,insizeptr,outptr) \
+ccosa(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+#define z2cosz2(inptr,insizeptr,outptr) \
+zcosa(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+/* --- sinh. ---*/
+#define s0sinhs0(inptr) \
+ssinhs(inptr);
+
+#define d0sinhd0(inptr) \
+dsinhs(inptr);
+
+#define c0sinhc0(inptr) \
+csinhs(inptr);
+
+#define z0sinhz0(inptr) \
+zsins(inptr);
+
+#define s2sinhs2(inptr,insizeptr,outptr) \
+ssinha(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+#define d2sinhd2(inptr,insizeptr,outptr) \
+dsinha(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+#define c2sinhc2(inptr,insizeptr,outptr) \
+csinha(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+#define z2sinhz2(inptr,insizeptr,outptr) \
+zsinha(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+
+/*
+// ---------------------
+// --- Class DISP. ---
+// ---------------------
+*/
+#define s0dispd0(invar) \
+sdisps2 (invar, #invar );
+
+#define d0dispd0(invar) \
+ddisps2 (invar, #invar );
+
+#define c0dispd0(invar) \
+cdisps2 (invar, #invar );
+
+#define z0dispd0(invar) \
+zdisps2 (invar, #invar );
+
+#define s2dispd0(invar,insize) \
+sdispa2 (invar, insize, #invar );
+
+#define d2dispd0(invar,insize) \
+ddispa2 (invar, insize, #invar );
+
+#define c2dispd0(invar,insize) \
+cdispa2 (invar, insize, #invar );
+
+#define z2dispd0(invar,insize) \
+zdispa2 (invar, insize, #invar );
+
+#define i2dispd0(invar,insize) \
+idispa2 (invar, insize, #invar );
+/*
+// --------------------
+// --- Class ZEROS. ---
+// --------------------
+*/
+/* --- ones. ---*/
+#define d0d0onesd2(inptr1,inptr2,outptr) \
+ddonesss1(inptr1, inptr2, outptr);
+
+#define onesd0() \
+1
+
+#define d0onesd0(in1) \
+1
+
+#define d2onesd2(inptr,insizeptr,outptr) \
+ddonesss1(insizeptr[0], insizeptr[1], outptr);
+
+#define d0d0onesd2(inptr1,inptr2,outptr) \
+ddonesss1(inptr1, inptr2, outptr);
+
+#define s0s0oness2(inptr1,inptr2,outptr) \
+ssonesss1(inptr1, inptr2, outptr);
+
+#define oness0() \
+1
+
+#define s0oness0(in1) \
+1
+
+#define s2oness2(inptr,insizeptr,outptr) \
+ssonesss1(insizeptr[0], insizeptr[1], outptr);
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/SCI2Cconvol.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/SCI2Cconvol.h
new file mode 100644
index 00000000..3fb3b9e9
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/SCI2Cconvol.h
@@ -0,0 +1,15 @@
+/*
+** -*- C -*-
+**
+** OpDotSlash.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#ifndef __CONVOL_H__
+#define __CONVOL_H__
+
+#include "SCI2CMacroInterface.h"
+#endif /* !__CONVOL_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/SCI2Cfft.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/SCI2Cfft.h
new file mode 100644
index 00000000..f82b74b4
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/SCI2Cfft.h
@@ -0,0 +1,16 @@
+/*
+** -*- C -*-
+**
+** OpDotSlash.c
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright Raffaele Nutricato 2007
+*/
+
+#ifndef __SCI2CFFT_H__
+#define __SCI2CFFT_H__
+
+#include "SCI2CMacroInterface.h"
+
+#endif /* !__SCI2CFFT_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/abs.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/abs.h
new file mode 100644
index 00000000..09c0a89b
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/abs.h
@@ -0,0 +1,87 @@
+
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-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 __ABS_H__
+#define __ABS_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+#include "sqrt.h"
+
+
+/**
+ ** \brief Float Absolute Value function
+ ** Determine the absolute value of in.
+ ** \param in : the float we must determine abs.
+ ** \return -in or in depending on the sign of in.
+ **/
+float sabss(float in);
+
+/**
+ ** \brief Double Absolute Value function
+ ** Determine the absolute value of in.
+ ** \param in : the double we must determine abs.
+ ** \return -in or +in depending on the abs of in.
+ **/
+double dabss(double in);
+
+/**
+ ** \brief Float Complex Absolute Value function
+ ** Determine the absolute value of in.
+ ** \param in : the float complex we must determine abs i.e. module.
+ ** \return |in|.
+ **/
+float cabss(floatComplex in);
+
+/**
+ ** \brief Double Complex Absolute Value function
+ ** Determine the absolute value of in.
+ ** \param in : the double complex we must determine abs i.e. module.
+ ** \return |in|.
+ **/
+double zabss(doubleComplex in);
+
+/**
+ ** \brief Float Array Absolute Value function
+ ** Determine the absolute value of in elements.
+ ** \param in : the float array we must determine abs.
+ ** \param out : the float array result.
+ **/
+void sabsa(float *in, int size, float* out);
+
+/**
+ ** \brief Double Array Absolute Value function
+ ** Determine the absolute value of in elements.
+ ** \param in : the double array we must determine abs.
+ ** \param out : the double array result.
+ **/
+void dabsa(double *in, int size, double* out);
+
+/**
+ ** \brief Float Complex Array Absolute Value function
+ ** Determine the absolute value of in elements.
+ ** \param in : the float complex array we must determine abs i.e. module.
+ ** \param out : the float complex array result i.e out[n] = |in[n]|.
+ **/
+void cabsa(floatComplex *in, int size, float* out);
+
+/**
+ ** \brief Double Complex Array Absolute Value function
+ ** Determine the absolute value of in.
+ ** \param in : the double complex array we must determine abs i.e. module.
+ ** \param out : the double complex array result i.e out[n] = |in[n]|.
+ **/
+void zabsa(doubleComplex *in, int size, double* out);
+
+#endif /* !__ABS_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/conj.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/conj.h
new file mode 100644
index 00000000..a25aa0df
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/conj.h
@@ -0,0 +1,20 @@
+/*
+** -*- C -*-
+**
+** sin.h
+** Made by Raffaele Nutricato
+**
+*/
+
+#ifndef __CONJ_H__
+#define __CONJ_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+floatComplex c0conjc0(floatComplex in);
+doubleComplex z0conjz0(doubleComplex in);
+void c2conjc2(floatComplex* in, int* insize, floatComplex* out);
+void z2conjz2(doubleComplex* in, int* insize, doubleComplex* out);
+
+#endif /* !__CONJ_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/constant.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/constant.h
new file mode 100644
index 00000000..9eb49544
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/constant.h
@@ -0,0 +1,27 @@
+/*
+** -*- C -*-
+**
+** constant.h
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Fri Mar 30 12:03:14 2007 jofret
+** Last update Mon Oct 22 17:23:08 2007 bruno
+**
+** Copyright INRIA 2007
+*/
+
+#ifndef __CONSTANT_H__
+#define __CONSTANT_H__
+
+#include <math.h>
+#define PI 3.1415826535
+#define SCI2C_PI 3.1415826535
+#define SCI2C_T 1
+#define SCI2C_F 0
+#define SCI2C_NAN nan("")
+#define SCI2C_INF 1e100000
+#define SCI2C_IMG_C FloatComplex(0,1)
+#define SCI2C_IMG_Z DoubleComplex(0,1)
+
+#endif /* !__CONSTANT_H__ */
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/cos.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/cos.h
new file mode 100644
index 00000000..97359dee
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/cos.h
@@ -0,0 +1,38 @@
+/*
+** -*- C -*-
+**
+** cos.h
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Tue Dec 5 15:49:18 2006 jofret
+** Last update Mon Oct 22 10:01:54 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#ifndef __COS_H__
+#define __COS_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+#include "cos.h"
+#include "sin.h"
+#include "cosh.h"
+#include "sinh.h"
+
+
+/*
+** Compute Cosine for different types .
+*/
+
+float scoss(float in);
+double dcoss(double in);
+floatComplex ccoss(floatComplex in);
+doubleComplex zcoss(doubleComplex in);
+
+void scosa(float* in, int size, float* out);
+void dcosa(double* in, int size, double* out);
+void ccosa(floatComplex* in, int size, floatComplex* out);
+void zcosa(doubleComplex* in, int size, doubleComplex* out);
+
+#endif /* !__COS_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/cosh.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/cosh.h
new file mode 100644
index 00000000..543497d2
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/cosh.h
@@ -0,0 +1,27 @@
+/*
+** -*- C -*-
+**
+** cosh.h
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Tue Dec 5 15:49:18 2006 jofret
+** Last update Mon Oct 22 09:33:12 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#ifndef __COSH_H__
+#define __COSH_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+void zcosha(doubleComplex* x, int size, doubleComplex* y);
+float scoshs(float x);
+void scosha(float* x, int size, float* y);
+double dcoshs(double x);
+void dcosha(double* x, int size, double* y);
+doubleComplex zcoshs(doubleComplex z);
+
+#endif /* !__COSH_H__ */
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/disp.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/disp.h
new file mode 100644
index 00000000..87ef98d6
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/disp.h
@@ -0,0 +1,27 @@
+#include<stdio.h>
+#include<math.h>
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+/*
+// ===================
+// === Prototypes. ===
+// ===================
+*/
+double sdisps2 (float invar,char* invarname);
+double ddisps2 (double invar,char* invarname);
+double cdisps2 (floatComplex invar,char* invarname);
+double zdisps2 (doubleComplex invar,char* invarname);
+double g0dispd0 (char invar);
+
+double sdispa2(float *array,int* tmparraysize,char* arrayname);
+double ddispa2(double *array,int* tmparraysize,char* arrayname);
+double cdispa2(floatComplex *array,int* tmparraysize,char* arrayname);
+double zdispa2(doubleComplex *array,int* tmparraysize,char* arrayname);
+double idispa2(int *array,int* tmparraysize,char* arrayname);
+double g2dispd0(char *array,int* tmparraysize);
+
+/*
+//RN mi sembra che la disp di scilab ritorni ans mentre nei nomi delle prototype creati
+//RN da scilab viene sempre fuori uno 0 come output arguments.
+*/
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/doubleComplex.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/doubleComplex.h
new file mode 100644
index 00000000..e43c8bd0
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/doubleComplex.h
@@ -0,0 +1,67 @@
+/*
+** -*- C -*-
+**
+** doubleComplex.h
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Nov 30 16:50:08 2006 jofret
+** Last update Thu Aug 16 11:57:12 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#ifndef __DOUBLECOMPLEX_H__
+#define __DOUBLECOMPLEX_H__
+
+#ifdef __STDC_VERSION__
+# ifndef STDC
+# define STDC
+# endif
+# if __STDC_VERSION__ >= 199901L
+# ifndef STDC99
+# define STDC99
+# endif
+# endif
+#endif
+
+#include <stdbool.h>
+
+#ifndef STDC99
+/*
+** Hand made Double Complex definition
+** {
+*/
+struct double_complex
+{
+ double real;
+ double imag;
+};
+
+typedef struct double_complex doubleComplex;
+/*
+** }
+*/
+#else
+/*
+** Standard C99 Complex
+** {
+*/
+#include <complex.h>
+
+typedef double complex doubleComplex;
+/*
+** }
+*/
+#endif
+
+double zreals(doubleComplex);
+double zimags(doubleComplex);
+doubleComplex DoubleComplex(double, double);
+bool zisreals(doubleComplex);
+bool zisimags(doubleComplex);
+
+doubleComplex zadds(doubleComplex, doubleComplex);
+doubleComplex zdiffs(doubleComplex, doubleComplex);
+doubleComplex ztimess(doubleComplex, doubleComplex);
+doubleComplex zdevides(doubleComplex, doubleComplex);
+#endif /* !__DOUBLECOMPLEX_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/exp.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/exp.h
new file mode 100644
index 00000000..64ff310a
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/exp.h
@@ -0,0 +1,80 @@
+/*
+** -*- C -*-
+**
+** exp.h
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Tue Dec 5 15:49:18 2006 jofret
+** Last update Mon Oct 22 09:29:44 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#ifndef __EXP_H__
+#define __EXP_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+/*
+** Compute Exponential for different types .
+*/
+
+/*
+** \brief Float Exponential function
+** \param in : input value.
+*/
+float sexps(float in);
+
+/*
+** \brief Double Exponential function
+** \param in : input value.
+*/
+double dexps(double in);
+
+/*
+** \brief Float Complex Exponential function
+** \param in : input value.
+*/
+floatComplex cexps(floatComplex in);
+
+/*
+** \brief Double Complex Exponential function
+** \param in : input value.
+*/
+doubleComplex zexps(doubleComplex in);
+
+/*
+** \brief Float Matrix Exponential function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+void sexpa(float* in, int size, float* out);
+
+/*
+** \brief Double Matrix Exponential function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+void dexpa(double* in, int size, double* out);
+
+/*
+** \brief Float Complex Matrix Exponential function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+void cexpa(floatComplex* in, int size, floatComplex* out);
+
+/*
+** \brief Double Complex Matrix Exponential function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+void zexpa(doubleComplex* in, int size, doubleComplex* out);
+
+#endif /* !__EXP_H__ */
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/floatComplex.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/floatComplex.h
new file mode 100644
index 00000000..64afed90
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/floatComplex.h
@@ -0,0 +1,69 @@
+/*
+** -*- C -*-
+**
+** floatComplex.h
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Nov 30 16:50:08 2006 jofret
+** Last update Thu Aug 16 12:14:57 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#ifndef __FLOATCOMPLEX_H__
+#define __FLOATCOMPLEX_H__
+
+#ifdef __STDC_VERSION__
+# ifndef STDC
+# define STDC
+# endif
+# if __STDC_VERSION__ >= 199901L
+# ifndef STDC99
+# define STDC99
+# endif
+# endif
+#endif
+
+#include <stdbool.h>
+
+#ifndef STDC99
+/*
+** Hand made Float Complex definition
+** {
+*/
+struct float_complex
+{
+ float real;
+ float imag;
+};
+
+typedef struct float_complex floatComplex;
+/*
+** }
+*/
+#else
+/*
+** C99 Standard
+** {
+*/
+#include <complex.h>
+
+typedef float complex floatComplex;
+/*
+** }
+*/
+#endif
+
+
+float creals(floatComplex);
+float cimags(floatComplex);
+floatComplex FloatComplex(float, float);
+bool cisreals(floatComplex);
+bool cisimags(floatComplex);
+
+floatComplex cadds(floatComplex, floatComplex);
+floatComplex cdiffs(floatComplex, floatComplex);
+floatComplex ctimess(floatComplex, floatComplex);
+floatComplex cdevides(floatComplex, floatComplex);
+
+#endif /* !__FLOATCOMPLEX_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/length.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/length.h
new file mode 100644
index 00000000..037ac32e
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/length.h
@@ -0,0 +1,95 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-2008 - INRIA - Bruno JOFRET, POLIBA Raffaele Nutricato
+ *
+ * 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 __LENGTH_H__
+#define __LENGTH_H__
+
+/**
+ ** WARNING :
+ ** We assume size of arrays are known, so we
+ ** use #define to avoid compilation warnings
+ ** such as "unused parameter"
+ **/
+
+/**
+ ** \brief Float Size Scalar function
+ ** Determine the size of an array.
+ ** \param in : the float array we must determine size.
+ ** \param size : the number of elements.
+ ** \return the size of in.
+ **/
+#define slengths(in) 1.0f
+
+/**
+ ** \brief Float length Scalar function
+ ** Determine the length of an array.
+ ** \param in : the float array we must determine length.
+ ** \param length : the number of elements.
+ ** \return the length of in.
+ **/
+#define dlengths(in) 1.0
+
+/**
+ ** \brief Complex Float length Scalar function
+ ** Determine the length of an array.
+ ** \param in : the float array we must determine length.
+ ** \param length : the number of elements.
+ ** \return the length of in.
+ **/
+#define clengths(in) 1.0f
+
+/**
+ ** \brief Complex Double length Array function
+ ** Determine the length of an array.
+ ** \param in : the float array we must determine length.
+ ** \param length : the number of elements.
+ ** \return the length of in.
+ **/
+#define zlengths(in) 1.0
+
+/**
+ ** \brief Float length Array function
+ ** Determine the length of an array.
+ ** \param in : the float array we must determine length.
+ ** \param length : the number of elements.
+ ** \return the length of in.
+ **/
+#define slengtha(in, size) size
+
+/**
+ ** \brief Double length Array function
+ ** Determine the length of an array.
+ ** \param in : the float array we must determine length.
+ ** \param length : the number of elements.
+ ** \return the length of in.
+ **/
+#define dlengtha(in, size) size
+
+/**
+ ** \brief Complex Float length Array function
+ ** Determine the length of an array.
+ ** \param in : the float array we must determine length.
+ ** \param length : the number of elements.
+ ** \return the length of in.
+ **/
+#define clengtha(in, size) size
+
+/**
+ ** \brief Complex Double length Array function
+ ** Determine the length of an array.
+ ** \param in : the float array we must determine length.
+ ** \param length : the number of elements.
+ ** \return the length of in.
+ **/
+#define zlengtha(in, size) size
+
+#endif /* !__LENGTH_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/log.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/log.h
new file mode 100644
index 00000000..ee41ea3c
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/log.h
@@ -0,0 +1,80 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-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 __LOG_H__
+#define __LOG_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+/*
+** Compute Logarithm for different types .
+*/
+
+/*
+** \brief Float Logarithm function
+** \param in : input value.
+*/
+float slogs(float in);
+
+/*
+** \brief Double Logarithm function
+** \param in : input value.
+*/
+double dlogs(double in);
+
+/*
+** \brief Float Complex Logarithm function
+** \param in : input value.
+*/
+floatComplex clogs(floatComplex in);
+
+/*
+** \brief Double Complex Logarithm function
+** \param in : input value.
+*/
+doubleComplex zlogs(doubleComplex in);
+
+/*
+** \brief Float Matrix Logarithm function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+void sloga(float* in, int size, float* out);
+
+/*
+** \brief Double Matrix Logarithm function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+void dloga(double* in, int size, double* out);
+
+/*
+** \brief Float Complex Matrix Logarithm function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+void cloga(floatComplex* in, int size, floatComplex* out);
+
+/*
+** \brief Double Complex Matrix Logarithm function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+void zloga(doubleComplex* in, int size, doubleComplex* out);
+
+#endif /* !__LOG_H__ */
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/log10.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/log10.h
new file mode 100644
index 00000000..a68810a9
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/log10.h
@@ -0,0 +1,80 @@
+/*
+ * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ * Copyright (C) 2007-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 __LOG10_H__
+#define __LOG10_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+/*
+** Compute Ten based Logarithm for different types .
+*/
+
+/*
+** \brief Float Ten based Logarithm function
+** \param in : input value.
+*/
+float slog10s(float in);
+
+/*
+** \brief Double Ten based Logarithm function
+** \param in : input value.
+*/
+double dlog10s(double in);
+
+/*
+** \brief Float Complex Ten based Logarithm function
+** \param in : input value.
+*/
+floatComplex clog10s(floatComplex in);
+
+/*
+** \brief Double Complex Ten based Logarithm function
+** \param in : input value.
+*/
+doubleComplex zlog10s(doubleComplex in);
+
+/*
+** \brief Float Matrix Ten based Logarithm function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+void slog10a(float* in, int size, float* out);
+
+/*
+** \brief Double Matrix Ten based Logarithm function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+void dlog10a(double* in, int size, double* out);
+
+/*
+** \brief Float Complex Matrix Ten based Logarithm function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+void clog10a(floatComplex* in, int size, floatComplex* out);
+
+/*
+** \brief Double Complex Matrix Ten based Logarithm function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+void zlog10a(doubleComplex* in, int size, doubleComplex* out);
+
+#endif /* !__LOG10_H__ */
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/log1p.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/log1p.h
new file mode 100644
index 00000000..b9ba8acd
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/log1p.h
@@ -0,0 +1,80 @@
+/*
+ * 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 __LOG1P_H__
+#define __LOG1P_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+/*
+** Compute Logarithm for different types .
+*/
+
+/*
+** \brief Float Logarithm function
+** \param in : input value.
+*/
+float slog1ps(float in);
+
+/*
+** \brief Double Logarithm function
+** \param in : input value.
+*/
+double dlog1ps(double in);
+
+/*
+** \brief Float Complex Logarithm function
+** \param in : input value.
+*/
+floatComplex clog1ps(floatComplex in);
+
+/*
+** \brief Double Complex Logarithm function
+** \param in : input value.
+*/
+doubleComplex zlog1ps(doubleComplex in);
+
+/*
+** \brief Float Matrix Logarithm function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+void slog1pa(float* in, int size, float* out);
+
+/*
+** \brief Double Matrix Logarithm function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+void dlog1pa(double* in, int size, double* out);
+
+/*
+** \brief Float Complex Matrix Logarithm function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+void clog1pa(floatComplex* in, int size, floatComplex* out);
+
+/*
+** \brief Double Complex Matrix Logarithm function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+void zlog1pa(doubleComplex* in, int size, doubleComplex* out);
+
+#endif /* !__LOG1P_H__ */
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/machine.h.in b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/machine.h.in
new file mode 100644
index 00000000..52ed2d07
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/machine.h.in
@@ -0,0 +1,141 @@
+/* includes/machine.h.in. Generated from configure.ac by autoheader. */
+
+#ifndef MACHINE_H
+#define MACHINE_H
+
+
+
+/* Define C2F without Trailing Underscore */
+#undef C2F
+
+/* Cname */
+#undef CNAME
+
+/* Define C2F without Trailing Underscore */
+#undef F2C
+
+/* Define to 1 if your Fortran compiler doesn't accept -c and -o together. */
+#undef F77_NO_MINUS_C_MINUS_O
+
+/* Define to 1 if you have the <complex.h> header file. */
+#undef HAVE_COMPLEX_H
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if stdbool.h conforms to C99. */
+#undef HAVE_STDBOOL_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to 1 if the system has the type `_Bool'. */
+#undef HAVE__BOOL
+
+/* Define to 1 if your C compiler doesn't accept -c and -o together. */
+#undef NO_MINUS_C_MINUS_O
+
+/* Name of package */
+#undef PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
+
+/* Version number of package */
+#undef VERSION
+
+/* With the Atlas Lib */
+#undef WITH_ATLAS
+
+/* If leading underscores */
+#undef WLU
+
+/* If trailing underscores */
+#undef WTU
+
+
+/*
+ Define integer C type which must fit Fortran integer
+ For Scilab to work, the rule is:
+ size of Fortran double precision = 2 * size of Fortran integer
+
+ At the present time, we suppose:
+ size of Fortran integer = 4 bytes
+ size of Fortran double precision = 8 bytes
+ size of C int = 4 bytes
+*/
+
+typedef int integer;
+
+/* define boolean type */
+#ifdef BOOL
+ #undef BOOL
+#endif
+
+typedef int BOOL ;
+
+#ifdef TRUE
+ #undef TRUE
+#endif
+#define TRUE 1
+
+#ifdef FALSE
+ #undef FALSE
+#endif
+#define FALSE 0
+
+/* params.h */
+#ifdef __STDC__
+#ifndef __PARAMS
+#define __PARAMS(paramlist) paramlist
+#endif
+#ifndef _PARAMS
+#define _PARAMS(paramlist) paramlist
+#endif
+#else
+#ifndef __PARAMS
+#define __PARAMS(paramlist) ()
+#endif
+#ifndef _PARAMS
+#define _PARAMS(paramlist) ()
+#endif
+#endif
+
+#endif /* MACHINE_H */
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/max.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/max.h
new file mode 100644
index 00000000..30317114
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/max.h
@@ -0,0 +1,18 @@
+/*
+ * 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 __MAX_H__
+#define __MAX_H__
+
+#define max(a,b) (a>=b?a:b)
+
+#endif /* !__MAX_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/mean.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/mean.h
new file mode 100644
index 00000000..07269e5a
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/mean.h
@@ -0,0 +1,83 @@
+/*
+ * 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 __MEAN_H__
+#define __MEAN_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+/*
+** \brief Mean of a scalar element, just returns it
+*/
+#define smeans(in) in
+#define srowmeans(in) in
+#define scolumnsmeans(in) in
+#define smatlabmeans(in) in
+
+/*
+** \brief Mean of a scalar element, just returns it
+*/
+#define dmeans(in) in
+#define drowmeans(in) in
+#define dcolumnsmeans(in) in
+#define dmatlabmeans(in) in
+
+/*
+** \brief Mean of a scalar element, just returns it
+*/
+#define cmeans(in) in
+#define crowmeans(in) in
+#define ccolumnsmeans(in) in
+#define cmatlabmeans(in) in
+
+/*
+** \brief Mean of a scalar element, just returns it
+*/
+#define zmeans(in) in
+#define zrowmeans(in) in
+#define zcolumnsmeans(in) in
+#define zmatlabmeans(in) in
+
+/*
+** \brief Mean of a float array
+** \param in the float array to process
+** \param size, the size of the array
+** \returns the mean.
+*/
+float smeana(float *in, int size);
+
+/*
+** \brief Mean of a float array
+** \param in the double array to process
+** \param size, the size of the array
+** \returns the mean.
+*/
+double dmeana(double *in, int size);
+
+/*
+** \brief Mean of a float complex array
+** \param in the float array to process
+** \param size, the size of the array
+** \returns the mean.
+*/
+floatComplex cmeana(floatComplex *in, int size);
+
+/*
+** \brief Mean of a double complex array
+** \param in the double array to process
+** \param size, the size of the array
+** \returns the mean.
+*/
+doubleComplex zmeana(doubleComplex *in, int size);
+
+#endif /* !__MEAN_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/min.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/min.h
new file mode 100644
index 00000000..462bd671
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/min.h
@@ -0,0 +1,17 @@
+/*
+ * 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 __MIN_H__
+#define __MIN_H__
+
+#define min(a,b) (a<=b?a:b)
+
+#endif /* !__MIN_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/notFound.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/notFound.h
new file mode 100644
index 00000000..59d8c2fe
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/notFound.h
@@ -0,0 +1,18 @@
+/*
+** -*- C -*-
+**
+** notFound.h
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Feb 8 10:12:17 2007 jofret
+** Last update Tue Feb 13 17:16:47 2007 jofret
+**
+** Copyright INRIA 2007
+*/
+
+#ifndef __NOT_FOUND_H__
+#define __NOT_FOUND_H__
+
+#define NOT_FOUND -1
+
+#endif /* !__NOT_FOUND_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/ones.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/ones.h
new file mode 100644
index 00000000..28c5fb5b
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/ones.h
@@ -0,0 +1,18 @@
+/*
+** -*- C -*-
+**
+** ones.h
+** Made by Raffael Nutricato
+**
+**
+*/
+
+/*
+** Compute OpPlus for different types .
+*/
+
+void ddonesss1(double in1, double in2, double* out);
+double d0d0onesd0(double in1, double in2);
+
+void ssonesss1(float in1, float in2, float* out);
+float s0s0oness0(float in1, float in2);
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/pythag.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/pythag.h
new file mode 100644
index 00000000..5aa9d152
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/pythag.h
@@ -0,0 +1,39 @@
+/*
+** -*- C -*-
+**
+** pythag.h
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Feb 8 10:12:17 2007 jofret
+** Last update Thu Aug 16 12:18:00 2007 bruno
+**
+** Copyright INRIA 2007
+*/
+
+#ifndef __PYTHAG_H__
+#define __PYTHAG_H__
+
+#include "sqrt.h"
+
+/*
+** \brief Float Pythag function
+*/
+float spythags(float x, float y);
+
+/*
+** \brief Double Pythag function
+*/
+double dpythags(double x, double y);
+
+/*
+** \brief Float Complex Pythag function
+*/
+floatComplex cpythags(floatComplex x, floatComplex y);
+
+/*
+** \brief Double Complex Pythag function
+*/
+//NUTRICATO: BRUNO, NOT IMPLEMENTED YET!!!!!!
+doubleComplex zpythags(doubleComplex x, doubleComplex y);
+
+#endif /* !__PYTHAG_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sci2clib.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sci2clib.h
new file mode 100644
index 00000000..e76c77ce
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sci2clib.h
@@ -0,0 +1,51 @@
+#define SCI2Cint int
+#include "SCI2CMacroInterface.h"
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include "constant.h"
+#include "notFound.h"
+#include "doubleComplex.h"
+#include "length.h"
+#include "int_length.h"
+#include "min.h"
+#include "max.h"
+#include "floatComplex.h"
+#include "RealToComplex.h"
+#include "conj.h"
+#include "cos.h"
+#include "disp.h"
+#include "ones.h"
+#include "zeros.h"
+#include "OpApex.h"
+#include "OpColon.h"
+#include "OpDotStar.h"
+#include "OpDotSlash.h"
+#include "OpDotHat.h"
+#include "OpEqual.h"
+#include "OpPlus.h"
+#include "OpMinus.h"
+#include "OpStar.h"
+#include "OpIns.h"
+#include "OpExt.h"
+#include "OpCc.h"
+#include "OpRc.h"
+#include "sin.h"
+#include "FileManagement.h"
+#include "Find.h"
+#include "OpLogGt.h"
+#include "OpLogLt.h"
+#include "OpLogGe.h"
+#include "OpLogLe.h"
+#include "OpLogEq.h"
+#include "OpLogOr.h"
+#include "OpLogAnd.h"
+#include "ConvertPrecision.h"
+#include "SCI2Cfft.h"
+#include "SCI2Cconvol.h"
+#include "sqrt.h"
+#include "int_sqrt.h"
+#include "abs.h"
+#include "int_abs.h"
+#include "exp.h"
+#include "int_exp.h"
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sin.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sin.h
new file mode 100644
index 00000000..327e7d43
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sin.h
@@ -0,0 +1,37 @@
+/*
+** -*- C -*-
+**
+** sin.h
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Tue Dec 5 15:49:18 2006 jofret
+** Last update Mon Oct 22 10:01:54 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#ifndef __SIN_H__
+#define __SIN_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+#include "sin.h"
+#include "cos.h"
+#include "sinh.h"
+#include "cosh.h"
+
+/*
+** Compute Cosine for different types .
+*/
+
+float ssins(float in);
+double dsins(double in);
+floatComplex csins(floatComplex z);
+doubleComplex zsins(doubleComplex in);
+
+void ssina(float* in, int size, float* out);
+void dsina(double* in, int size, double* out);
+void csina(floatComplex* in, int size, floatComplex* out);
+void zsina(doubleComplex* in, int size, doubleComplex* out);
+
+#endif /* !__SIN_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sinh.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sinh.h
new file mode 100644
index 00000000..ba88bb26
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sinh.h
@@ -0,0 +1,32 @@
+/*
+** -*- C -*-
+**
+** sinh.h
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Tue Dec 5 15:49:18 2006 jofret
+** Last update Mon Oct 22 09:24:13 2007 bruno
+**
+** Copyright INRIA 2006
+*/
+
+#ifndef __SINH_H__
+#define __SINH_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+#include <math.h>
+#include "sin.h"
+
+float ssinhs(float x);
+double dsinhs(double x);
+floatComplex csinhs(floatComplex z);
+doubleComplex zsinhs(doubleComplex z);
+
+void ssinha(float* x, int size, float* y);
+void dsinha(double* x, int size, double* y);
+void csinha(floatComplex* x, int size, floatComplex* y);
+void zsinha(doubleComplex* x, int size, doubleComplex* y);
+
+
+#endif /* !__SINH_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sqrt.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sqrt.h
new file mode 100644
index 00000000..01175948
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sqrt.h
@@ -0,0 +1,79 @@
+/*
+** -*- C -*-
+**
+** sqrt.h
+** Made by Bruno JOFRET <bruno.jofret@inria.fr>
+**
+** Started on Thu Mar 22 08:54:39 2007 jofret
+** Last update Mon Oct 22 10:02:53 2007 bruno
+**
+** Copyright INRIA 2007
+*/
+
+#ifndef __SQRT_H__
+#define __SQRT_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+/*
+** Compute Square Root for different types .
+*/
+
+/*
+** \brief Float Square Root function
+** \param in : input value.
+*/
+float ssqrts(float in);
+
+/*
+** \brief Double Square Root function
+** \param in : input value.
+*/
+double dsqrts(double in);
+
+/*
+** \brief Float Complex Square Root function
+** \param in : input value.
+*/
+floatComplex csqrts(floatComplex in);
+
+/*
+** \brief Double Complex Square Root function
+** \param in : input value.
+*/
+doubleComplex zsqrts(doubleComplex in);
+
+/*
+** \brief Float Matrix Square Root function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+void ssqrta(float* in, int size, float* out);
+
+/*
+** \brief Double Matrix Square Root function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+void dsqrta(double* in, int size, double* out);
+
+/*
+** \brief Float Complex Matrix Square Root function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+void csqrta(floatComplex* in, int size, floatComplex* out);
+
+/*
+** \brief Double Complex Matrix Square Root function
+** \param in : input array value.
+** \param out : output array value.
+** \param size : the size of in and out arrays.
+*/
+void zsqrta(doubleComplex* in, int size, doubleComplex* out);
+
+#endif /* !__SQRT_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sum.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sum.h
new file mode 100644
index 00000000..7b48f5fd
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/sum.h
@@ -0,0 +1,83 @@
+/*
+ * 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 __SUM_H__
+#define __SUM_H__
+
+#include "floatComplex.h"
+#include "doubleComplex.h"
+
+/*
+** \brief Sum of a scalar element, just returns it
+*/
+#define ssums(in) in
+#define srowsums(in) in
+#define scolumnssums(in) in
+#define smatlabsums(in) in
+
+/*
+** \brief Sum of a scalar element, just returns it
+*/
+#define dsums(in) in
+#define drowsums(in) in
+#define dcolumnssums(in) in
+#define dmatlabsums(in) in
+
+/*
+** \brief Sum of a scalar element, just returns it
+*/
+#define csums(in) in
+#define crowsums(in) in
+#define ccolumnssums(in) in
+#define cmatlabsums(in) in
+
+/*
+** \brief Sum of a scalar element, just returns it
+*/
+#define zsums(in) in
+#define zrowsums(in) in
+#define zcolumnssums(in) in
+#define zmatlabsums(in) in
+
+/*
+** \brief Sum of a float array
+** \param in the float array to process
+** \param size, the size of the array
+** \returns the sum.
+*/
+float ssuma(float *in, int size);
+
+/*
+** \brief Sum of a float array
+** \param in the double array to process
+** \param size, the size of the array
+** \returns the sum.
+*/
+double dsuma(double *in, int size);
+
+/*
+** \brief Sum of a float complex array
+** \param in the float array to process
+** \param size, the size of the array
+** \returns the sum.
+*/
+floatComplex csuma(floatComplex *in, int size);
+
+/*
+** \brief Sum of a double complex array
+** \param in the double array to process
+** \param size, the size of the array
+** \returns the sum.
+*/
+doubleComplex zsuma(doubleComplex *in, int size);
+
+#endif /* !__SUM_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/zeros.h b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/zeros.h
new file mode 100644
index 00000000..bc739f1b
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cincludes/zeros.h
@@ -0,0 +1,15 @@
+/*
+** -*- C -*-
+**
+** zeros.h
+** Made by Raffael Nutricato
+**
+**
+*/
+
+
+void d0d0zerosd2(double in1, double in2, double* out);
+double d0d0zerosd0(double in1, double in2);
+void s0s0zeross2(float in1, float in2, float* out);
+double s0s0zeross0(float in1, float in2);
+
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_abs.h b/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_abs.h
new file mode 100644
index 00000000..a343db09
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_abs.h
@@ -0,0 +1,54 @@
+/*
+** -*- C -*-
+**
+** int_abs.h
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright POLIBA 2008
+*/
+/*
+ 1. Search for abs in INIT_FillSCI2LibCDirs.sci
+ 2. Search for // --- Function List Class. --- in INIT_FillSCI2LibCDirs.sci
+ 3. You will find
+ PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+ PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+ PrintStringInfo('c0'+ArgSeparator+'s0',ClassFileName,'file','y');
+ PrintStringInfo('z0'+ArgSeparator+'d0',ClassFileName,'file','y');
+ PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+ PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+ PrintStringInfo('c2'+ArgSeparator+'s2',ClassFileName,'file','y');
+ PrintStringInfo('z2'+ArgSeparator+'d2',ClassFileName,'file','y');
+ 4. These are all the functions to be implemented.
+ 5. According to functions available in src you have to generate the mapping between
+ functions in step3 and functions in src.
+*/
+
+#ifndef __INT_ABS_H__
+#define __INT_ABS_H__
+
+#define s0abss0(in) \
+sabss(in);
+
+#define d0absd0(in) \
+dabss(in);
+
+#define c0abss0(in) \
+cabss(in);
+
+#define z0absd0(in) \
+zabss(in);
+
+#define s2abss2(inptr,insizeptr,outptr) \
+sabsa(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+#define d2absd2(inptr,insizeptr,outptr) \
+dabsa(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+#define c2abss2(inptr,insizeptr,outptr) \
+cabsa(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+#define z2absd2(inptr,insizeptr,outptr) \
+zabsa(inptr, insizeptr[0]*insizeptr[1], outptr);
+
+#endif /* !__INT_ABS_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_exp.h b/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_exp.h
new file mode 100644
index 00000000..92c3917b
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_exp.h
@@ -0,0 +1,55 @@
+/*
+** -*- C -*-
+**
+** int_exp.h
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright POLIBA 2008
+*/
+/*
+ 1. Search for exp in INIT_FillSCI2LibCDirs.sci
+ 2. Search for // --- Function List Class. --- in INIT_FillSCI2LibCDirs.sci
+ 3. You will find
+ PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+ PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+ PrintStringInfo('c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+ PrintStringInfo('z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+ PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+ PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+ PrintStringInfo('c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+ PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+ 4. These are all the functions to be implemented.
+ 5. According to functions available in src you have to generate the mapping between
+ functions in step3 and functions in src.
+*/
+
+#ifndef __INT_EXP_H__
+#define __INT_EXP_H__
+
+
+#define s0exps0(in) \
+sexps(in)
+
+#define d0expd0(in) \
+dexps(in)
+
+#define c0expc0(in) \
+cexps(in)
+
+#define z0expz0(in) \
+zexps(in)
+
+#define s2exps2(inptr,insizeptr,outptr) \
+sexpa(inptr, insizeptr[0]*insizeptr[1], outptr)
+
+#define d2expd2(inptr,insizeptr,outptr) \
+dexpa(inptr, insizeptr[0]*insizeptr[1], outptr)
+
+#define c2expc2(inptr,insizeptr,outptr) \
+cexpa(inptr, insizeptr[0]*insizeptr[1], outptr)
+
+#define z2expz2(inptr,insizeptr,outptr) \
+zexpa(inptr, insizeptr[0]*insizeptr[1], outptr)
+
+#endif /* !__INT_EXP_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_length.h b/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_length.h
new file mode 100644
index 00000000..29546f5b
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_length.h
@@ -0,0 +1,70 @@
+/*
+** -*- C -*-
+**
+** int_length.h
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright POLIBA 2008
+*/
+/*
+ 1. Search for length in INIT_FillSCI2LibCDirs.sci
+ 2. Search for // --- Function List Class. --- in INIT_FillSCI2LibCDirs.sci
+ 3. You will find
+ PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+ PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+ PrintStringInfo('c0'+ArgSeparator+'s0',ClassFileName,'file','y');
+ PrintStringInfo('z0'+ArgSeparator+'d0',ClassFileName,'file','y');
+ PrintStringInfo('g0'+ArgSeparator+'s0',ClassFileName,'file','y');
+ PrintStringInfo('g0'+ArgSeparator+'d0',ClassFileName,'file','y');
+
+ PrintStringInfo('s2'+ArgSeparator+'s0',ClassFileName,'file','y');
+ PrintStringInfo('d2'+ArgSeparator+'d0',ClassFileName,'file','y');
+ PrintStringInfo('c2'+ArgSeparator+'s0',ClassFileName,'file','y');
+ PrintStringInfo('z2'+ArgSeparator+'d0',ClassFileName,'file','y');
+ PrintStringInfo('g2'+ArgSeparator+'s0',ClassFileName,'file','y');
+ PrintStringInfo('g2'+ArgSeparator+'d0',ClassFileName,'file','y');
+ 4. These are all the functions to be implemented.
+ 5. According to functions available in src you have to generate the mapping between
+ functions in step3 and functions in src.
+*/
+
+#ifndef __INT_LENGTH_H__
+#define __INT_LENGTH_H__
+
+#define s0lengths0(in) \
+slengths(in)
+
+#define d0lengthd0(in) \
+dlengths(in)
+
+#define c0lengths0(in) \
+clengths(in)
+
+#define z0lengthd0(in) \
+zlengths(in)
+
+#define g0lengths0(in) \
+slengths(in)
+
+#define g0lengthd0(in) \
+dlengths(in)
+
+#define s2lengths0(inptr,insizeptr) \
+slengtha(inptr, insizeptr[0]*insizeptr[1])
+
+#define d2lengthd0(inptr,insizeptr) \
+dlengtha(inptr, insizeptr[0]*insizeptr[1])
+
+#define c2lengths0(inptr,insizeptr) \
+clengtha(inptr, insizeptr[0]*insizeptr[1])
+
+#define z2lengthd0(inptr,insizeptr) \
+zlengtha(inptr, insizeptr[0]*insizeptr[1])
+
+#define g2lengths0(inptr,insizeptr) \
+slengtha(inptr, insizeptr[0]*insizeptr[1])
+
+#define g2lengthd0(inptr,insizeptr) \
+dlengtha(inptr, insizeptr[0]*insizeptr[1])
+#endif /* !__INT_LENGTH_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_log.h b/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_log.h
new file mode 100644
index 00000000..cefa7c31
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_log.h
@@ -0,0 +1,34 @@
+/*
+ * 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_LOG_H__
+#define __INT_LOG_H__
+
+#define s0logs0(in) slogs(in)
+
+#define d0logd0(in) dlogs(in)
+
+#define c0logc0(in) clogs(in)
+
+#define z0logz0(in) zlogs(in)
+
+#define s2logs2(in,size,out) sloga(in, size[0]*size[1], out)
+
+#define d2logd2(in,size,out) dloga(in, size[0]*size[1], out)
+
+#define c2logc2(in,size,out) cloga(in, size[0]*size[1], out)
+
+#define z2logz2(in,size,out) zloga(in, size[0]*size[1], out)
+
+#endif /* !__INT_LOG_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_log10.h b/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_log10.h
new file mode 100644
index 00000000..3363ab18
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_log10.h
@@ -0,0 +1,34 @@
+/*
+ * 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_LOG10_H__
+#define __INT_LOG10_H__
+
+#define s0log10s0(in) slog10s(in)
+
+#define d0log10d0(in) dlog10s(in)
+
+#define c0log10c0(in) clog10s(in)
+
+#define z0log10z0(in) zlog10s(in)
+
+#define s2log10s2(in,size,out) slog10a(in, size[0]*size[1], out)
+
+#define d2log10d2(in,size,out) dlog10a(in, size[0]*size[1], out)
+
+#define c2log10c2(in,size,out) clog10a(in, size[0]*size[1], out)
+
+#define z2log10z2(in,size,out) zlog10a(in, size[0]*size[1], out)
+
+#endif /* !__INT_LOG10_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_log1p.h b/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_log1p.h
new file mode 100644
index 00000000..76632afc
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_log1p.h
@@ -0,0 +1,34 @@
+/*
+ * 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_LOG1P_H__
+#define __INT_LOG1P_H__
+
+#define s0log1ps0(in) slog1ps(in)
+
+#define d0log1pd0(in) dlog1ps(in)
+
+#define c0log1pc0(in) clog1ps(in)
+
+#define z0log1pz0(in) zlog1ps(in)
+
+#define s2log1ps2(in,size,out) slog1pa(in, size[0]*size[1], out)
+
+#define d2log1pd2(in,size,out) dlog1pa(in, size[0]*size[1], out)
+
+#define c2log1pc2(in,size,out) clog1pa(in, size[0]*size[1], out)
+
+#define z2log1pz2(in,size,out) zlog1pa(in, size[0]*size[1], out)
+
+#endif /* !__INT_LOG1P_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_mean.h b/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_mean.h
new file mode 100644
index 00000000..b4652ce6
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_mean.h
@@ -0,0 +1,34 @@
+/*
+ * 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_MEAN_H__
+#define __INT_MEAN_H__
+
+#define s0means0(in) smeans(in)
+
+#define d0meand0(in) dmeans(in)
+
+#define c0meanc0(in) cmeans(in)
+
+#define z0meanz0(in) zmeans(in)
+
+#define s2means0(in,size) smeana(in, size[0]*size[1])
+
+#define d2meand0(in,size) dmeana(in, size[0]*size[1])
+
+#define c2meanc0(in,size) cmeana(in, size[0]*size[1])
+
+#define z2meanz0(in,size) zmeana(in, size[0]*size[1])
+
+#endif /* !__INT_MEAN_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_sqrt.h b/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_sqrt.h
new file mode 100644
index 00000000..e8bd7e97
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_sqrt.h
@@ -0,0 +1,71 @@
+/*
+** -*- C -*-
+**
+** int_sqrt.h
+** Made by Raffaele Nutricato <raffaele.nutricato@tiscali.it>
+**
+**
+** Copyright POLIBA 2008
+*/
+/*
+ 1. Search for sqrt in INIT_FillSCI2LibCDirs.sci
+ 2. Search for // --- Function List Class. --- in INIT_FillSCI2LibCDirs.sci
+ 3. You will find
+ PrintStringInfo('s0'+ArgSeparator+'s0',ClassFileName,'file','y');
+ PrintStringInfo('s0'+ArgSeparator+'c0',ClassFileName,'file','y');
+ PrintStringInfo('d0'+ArgSeparator+'d0',ClassFileName,'file','y');
+ PrintStringInfo('d0'+ArgSeparator+'z0',ClassFileName,'file','y');
+ PrintStringInfo('c0'+ArgSeparator+'c0',ClassFileName,'file','y');
+ PrintStringInfo('z0'+ArgSeparator+'z0',ClassFileName,'file','y');
+
+ PrintStringInfo('s2'+ArgSeparator+'s2',ClassFileName,'file','y');
+ PrintStringInfo('s2'+ArgSeparator+'c2',ClassFileName,'file','y');
+ PrintStringInfo('d2'+ArgSeparator+'d2',ClassFileName,'file','y');
+ PrintStringInfo('d2'+ArgSeparator+'z2',ClassFileName,'file','y');
+ PrintStringInfo('c2'+ArgSeparator+'c2',ClassFileName,'file','y');
+ PrintStringInfo('z2'+ArgSeparator+'z2',ClassFileName,'file','y');
+ 4. These are all the functions to be implemented.
+ 5. According to functions available in src you have to generate the mapping between
+ functions in step3 and functions in src.
+*/
+
+#ifndef __INT_SQRT_H__
+#define __INT_SQRT_H__
+
+#define s0sqrts0(in) \
+ssqrts(in)
+
+#define s0sqrtc0(in) \
+/* BRUNO IT IS NOT AVAILABLE, PLEASE IMPLEMENT IT */
+
+#define d0sqrtd0(in) \
+dsqrts(in)
+
+#define d0sqrtz0(in) \
+/* BRUNO IT IS NOT AVAILABLE, PLEASE IMPLEMENT IT */
+
+#define c0sqrtc0(in) \
+csqrts(in)
+
+#define z0sqrtz0(in) \
+zsqrts(in)
+
+#define s2sqrts2(inptr,insizeptr,outptr) \
+ssqrta(inptr, insizeptr[0]*insizeptr[1], outptr)
+
+#define s2sqrtc2(inptr,insizeptr,outptr) \
+/* BRUNO IT IS NOT AVAILABLE, PLEASE IMPLEMENT IT */
+
+#define d2sqrtd2(inptr,insizeptr,outptr) \
+dsqrta(inptr, insizeptr[0]*insizeptr[1], outptr)
+
+#define d2sqrtz2(inptr,insizeptr,outptr) \
+/* BRUNO IT IS NOT AVAILABLE, PLEASE IMPLEMENT IT */
+
+#define c2sqrtc2(inptr,insizeptr,outptr) \
+csqrta(inptr, insizeptr[0]*insizeptr[1], outptr)
+
+#define z2sqrtz2(inptr,insizeptr,outptr) \
+zsqrta(inptr, insizeptr[0]*insizeptr[1], outptr)
+
+#endif /* !__INT_SQRT_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_sum.h b/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_sum.h
new file mode 100644
index 00000000..b124245d
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cinterfaces/int_sum.h
@@ -0,0 +1,34 @@
+/*
+ * 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_SUM_H__
+#define __INT_SUM_H__
+
+#define s0sums0(in) ssums(in)
+
+#define d0sumd0(in) dsums(in)
+
+#define c0sumc0(in) csums(in)
+
+#define z0sumz0(in) zsums(in)
+
+#define s2sums0(in,size) ssuma(in, size[0]*size[1])
+
+#define d2sumd0(in,size) dsuma(in, size[0]*size[1])
+
+#define c2sumc0(in,size) csuma(in, size[0]*size[1])
+
+#define z2sumz0(in,size) zsuma(in, size[0]*size[1])
+
+#endif /* !__INT_SUM_H__ */
diff --git a/src/Scilab2C/Scilab2C/CFiles/sci2cobj/readme.txt b/src/Scilab2C/Scilab2C/CFiles/sci2cobj/readme.txt
new file mode 100644
index 00000000..54f467f7
--- /dev/null
+++ b/src/Scilab2C/Scilab2C/CFiles/sci2cobj/readme.txt
@@ -0,0 +1,2 @@
+for the moment the makefile generates the obj files in
+the source directory where .c files are stored. \ No newline at end of file
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_1.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_1.sci
index 65a11ca0..3e9ee878 100644
--- a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_1.sci
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_1.sci
@@ -1,11 +1,10 @@
-function outsize = FA_SZ_1(insize)
-// function outsize = FA_SZ_1(insize)
-// -----------------------------------------------------------------
-//
-// Status:
-// 08-Dec-2007 -- Raffaele Nutricato: Author.
-// 08-Dec-2007 -- Alberto Morea: Test Ok.
-// -----------------------------------------------------------------
-
-outsize = insize(1);
-endfunction \ No newline at end of file
+function outsize = FA_SZ_1(insize)
+// function outsize = FA_SZ_1(insize)
+// -----------------------------------------------------------------
+//
+// Status:
+// 08-Dec-2007 -- Raffaele Nutricato: Author.
+// 08-Dec-2007 -- Alberto Morea: Test Ok.
+// -----------------------------------------------------------------
+
+outsize = insize(1);
diff --git a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_2.sci b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_2.sci
index f363996a..414dcc01 100644
--- a/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_2.sci
+++ b/src/Scilab2C/Scilab2C/FunctionAnnotation/FA_SZ_2.sci
@@ -1,11 +1,10 @@
-function outsize = FA_SZ_2(insize)
-// function outsize = FA_SZ_2(insize)
-// -----------------------------------------------------------------
-//
-// Status:
-// 08-Dec-2007 -- Raffaele Nutricato: Author.
-// 08-Dec-2007 -- Alberto Morea: Test Ok.
-// -----------------------------------------------------------------
-
-outsize = insize(2);
-endfunction \ No newline at end of file
+function outsize = FA_SZ_2(insize)
+// function outsize = FA_SZ_2(insize)
+// -----------------------------------------------------------------
+//
+// Status:
+// 08-Dec-2007 -- Raffaele Nutricato: Author.
+// 08-Dec-2007 -- Alberto Morea: Test Ok.
+// -----------------------------------------------------------------
+
+outsize = insize(2);
diff --git a/src/Scilab2C/Scilab2C/FunctionList/FL_GetFunctionClass.sci b/src/Scilab2C/Scilab2C/FunctionList/FL_GetFunctionClass.sci
index 373604c4..1d2185ad 100644
--- a/src/Scilab2C/Scilab2C/FunctionList/FL_GetFunctionClass.sci
+++ b/src/Scilab2C/Scilab2C/FunctionList/FL_GetFunctionClass.sci
@@ -1,31 +1,34 @@
-function SCI2CClassName = FL_GetFunctionClass(FunFileName,SCI2CClassSpecifier,ReportFileName)
-// function SCI2CClassName = FL_GetFunctionClass(FunFileName,SCI2CClassSpecifier,ReportFileName)
-// -----------------------------------------------------------------
-//
-// Status:
-// 11-Jul-2007 -- Nutricato Raffaele: Author.
-//
-// Copyright 2007 Raffaele Nutricato.
-// Contact: raffaele.nutricato@tiscali.it
-// -----------------------------------------------------------------
-
-SCI2CNInArgCheck(argn(2),3,3);
-inannfid = SCI2COpenFileRead(FunFileName);
-FoundClass = 0;
-if (meof(inannfid) == 0)
- check_string = stripblanks(mgetl(inannfid,1));
- if (~isempty(check_string))
- if (SCI2Cstrncmps1size(SCI2CClassSpecifier,check_string))
- SCI2CClassName = part(check_string,length(SCI2CClassSpecifier)+1:length(check_string));
- FoundClass = 1;
- else
- SCI2CerrorFile('Could not find ""'+SCI2CClassSpecifier+'"" in '+FunFileName+'.',ReportFileName);
- end
- end
-end
-mclose(inannfid);
-if (FoundClass == 0)
- SCI2CerrorFile('Could not find ""'+SCI2CClassSpecifier+'"" specifier.',ReportFileName);
-end
-
-endfunction
+function SCI2CClassName = FL_GetFunctionClass(FunFileName,SCI2CClassSpecifier,ReportFileName)
+// function SCI2CClassName = FL_GetFunctionClass(FunFileName,SCI2CClassSpecifier,ReportFileName)
+// -----------------------------------------------------------------
+//
+// Status:
+// 11-Jul-2007 -- Nutricato Raffaele: Author.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),3,3);
+
+inannfid = SCI2COpenFileRead(FunFileName);
+
+FoundClass = 0;
+if (meof(inannfid) == 0)
+ check_string = stripblanks(mgetl(inannfid,1));
+ if (~isempty(check_string))
+ if (SCI2Cstrncmps1size(SCI2CClassSpecifier,check_string))
+ SCI2CClassName = part(check_string,length(SCI2CClassSpecifier)+1:length(check_string));
+ FoundClass = 1;
+ else
+ SCI2CerrorFile('Could not find ""'+SCI2CClassSpecifier+'"" in '+FunFileName+'.',ReportFileName);
+ end
+ end
+end
+mclose(inannfid);
+if (FoundClass == 0)
+ SCI2CerrorFile('Could not find ""'+SCI2CClassSpecifier+'"" specifier.',ReportFileName);
+end
+
+endfunction
+ \ No newline at end of file
diff --git a/src/Scilab2C/Scilab2C/LaunchMultiRunSCI2C.sci b/src/Scilab2C/Scilab2C/LaunchMultiRunSCI2C.sci
index 95854312..bc1e118a 100644
--- a/src/Scilab2C/Scilab2C/LaunchMultiRunSCI2C.sci
+++ b/src/Scilab2C/Scilab2C/LaunchMultiRunSCI2C.sci
@@ -1,85 +1,80 @@
-// Before launching this script, please
-// check all the paths below.
-// User should change parameters only in (USER PARAMETERS) sections.
-// cd C:\Nutricato\OpenProjects\FP6_hArtes\WP2_SCI2C\Software\Scilab2C; exec LaunchMultiRunSCI2C.sci
-
-// --- CLEAN WORKSPACE ---
-exec full_reset.sce;
-mode(-1);
-
-// --- GENERAL SETTINGS (USER PARAMETERS) ---
-RunsDirectory = pwd(); // Path of the SCI2CRuns directory
-SCI2CDirectory = 'D:\Nutricato\OpenProjects\FP6_hArtes\WP2_SCI2C\Software\Scilab2C'; // Path of the Scilab2C directory
-
-// --- SPECIFIC SETTINGS (USER PARAMETERS) ---
-FullListSCI2CInputPrmFiles = ...
- [...
- fullfile('D:\Nutricato\OpenProjects\FP6_hArtes\WP2_SCI2C\Software\SCI2CTests\RegressionTests\test001_verysimple','SCI2CInputParameters.sce');...
- fullfile('C:\SCI2CTests\RegressionTests\test002_Symbols','SCI2CInputParameters.sce');...
- fullfile('C:\SCI2CTests\RegressionTests\test003_fft','SCI2CInputParameters.sce');...
- fullfile('C:\SCI2CTests\RegressionTests\test004_ScalarProduct','SCI2CInputParameters.sce');...
- fullfile('C:\SCI2CTests\RegressionTests\test100_recursivefunctions','SCI2CInputParameters.sce');...
- fullfile('C:\SCI2CTests\RegressionTests\test999_WorkingDir','SCI2CInputParameters.sce');...
- ];
-WorkingListSCI2CInputPrmFiles = ...
- [...
- fullfile('..\SCI2CTests\RegressionTests\test999_WorkingDir','SCI2CInputParameters.sce');...
- ];
-
-// Select one of the two lists above.
-
-ListSCI2CInputPrmFiles = WorkingListSCI2CInputPrmFiles;
-//ListSCI2CInputPrmFiles = FullListSCI2CInputPrmFiles;
-
-// ================================
-// ================================
-// ================================
-// ================================
-
-// --- LAUNCH MULTIRUNSCI2C ---
-NTranslations = size(ListSCI2CInputPrmFiles,1);
-for cnttransl = 1:NTranslations
- cd(SCI2CDirectory);
-
- SCI2CInputPrmFileName = ListSCI2CInputPrmFiles(cnttransl);
-
- // --- LAUNCH USER SCI CODE TO TEST IT BEFORE TRANSLATING IT!!! ---
- cd(SCI2CDirectory)
- getf("runscicode.sci");
- runscicode(SCI2CInputPrmFileName);
-
- // --- ASK USER FOR CONTINUATION. ---
- userchoice = input('Start translation [y/n]?','s');
- if (userchoice == 'y')
-
- // --- LAUNCH SCI2C ---
- cd(SCI2CDirectory)
- getf("runsci2c.sci");
- runsci2c(SCI2CInputPrmFileName);
- cd(SCI2CDirectory)
- else
- end
-end
-
-// ----------------------------------------
-// --- Compile and Launch all the code. ---
-// ----------------------------------------
-// This option is available only for regression tests.
-if (1==1)
- cd(fullfile(SCI2CDirectory,'ToolInitialization'));
- exec('INIT_SCI2CLoader.sce');
-
- PrintStepInfo('Generate Script for Regression Tests...Available only for Debug.','','both');
- C_GenerateLaunchScript('D:\Nutricato\OpenProjects\FP6_hArtes\WP2_SCI2C\Software\SCI2CTests\RegressionTests',ListSCI2CInputPrmFiles);
-end
-
-// ---------------------------------------
-// --- Go back to the start directory. ---
-// ---------------------------------------
-cd (RunsDirectory);
-
-// ------------------------
-// --- Close all files. ---
-// ------------------------
-// --- This must be the last instruction. ---
-mclose('all');
+// Before launching this script, please
+// check all the paths below.
+// User should change parameters only in (USER PARAMETERS) sections.
+// cd C:\Nutricato\OpenProjects\FP6_hArtes\WP2_SCI2C\Software\Scilab2C; exec LaunchMultiRunSCI2C.sci
+
+// --- CLEAN WORKSPACE ---
+exec full_reset.sce;
+mode(-1);
+
+// --- GENERAL SETTINGS (USER PARAMETERS) ---
+RunsDirectory = pwd(); // Path of the SCI2CRuns directory
+SCI2CDirectory = 'D:\Nutricato_GAPSVN\PROGETTI_APERTI\POLIBA\hArtes\WP2_SCI2C\Software\Version_alpha\Scilab2C'; // Path of the Scilab2C directory
+
+// --- SPECIFIC SETTINGS (USER PARAMETERS) ---
+FullListSCI2CInputPrmFiles = ...
+ [...
+ 'D:\Nutricato_GAPSVN\PROGETTI_APERTI\POLIBA\hArtes\WP2_SCI2C\Software\Version_alpha\SCI2CTests\test999_WorkingDir\SCI2CInputParameters.sce';...
+ ];
+WorkingListSCI2CInputPrmFiles = ...
+ [...
+ 'D:\Nutricato_GAPSVN\PROGETTI_APERTI\POLIBA\hArtes\WP2_SCI2C\Software\Version_alpha\SCI2CTests\test999_WorkingDir\SCI2CInputParameters.sce';...
+ ];
+
+// Select one of the two lists above.
+
+ListSCI2CInputPrmFiles = WorkingListSCI2CInputPrmFiles;
+//ListSCI2CInputPrmFiles = FullListSCI2CInputPrmFiles;
+
+// ================================
+// ================================
+// ================================
+// ================================
+
+// --- LAUNCH MULTIRUNSCI2C ---
+NTranslations = size(ListSCI2CInputPrmFiles,1);
+for cnttransl = 1:NTranslations
+ cd(SCI2CDirectory);
+
+ SCI2CInputPrmFileName = ListSCI2CInputPrmFiles(cnttransl);
+
+ // --- LAUNCH USER SCI CODE TO TEST IT BEFORE TRANSLATING IT!!! ---
+ cd(SCI2CDirectory)
+ getf("runscicode.sci");
+ runscicode(SCI2CInputPrmFileName);
+
+ // --- ASK USER FOR CONTINUATION. ---
+ userchoice = input('Start translation [y/n]?','s');
+ if (userchoice == 'y')
+
+ // --- LAUNCH SCI2C ---
+ cd(SCI2CDirectory)
+ getf("runsci2c.sci");
+ runsci2c(SCI2CInputPrmFileName);
+ cd(SCI2CDirectory)
+ else
+ end
+end
+
+// ----------------------------------------
+// --- Compile and Launch all the code. ---
+// ----------------------------------------
+// This option is available only for regression tests.
+if (1==1)
+ cd(fullfile(SCI2CDirectory,'ToolInitialization'));
+ exec('INIT_SCI2CLoader.sce');
+
+ PrintStepInfo('Generate Script for Regression Tests...Available only for Debug.','','both');
+ C_GenerateLaunchScript('D:\Nutricato\OpenProjects\FP6_hArtes\WP2_SCI2C\Software\SCI2CTests\RegressionTests',ListSCI2CInputPrmFiles);
+end
+
+// ---------------------------------------
+// --- Go back to the start directory. ---
+// ---------------------------------------
+cd (RunsDirectory);
+
+// ------------------------
+// --- Close all files. ---
+// ------------------------
+// --- This must be the last instruction. ---
+mclose('all');
diff --git a/src/Scilab2C/Scilab2C/ToolInitialization/INIT_LoadLibraries.sci b/src/Scilab2C/Scilab2C/ToolInitialization/INIT_LoadLibraries.sci
index 21255c8d..4db6eaed 100644
--- a/src/Scilab2C/Scilab2C/ToolInitialization/INIT_LoadLibraries.sci
+++ b/src/Scilab2C/Scilab2C/ToolInitialization/INIT_LoadLibraries.sci
@@ -1,39 +1,39 @@
-function INIT_LoadLibraries(FileInfoDatFile)
-// function INIT_LoadLibraries(FileInfoDatFile)
-// -----------------------------------------------------------------
-//
-// Status:
-// 12-Jun-2007 -- Raffaele Nutricato: Author.
-// 03-Jan-2008 -- Raffaele Nutricato: Changed directory structure.
-//
-// Copyright 2007 Raffaele Nutricato.
-// Contact: raffaele.nutricato@tiscali.it
-// -----------------------------------------------------------------
-
-SCI2CNInArgCheck(argn(2),1,1);
-
-clear FileInfo
-load(FileInfoDatFile,'FileInfo');
-
-clear SharedInfo
-load(FileInfo.SharedInfoDatFile,'SharedInfo');
-PrintStepInfo('Load SCI2C and USER2C Libraries.',FileInfo.GeneralReport,'both');
-SCI2CAvailableC = [];
-USER2CAvailableC = [];
-Converted = [];
-ToBeConverted(1).SCIFunctionName = SharedInfo.NextSCIFunName;
-ToBeConverted(1).CFunctionName = SharedInfo.NextCFunName;
-
-[SCI2CAvailableC,SCI2CNElem] = FL_ExtractFuncList(FileInfo.SCI2CLibCFLFun,FileInfo.SCI2CLibCFLCls,...
- SharedInfo.Annotations.FUNCLASS,SharedInfo.Extension.FuncListClasses,FileInfo.GeneralReport);
-
-[USER2CAvailableC,USER2CNElem] = FL_ExtractFuncList(FileInfo.USER2CLibCFLFun,FileInfo.USER2CLibCFLCls,...
- SharedInfo.Annotations.FUNCLASS,SharedInfo.Extension.FuncListClasses,FileInfo.GeneralReport);
-Available = SCI2CAvailableC;
-save(FileInfo.FunctionList.SCI2CAvailableCDat,Available);
-Available = USER2CAvailableC;
-save(FileInfo.FunctionList.USER2CAvailableCDat,Available);
-save(FileInfo.FunctionList.ConvertedDat,Converted);
-save(FileInfo.FunctionList.ToBeConvertedDat,ToBeConverted);
-
-endfunction
+function INIT_LoadLibraries(FileInfoDatFile)
+// function INIT_LoadLibraries(FileInfoDatFile)
+// -----------------------------------------------------------------
+//
+// Status:
+// 12-Jun-2007 -- Raffaele Nutricato: Author.
+// 03-Jan-2008 -- Raffaele Nutricato: Changed directory structure.
+//
+// Copyright 2007 Raffaele Nutricato.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+SCI2CNInArgCheck(argn(2),1,1);
+
+clear FileInfo
+load(FileInfoDatFile,'FileInfo');
+
+clear SharedInfo
+load(FileInfo.SharedInfoDatFile,'SharedInfo');
+PrintStepInfo('Load SCI2C and USER2C Libraries.',FileInfo.GeneralReport,'both');
+SCI2CAvailableC = [];
+USER2CAvailableC = [];
+Converted = [];
+ToBeConverted(1).SCIFunctionName = SharedInfo.NextSCIFunName;
+ToBeConverted(1).CFunctionName = SharedInfo.NextCFunName;
+
+[SCI2CAvailableC,SCI2CNElem] = FL_ExtractFuncList(FileInfo.SCI2CLibCFLFun,FileInfo.SCI2CLibCFLCls,...
+ SharedInfo.Annotations.FUNCLASS,SharedInfo.Extension.FuncListClasses,FileInfo.GeneralReport);
+
+[USER2CAvailableC,USER2CNElem] = FL_ExtractFuncList(FileInfo.USER2CLibCFLFun,FileInfo.USER2CLibCFLCls,...
+ SharedInfo.Annotations.FUNCLASS,SharedInfo.Extension.FuncListClasses,FileInfo.GeneralReport);
+Available = SCI2CAvailableC;
+save(FileInfo.FunctionList.SCI2CAvailableCDat,Available);
+Available = USER2CAvailableC;
+save(FileInfo.FunctionList.USER2CAvailableCDat,Available);
+save(FileInfo.FunctionList.ConvertedDat,Converted);
+save(FileInfo.FunctionList.ToBeConvertedDat,ToBeConverted);
+
+endfunction
diff --git a/src/Scilab2C/Scilab2C/full_reset.sce b/src/Scilab2C/Scilab2C/full_reset.sce
index e1e65fda..9edaa54c 100644
--- a/src/Scilab2C/Scilab2C/full_reset.sce
+++ b/src/Scilab2C/Scilab2C/full_reset.sce
@@ -18,5 +18,5 @@ clear
//for counter =1:50
// close
//end
-
+//YES BUT I NEED HOW TO PERFORM THE CLOSE ALL ACTION!!!
lines(0)
diff --git a/src/Scilab2C/Scilab2C/runsci2c.sci b/src/Scilab2C/Scilab2C/runsci2c.sci
index f07cbf2e..387e0283 100644
--- a/src/Scilab2C/Scilab2C/runsci2c.sci
+++ b/src/Scilab2C/Scilab2C/runsci2c.sci
@@ -1,103 +1,103 @@
-function runsci2c(SCI2CInputPrmFile)
-// function runsci2c(SCI2CInputPrmFile)
-// -----------------------------------------------------------------
-// === hArtes/PoliBa/GAP SCI2C tool ===
-// === Authors: ===
-// === Raffaele Nutricato ===
-// === raffaele.nutricato@tiscali.it ===
-// === Alberto Morea ===
-//
-// This is the main function of SCI2C.
-//
-// Input data:
-// SCI2CInputPrmFile: path+filename of the input parameters file.
-//
-// Output data:
-// ---
-//
-// Status:
-// 11-Apr-2007 -- Raffaele Nutricato: Author.
-// 11-Apr-2007 -- Alberto Morea: Tests.
-//
-// Copyright 2007 Raffaele Nutricato & Alberto Morea.
-// Contact: raffaele.nutricato@tiscali.it
-// -----------------------------------------------------------------
-
-// -------------------
-// --- Soft reset. ---
-// -------------------
-mode(-1);
-clc;
-// -----------------------
-// --- End Soft reset. ---
-// -----------------------
-
-// -------------------------
-// --- Input Parameters. ---
-// -------------------------
-RunSci2CMainDir = pwd();
-// -----------------------------
-// --- End input Parameters. ---
-// -----------------------------
-
-// -------------------------------
-// --- Perform Intializations. ---
-// -------------------------------
-// --- Load SCI2C directories and files. ---
-cd(fullfile(RunSci2CMainDir,'ToolInitialization'));
-exec('INIT_SCI2CLoader.sce');
-cd(RunSci2CMainDir);
-
-// --- Initialize the SCI2C tool directories and files. ---
-[FileInfoDatFile,SharedInfoDatFile] = INIT_SCI2C(SCI2CInputPrmFile);
-
-// --- Load RunMode. ---
-load(SharedInfoDatFile,'SharedInfo');
-RunMode = SharedInfo.RunMode;
-clear ShareInfo
-
-// --- Generation of the library structure. ---
-if (RunMode == 'GenLibraryStructure' | RunMode == 'All')
- INIT_GenLibraries(FileInfoDatFile);
-end
-
-// --- Load Library Info. ---
-INIT_LoadLibraries(FileInfoDatFile);
-
-// -----------------------------------
-// --- End Perform Intializations. ---
-// -----------------------------------
-
-// ----------------------------------
-// --- Perform SCI2C Translation. ---
-// ----------------------------------
-if (RunMode == 'All' | RunMode == 'Translate')
- FlagContinueTranslation = 1;
- while(FlagContinueTranslation == 1)
- UpdateSCI2CInfo(FileInfoDatFile);
- AST_GetASTFile(FileInfoDatFile);
- AST2Ccode(FileInfoDatFile);
- JoinDeclarAndCcode(FileInfoDatFile);
- FlagContinueTranslation = ManageNextConversion(FileInfoDatFile);
- end
-end
-
-// --------------------------
-// --- Generate Makefile. ---
-// --------------------------
-load(FileInfoDatFile,'FileInfo');
-load(SharedInfoDatFile,'SharedInfo');
-C_GenerateMakefile(FileInfo,SharedInfo);
-clear FileInfo
-clear SharedInfo
-
-// -----------------
-// --- Epilogue. ---
-// -----------------
-load(FileInfoDatFile,'FileInfo');
-if (RunMode == 'All' | RunMode == 'Translate')
- PrintStepInfo('Translation Successfully Completed!!!',FileInfo.GeneralReport,'both');
-elseif (RunMode == 'GenLibraryStructure')
- PrintStepInfo('Library Structure Successfully Created!!!',FileInfo.GeneralReport,'both');
-end
-clear FileInfo
+function runsci2c(SCI2CInputPrmFile)
+// function runsci2c(SCI2CInputPrmFile)
+// -----------------------------------------------------------------
+// === hArtes/PoliBa/GAP SCI2C tool ===
+// === Authors: ===
+// === Raffaele Nutricato ===
+// === raffaele.nutricato@tiscali.it ===
+// === Alberto Morea ===
+//
+// This is the main function of SCI2C.
+//
+// Input data:
+// SCI2CInputPrmFile: path+filename of the input parameters file.
+//
+// Output data:
+// ---
+//
+// Status:
+// 11-Apr-2007 -- Raffaele Nutricato: Author.
+// 11-Apr-2007 -- Alberto Morea: Tests.
+//
+// Copyright 2007 Raffaele Nutricato & Alberto Morea.
+// Contact: raffaele.nutricato@tiscali.it
+// -----------------------------------------------------------------
+
+// -------------------
+// --- Soft reset. ---
+// -------------------
+mode(-1);
+clc;
+// -----------------------
+// --- End Soft reset. ---
+// -----------------------
+
+// -------------------------
+// --- Input Parameters. ---
+// -------------------------
+RunSci2CMainDir = pwd();
+// -----------------------------
+// --- End input Parameters. ---
+// -----------------------------
+
+// -------------------------------
+// --- Perform Intializations. ---
+// -------------------------------
+// --- Load SCI2C directories and files. ---
+cd(fullfile(RunSci2CMainDir,'ToolInitialization'));
+exec('INIT_SCI2CLoader.sce');
+cd(RunSci2CMainDir);
+
+// --- Initialize the SCI2C tool directories and files. ---
+[FileInfoDatFile,SharedInfoDatFile] = INIT_SCI2C(SCI2CInputPrmFile);
+
+// --- Load RunMode. ---
+load(SharedInfoDatFile,'SharedInfo');
+RunMode = SharedInfo.RunMode;
+clear ShareInfo
+
+// --- Generation of the library structure. ---
+if (RunMode == 'GenLibraryStructure' | RunMode == 'All')
+ INIT_GenLibraries(FileInfoDatFile);
+end
+
+// --- Load Library Info. ---
+INIT_LoadLibraries(FileInfoDatFile);
+
+// -----------------------------------
+// --- End Perform Intializations. ---
+// -----------------------------------
+
+// ----------------------------------
+// --- Perform SCI2C Translation. ---
+// ----------------------------------
+if (RunMode == 'All' | RunMode == 'Translate')
+ FlagContinueTranslation = 1;
+ while(FlagContinueTranslation == 1)
+ UpdateSCI2CInfo(FileInfoDatFile);
+ AST_GetASTFile(FileInfoDatFile);
+ AST2Ccode(FileInfoDatFile);
+ JoinDeclarAndCcode(FileInfoDatFile);
+ FlagContinueTranslation = ManageNextConversion(FileInfoDatFile);
+ end
+end
+
+// --------------------------
+// --- Generate Makefile. ---
+// --------------------------
+load(FileInfoDatFile,'FileInfo');
+load(SharedInfoDatFile,'SharedInfo');
+C_GenerateMakefile(FileInfo,SharedInfo);
+clear FileInfo
+clear SharedInfo
+
+// -----------------
+// --- Epilogue. ---
+// -----------------
+load(FileInfoDatFile,'FileInfo');
+if (RunMode == 'All' | RunMode == 'Translate')
+ PrintStepInfo('Translation Successfully Completed!!!',FileInfo.GeneralReport,'both');
+elseif (RunMode == 'GenLibraryStructure')
+ PrintStepInfo('Library Structure Successfully Created!!!',FileInfo.GeneralReport,'both');
+end
+clear FileInfo