From e733d0ce2c4d804896031c0789fa192106508a35 Mon Sep 17 00:00:00 2001 From: nutricato Date: Thu, 22 Mar 2007 11:16:08 +0000 Subject: Preliminary version to generate a tree for each library function --- src/Scilab2C/FunctionTableManagement/AddBranch.sci | 173 ++++++++++ .../FunctionTableManagement/AddLeafAtan.sci | 131 ++++++++ .../FunctionTableManagement/AddLeafConvol.sci | 373 +++++++++++++++++++++ .../FunctionTableManagement/AddLeafDet.sci | 85 +++++ .../FunctionTableManagement/AddLeafDotOp.sci | 325 ++++++++++++++++++ .../FunctionTableManagement/AddLeafElementary.sci | 84 +++++ .../FunctionTableManagement/AddLeafFFT.sci | 254 ++++++++++++++ .../FunctionTableManagement/AddLeafIFFT.sci | 88 +++++ .../FunctionTableManagement/AddLeafSqrt.sci | 84 +++++ src/Scilab2C/FunctionTableManagement/Example.sce | 152 +++++++++ src/Scilab2C/FunctionTableManagement/Readme.txt | 11 + .../FunctionTableManagement/SearchFunctionName.sci | 17 + src/Scilab2C/FunctionTableManagement/main.sci | 253 ++++++++++++++ 13 files changed, 2030 insertions(+) create mode 100644 src/Scilab2C/FunctionTableManagement/AddBranch.sci create mode 100644 src/Scilab2C/FunctionTableManagement/AddLeafAtan.sci create mode 100644 src/Scilab2C/FunctionTableManagement/AddLeafConvol.sci create mode 100644 src/Scilab2C/FunctionTableManagement/AddLeafDet.sci create mode 100644 src/Scilab2C/FunctionTableManagement/AddLeafDotOp.sci create mode 100644 src/Scilab2C/FunctionTableManagement/AddLeafElementary.sci create mode 100644 src/Scilab2C/FunctionTableManagement/AddLeafFFT.sci create mode 100644 src/Scilab2C/FunctionTableManagement/AddLeafIFFT.sci create mode 100644 src/Scilab2C/FunctionTableManagement/AddLeafSqrt.sci create mode 100644 src/Scilab2C/FunctionTableManagement/Example.sce create mode 100644 src/Scilab2C/FunctionTableManagement/Readme.txt create mode 100644 src/Scilab2C/FunctionTableManagement/SearchFunctionName.sci create mode 100644 src/Scilab2C/FunctionTableManagement/main.sci diff --git a/src/Scilab2C/FunctionTableManagement/AddBranch.sci b/src/Scilab2C/FunctionTableManagement/AddBranch.sci new file mode 100644 index 00000000..e5f2da7b --- /dev/null +++ b/src/Scilab2C/FunctionTableManagement/AddBranch.sci @@ -0,0 +1,173 @@ +function TreeBase = AddBranch(TreeBase, Branch, CINFO ) + +// To understand how this software works the steps are: +// +// 1. check if "fn" is stored in the USER2CLib; +// a. if "fn" there is, we have to check if "fn.S" there is +// i. if "fn.S" there is, we have to check if "fn.S.R" there is +// ii. if "fn.S" there isn't, we can store the Branch +// ... +// and in the same way for the other case. +// +// b. if "fn" there isn't, we can store all the Branch + + getf("SearchFunctionName.sci"); + +// +// I have to search the point where to insert the (sub) branch +// + +// +// suppose I have to insert the function structure fn.S.R.D.CINFO +// the first operation is to cut the function structure in sub-structure +// + ind = strindex( Branch, '.' ); +// +// SubBranch is an array which element, for the example are: +// SubBranch(1) = fn. +// SubBranch(2) = S. +// SubBranch(3) = R. +// SubBranch(4) = D. +// SubBranch(5) = CINFO +// +// PAY ATTENTION!!! you have S. and not S +// + SubBranch = strsplit( Branch, ind ); + +// +// I have to know the number of the element (I can have fn.S.R.D.S.R.D.CINFO) +// + [NumSub, Temp] = size( SubBranch ); + + clear Temp; + +// +// I extract the first element of the SubStranch array. I know this element is the +// name of the function (in the example is fn) +// + TempStructure = part(SubBranch(1), [1 : length(SubBranch(1))-1]); + +// +// I search the function +// + [TempProt, FlagFind] = SearchFunctionName( TempStructure, TreeBase(1)(1) ); + + index1 = 2; + + if FlagFind then +// +// if I found the function name I have to explorer the structure until I find the sub branch to add to the TREE +// + GoOut = %F; + + while ( (GoOut == %F) & (index1 <= (NumSub-1) ) ); +// +// index1 point to the position in the sub structure that I have to check if is present in the TREE +// (if I have fn.S.C.... in my tree, I have to point to fn.S because I'll add a new branch for the R leaf) +// I use Temp because I have to remember the previous position +// + Temp = TempStructure + "." + part(SubBranch(index1), [1 : length(SubBranch(index1))-1]); + [TempProt, FlagFind] = SearchFunctionName( Temp, TreeBase(1)(1) ); + + if FlagFind then +// +// so, If Temp is present in the tree I upload the new position +// + index1 = index1 + 1; + TempStructure = Temp; + else +// +// else, I have found the position where to add the sub branch + GoOut = %T; + end + + end + + else +// +// If I don't found the function name I have to add it in the TREE +// + TreeBase(1)(1,$+1) = TempStructure; + TreeBase($+1) = "ERROR"; + + end + +// +// index1 is the position of the first sub branch that I have add in the TREE +// + for index = index1 : NumSub-1, +// +// I extract the Leaf in the index position +// + TempLeaf = part( SubBranch(index), [1 : length( SubBranch(index) ) - 1] ); +// +// I have to verify if I point to a tree or to a leaf +// + dimension = eval("size(TreeBase." + TempStructure + ")"); + + if dimension(1) == 1 then +// +// If I point to a leaf, I construct a temporany tree before to append the leaf +// + + TempTreeBase = tlist( ["TempTreeBase", TempLeaf], "ERROR" ); + TempCommand = "TreeBase." + TempStructure + " = TempTreeBase"; + execstr( TempCommand ); + + else +// +// else (is the case that I have in my structure fn.S.R.D.S.R.D.CINFO and I want to memorize fn.S.R.D.CINFO) +// I add another branch +// + + TempCommand = "TreeBase." + TempStructure + "(1)(1,$+1) = TempLeaf"; + execstr( TempCommand ); + TempCommand = "TreeBase." + TempStructure + "($+1) = ''ERROR''"; + execstr( TempCommand ); + + end + + TempStructure = TempStructure + "." + TempLeaf; + + end + + TempLeaf = part( SubBranch(NumSub), 1 : length( SubBranch(NumSub) ) ); + + if eval("TreeBase." + TempStructure + "(1)") == "ERROR" then +// +// When I close the loop for I have to append the leaf CINFO, +// but it is necessary to verify if we are at the end of the tree +// + + TempTree = tlist( ["TempTree", "CINFO"], CINFO ); + command = "TreeBase." + TempStructure + " = TempTree"; + execstr( command ); + + else +// se non trovo ERROR non è detto che possa trovare CINFO, quindi devo perfezzionare la ricera +// if it isn't the end of the tree it is necessary to verify if I have CINFO +// + Temp = TempStructure + ".CINFO"; + [TempProt, FlagFind] = SearchFunctionName( Temp, TreeBase(1)(1) ); + + if FlagFind +// +// if there is CINFO, I add this information +// + TempCommand = "TreeBase." + TempStructure + ".CINFO($+1) = CINFO"; + execstr( TempCommand ); + + else +// +// else I append to the last CINFO the new one +// + TempCommand = "TreeBase." + TempStructure + "(1)(1,$+1) = ''CINFO''"; + execstr( TempCommand ); + TempCommand = "TreeBase." + TempStructure + "($+1) = CINFO"; + execstr( TempCommand ); + + end + end + + +endfunction diff --git a/src/Scilab2C/FunctionTableManagement/AddLeafAtan.sci b/src/Scilab2C/FunctionTableManagement/AddLeafAtan.sci new file mode 100644 index 00000000..f8df9e33 --- /dev/null +++ b/src/Scilab2C/FunctionTableManagement/AddLeafAtan.sci @@ -0,0 +1,131 @@ +function [FuncStruct, CINFO, NumFunc] = AddLeafAtan(FunctionName) +// +// this part is for one input +// + + NumFunc = 0; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.F.CINFO"; + CINFO(NumFunc).CPROT = "y=SRF" + FunctionName + "SRF(x)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.D.CINFO"; + CINFO(NumFunc).CPROT = "y=SRD" + FunctionName + "SRD(x)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.C.F.CINFO"; + CINFO(NumFunc).CPROT = "y=SCF" + FunctionName + "SCF(x)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.C.D.CINFO"; + CINFO(NumFunc).CPROT = "y=SCD" + FunctionName + "SCD(x)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.F.CINFO"; + CINFO(NumFunc).CPROT = "MRF" + FunctionName + "MRF(*X, strideX, *Y, strideY, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.D.CINFO"; + CINFO(NumFunc).CPROT = "MRD" + FunctionName + "MRD(*X, strideX, *Y, strideY, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.F.CINFO"; + CINFO(NumFunc).CPROT = "MCF" + FunctionName + "MCF(*X, strideX, *Y, strideY, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.D.CINFO"; + CINFO(NumFunc).CPROT = "MCD" + FunctionName + "MCD(*X, strideX, *Y, strideY, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + // +// this part is for two inputs +// + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.F.S.R.F.CINFO"; + CINFO(NumFunc).CPROT = "SRFSRF" + FunctionName + "SRF(x, y, z, Nelements)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.D.S.R.D.CINFO"; + CINFO(NumFunc).CPROT = "SRDSRD" + FunctionName + "SRD(x, y, z, Nelements)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.F.M.R.F.CINFO"; + CINFO(NumFunc).CPROT = "MRFMRF" + FunctionName + "MRF(*X, strideX, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.D.M.R.D.CINFO"; + CINFO(NumFunc).CPROT = "MRDMRD" + FunctionName + "MRD(*X, strideX, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + +endfunction diff --git a/src/Scilab2C/FunctionTableManagement/AddLeafConvol.sci b/src/Scilab2C/FunctionTableManagement/AddLeafConvol.sci new file mode 100644 index 00000000..2cd6302f --- /dev/null +++ b/src/Scilab2C/FunctionTableManagement/AddLeafConvol.sci @@ -0,0 +1,373 @@ +function [FuncStruct, CINFO, NumFunc] = AddLeafConvol(FunctionName) + +// +//this function can have one or two outputs +// + NumFunc = 0; + +// +// 1 Output +// + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.F.S.R.F.CINFO"; + CINFO(NumFunc).CPROT = "SRFSRF" + FunctionName + "SRF(x, y, z, Nelements)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; +// +// 2 Outputs +// + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.F.S.R.F.CINFO(2)"; + CINFO(NumFunc).CPROT = "SRFSRF" + FunctionName + "SRF(x, y, z, Nelements)"; + CINFO(NumFunc).SIZE = ["S", "S"]; + CINFO(NumFunc).TYPE = ["R", "R"]; + CINFO(NumFunc).PREC = ["F", "F"]; + CINFO(NumFunc).DIM = ["O1Sz = 1", "02Sz = 0"]; + CINFO(NumFunc).NOut = 2; + +// +// 1 Output +// + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.F.S.C.F.CINFO"; + CINFO(NumFunc).CPROT = "SRFSCF" + FunctionName + "SCF(x, y, z, Nelements)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; +// +// 2 Output +// + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.F.S.C.F.CINFO"; + CINFO(NumFunc).CPROT = "SRFSCF" + FunctionName + "SCF(x, y, z, Nelements)"; + CINFO(NumFunc).SIZE = ["S", "S"]; + CINFO(NumFunc).TYPE = ["C", "C"]; + CINFO(NumFunc).PREC = ["F", "F"]; + CINFO(NumFunc).DIM = ["O1Sz = I1Sz", "O2Sz = 0"]; + CINFO(NumFunc).NOut = 2; + +// +// 1 Output +// + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.F.M.R.F.CINFO"; + CINFO(NumFunc).CPROT = "SRFMRF" + FunctionName + "MRF(x, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I2Sz"; + CINFO(NumFunc).NOut = 1; +// +// 2 Output +// + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.F.M.R.F.CINFO"; + CINFO(NumFunc).CPROT = "SRFMRF" + FunctionName + "MRF(x, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = ["M", "M"]; + CINFO(NumFunc).TYPE = ["R", "R"]; + CINFO(NumFunc).PREC = ["F", "F"]; + CINFO(NumFunc).DIM = ["O1Sz = I2Sz", "O2Sz = "]; + CINFO(NumFunc).NOut = 2; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.F.M.C.F.CINFO"; + CINFO(NumFunc).CPROT = "SRFMCF" + FunctionName + "MCF(x, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I2Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.D.S.R.D.CINFO"; + CINFO(NumFunc).CPROT = "SRDSRD" + FunctionName + "SRD(x, y, z, Nelements)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.D.S.C.D.CINFO"; + CINFO(NumFunc).CPROT = "SRDSCD" + FunctionName + "SCD(x, y, z, Nelements)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.D.M.R.D.CINFO"; + CINFO(NumFunc).CPROT = "SRDMRD" + FunctionName + "MRD(x, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I2Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.D.M.C.D.CINFO"; + CINFO(NumFunc).CPROT = "SRDMCD" + FunctionName + "MCD(x, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I2Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.C.F.S.R.F.CINFO"; + CINFO(NumFunc).CPROT = "SCFSRF" + FunctionName + "SCF(x, y, z, Nelements)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.C.F.S.C.F.CINFO"; + CINFO(NumFunc).CPROT = "SCFSCF" + FunctionName + "SCF(x, y, z, Nelements)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.C.F.M.R.F.CINFO"; + CINFO(NumFunc).CPROT = "SCFMRF" + FunctionName + "MCF(x, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I2Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.C.F.M.C.F.CINFO"; + CINFO(NumFunc).CPROT = "SCFMCF" + FunctionName + "MCF(x, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I2Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.C.D.S.R.D.CINFO"; + CINFO(NumFunc).CPROT = "SCDSRD" + FunctionName + "SCD(x, y, z, Nelements)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.C.D.S.C.D.CINFO"; + CINFO(NumFunc).CPROT = "SCDSCD" + FunctionName + "SCD(x, y, z, Nelements)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.C.D.M.R.D.CINFO"; + CINFO(NumFunc).CPROT = "SCDMRD" + FunctionName + "MCD(x, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I2Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.C.D.M.C.D.CINFO"; + CINFO(NumFunc).CPROT = "SCDMCD" + FunctionName + "MCD(x, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I2Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.F.S.R.F.CINFO"; + CINFO(NumFunc).CPROT = "MRFSRF" + FunctionName + "MRF(*X, strideX, y, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.F.S.C.F.CINFO"; + CINFO(NumFunc).CPROT = "MRFSCF" + FunctionName + "MCF(*X, strideX, y, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.F.M.R.F.CINFO"; + CINFO(NumFunc).CPROT = "MRFMRF" + FunctionName + "MRF(*X, strideX, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = [I1Sz(1), I2Sz(2)]"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.F.M.C.F.CINFO"; + CINFO(NumFunc).CPROT = "MRFMCF" + FunctionName + "MCF(*X, strideX, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = [I1Sz(1), I2Sz(2)]"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.D.S.R.D.CINFO"; + CINFO(NumFunc).CPROT = "MRDSRD" + FunctionName + "MRD(*X, strideX, y, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.D.S.C.D.CINFO"; + CINFO(NumFunc).CPROT = "MRDSCD" + FunctionName + "MCD(*X, strideX, y, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.D.M.R.D.CINFO"; + CINFO(NumFunc).CPROT = "MRDMRD" + FunctionName + "MRD(*X, strideX, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = [I1Sz(1), I2Sz(2)]"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.D.M.C.D.CINFO"; + CINFO(NumFunc).CPROT = "MRDMCD" + FunctionName + "MCD(*X, strideX, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = [I1Sz(1), I2Sz(2)]"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.F.S.R.F.CINFO"; + CINFO(NumFunc).CPROT = "MCFSRF" + FunctionName + "MCF(*X, strideX, y, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.F.S.C.F.CINFO"; + CINFO(NumFunc).CPROT = "MCFSCF" + FunctionName + "MCF(*X, strideX, y, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.F.M.R.F.CINFO"; + CINFO(NumFunc).CPROT = "MCFMRF" + FunctionName + "MCF(*X, strideX, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = [I1Sz(1), I2Sz(2)]"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.F.M.C.F.CINFO"; + CINFO(NumFunc).CPROT = "MCFMCF" + FunctionName + "MCF(*X, strideX, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = [I1Sz(1), I2Sz(2)]"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.D.S.R.D.CINFO"; + CINFO(NumFunc).CPROT = "MCDSRD" + FunctionName + "MCD(*X, strideX, y, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.D.S.C.D.CINFO"; + CINFO(NumFunc).CPROT = "MCDSCD" + FunctionName + "MCD(*X, strideX, y, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.D.M.R.D.CINFO"; + CINFO(NumFunc).CPROT = "MCDMRD" + FunctionName + "MCD(*X, strideX, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = [I1Sz(1), I2Sz(2)]"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.D.M.C.D.CINFO"; + CINFO(NumFunc).CPROT = "MCDMCD" + FunctionName + "MCD(*X, strideX, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = [I1Sz(1), I2Sz(2)]"; + CINFO(NumFunc).NOut = 1; + +endfunction diff --git a/src/Scilab2C/FunctionTableManagement/AddLeafDet.sci b/src/Scilab2C/FunctionTableManagement/AddLeafDet.sci new file mode 100644 index 00000000..efbeb3d9 --- /dev/null +++ b/src/Scilab2C/FunctionTableManagement/AddLeafDet.sci @@ -0,0 +1,85 @@ +function [FuncStruct, CINFO, NumFunc] = AddLeafDet(FunctionName) + + NumFunc = 0; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.F.CINFO"; + CINFO(NumFunc).CPROT = "y=SRF" + FunctionName + "SRF(x)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz=1"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.D.CINFO"; + CINFO(NumFunc).CPROT = "y=SRD" + FunctionName + "SRD(x)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz=1"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.C.F.CINFO"; + CINFO(NumFunc).CPROT = "y=SCF" + FunctionName + "SCF(x)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz=1"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.C.D.CINFO"; + CINFO(NumFunc).CPROT = "y=SCD" + FunctionName + "SCD(x)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz=1"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.F.CINFO"; + CINFO(NumFunc).CPROT = "y=MRF" + FunctionName + "SRF(*X, strideX, Nelements)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz=1"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.D.CINFO"; + CINFO(NumFunc).CPROT = "y=MRD" + FunctionName + "SRD(*X, strideX, Nelements)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz=1"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.F.CINFO"; + CINFO(NumFunc).CPROT = "y=MCF" + FunctionName + "SCF(*X, strideX, Nelements)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz=1"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.D.CINFO"; + CINFO(NumFunc).CPROT = "y=MCD" + FunctionName + "SCD(*X, strideX, Nelements)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz=1"; + CINFO(NumFunc).NOut = 1; + +endfunction diff --git a/src/Scilab2C/FunctionTableManagement/AddLeafDotOp.sci b/src/Scilab2C/FunctionTableManagement/AddLeafDotOp.sci new file mode 100644 index 00000000..c32ba615 --- /dev/null +++ b/src/Scilab2C/FunctionTableManagement/AddLeafDotOp.sci @@ -0,0 +1,325 @@ +function [FuncStruct, CINFO, NumFunc] = AddLeafDotOp(FunctionName) + + NumFunc = 0; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.F.S.R.F.CINFO"; + CINFO(NumFunc).CPROT = "SRFSRF" + FunctionName + "SRF(x, y, z, Nelements)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.F.S.C.F.CINFO"; + CINFO(NumFunc).CPROT = "SRFSCF" + FunctionName + "SCF(x, y, z, Nelements)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.F.M.R.F.CINFO"; + CINFO(NumFunc).CPROT = "SRFMRF" + FunctionName + "MRF(x, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I2Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.F.M.C.F.CINFO"; + CINFO(NumFunc).CPROT = "SRFMCF" + FunctionName + "MCF(x, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I2Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.D.S.R.D.CINFO"; + CINFO(NumFunc).CPROT = "SRDSRD" + FunctionName + "SRD(x, y, z, Nelements)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.D.S.C.D.CINFO"; + CINFO(NumFunc).CPROT = "SRDSCD" + FunctionName + "SCD(x, y, z, Nelements)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.D.M.R.D.CINFO"; + CINFO(NumFunc).CPROT = "SRDMRD" + FunctionName + "MRD(x, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I2Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.D.M.C.D.CINFO"; + CINFO(NumFunc).CPROT = "SRDMCD" + FunctionName + "MCD(x, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I2Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.C.F.S.R.F.CINFO"; + CINFO(NumFunc).CPROT = "SCFSRF" + FunctionName + "SCF(x, y, z, Nelements)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.C.F.S.C.F.CINFO"; + CINFO(NumFunc).CPROT = "SCFSCF" + FunctionName + "SCF(x, y, z, Nelements)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.C.F.M.R.F.CINFO"; + CINFO(NumFunc).CPROT = "SCFMRF" + FunctionName + "MCF(x, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I2Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.C.F.M.C.F.CINFO"; + CINFO(NumFunc).CPROT = "SCFMCF" + FunctionName + "MCF(x, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I2Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.C.D.S.R.D.CINFO"; + CINFO(NumFunc).CPROT = "SCDSRD" + FunctionName + "SCD(x, y, z, Nelements)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.C.D.S.C.D.CINFO"; + CINFO(NumFunc).CPROT = "SCDSCD" + FunctionName + "SCD(x, y, z, Nelements)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.C.D.M.R.D.CINFO"; + CINFO(NumFunc).CPROT = "SCDMRD" + FunctionName + "MCD(x, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I2Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.C.D.M.C.D.CINFO"; + CINFO(NumFunc).CPROT = "SCDMCD" + FunctionName + "MCD(x, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I2Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.F.S.R.F.CINFO"; + CINFO(NumFunc).CPROT = "MRFSRF" + FunctionName + "MRF(*X, strideX, y, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.F.S.C.F.CINFO"; + CINFO(NumFunc).CPROT = "MRFSCF" + FunctionName + "MCF(*X, strideX, y, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.F.M.R.F.CINFO"; + CINFO(NumFunc).CPROT = "MRFMRF" + FunctionName + "MRF(*X, strideX, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = [I1Sz(1), I2Sz(2)]"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.F.M.C.F.CINFO"; + CINFO(NumFunc).CPROT = "MRFMCF" + FunctionName + "MCF(*X, strideX, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = [I1Sz(1), I2Sz(2)]"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.D.S.R.D.CINFO"; + CINFO(NumFunc).CPROT = "MRDSRD" + FunctionName + "MRD(*X, strideX, y, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.D.S.C.D.CINFO"; + CINFO(NumFunc).CPROT = "MRDSCD" + FunctionName + "MCD(*X, strideX, y, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.D.M.R.D.CINFO"; + CINFO(NumFunc).CPROT = "MRDMRD" + FunctionName + "MRD(*X, strideX, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = [I1Sz(1), I2Sz(2)]"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.D.M.C.D.CINFO"; + CINFO(NumFunc).CPROT = "MRDMCD" + FunctionName + "MCD(*X, strideX, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = [I1Sz(1), I2Sz(2)]"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.F.S.R.F.CINFO"; + CINFO(NumFunc).CPROT = "MCFSRF" + FunctionName + "MCF(*X, strideX, y, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.F.S.C.F.CINFO"; + CINFO(NumFunc).CPROT = "MCFSCF" + FunctionName + "MCF(*X, strideX, y, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.F.M.R.F.CINFO"; + CINFO(NumFunc).CPROT = "MCFMRF" + FunctionName + "MCF(*X, strideX, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = [I1Sz(1), I2Sz(2)]"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.F.M.C.F.CINFO"; + CINFO(NumFunc).CPROT = "MCFMCF" + FunctionName + "MCF(*X, strideX, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = [I1Sz(1), I2Sz(2)]"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.D.S.R.D.CINFO"; + CINFO(NumFunc).CPROT = "MCDSRD" + FunctionName + "MCD(*X, strideX, y, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.D.S.C.D.CINFO"; + CINFO(NumFunc).CPROT = "MCDSCD" + FunctionName + "MCD(*X, strideX, y, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.D.M.R.D.CINFO"; + CINFO(NumFunc).CPROT = "MCDMRD" + FunctionName + "MCD(*X, strideX, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = [I1Sz(1), I2Sz(2)]"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.D.M.C.D.CINFO"; + CINFO(NumFunc).CPROT = "MCDMCD" + FunctionName + "MCD(*X, strideX, *Y, strideY, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = [I1Sz(1), I2Sz(2)]"; + CINFO(NumFunc).NOut = 1; + +endfunction diff --git a/src/Scilab2C/FunctionTableManagement/AddLeafElementary.sci b/src/Scilab2C/FunctionTableManagement/AddLeafElementary.sci new file mode 100644 index 00000000..6e6a898c --- /dev/null +++ b/src/Scilab2C/FunctionTableManagement/AddLeafElementary.sci @@ -0,0 +1,84 @@ +function [FuncStruct, CINFO, NumFunc] = AddLeafElementary(FunctionName) + + NumFunc = 0; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.F.CINFO"; + CINFO(NumFunc).CPROT = "y=SRF" + FunctionName + "SRF(x)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.D.CINFO"; + CINFO(NumFunc).CPROT = "y=SRD" + FunctionName + "SRD(x)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.C.F.CINFO"; + CINFO(NumFunc).CPROT = "y=SCF" + FunctionName + "SCF(x)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.C.D.CINFO"; + CINFO(NumFunc).CPROT = "y=SCD" + FunctionName + "SCD(x)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.F.CINFO"; + CINFO(NumFunc).CPROT = "MRF" + FunctionName + "MRF(*X, strideX, *Y, strideY, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.D.CINFO"; + CINFO(NumFunc).CPROT = "MRD" + FunctionName + "MRD(*X, strideX, *Y, strideY, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.F.CINFO"; + CINFO(NumFunc).CPROT = "MCF" + FunctionName + "MCF(*X, strideX, *Y, strideY, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.D.CINFO"; + CINFO(NumFunc).CPROT = "MCD" + FunctionName + "MCD(*X, strideX, *Y, strideY, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; +endfunction diff --git a/src/Scilab2C/FunctionTableManagement/AddLeafFFT.sci b/src/Scilab2C/FunctionTableManagement/AddLeafFFT.sci new file mode 100644 index 00000000..1928f7c7 --- /dev/null +++ b/src/Scilab2C/FunctionTableManagement/AddLeafFFT.sci @@ -0,0 +1,254 @@ +function [FuncStruct, CINFO, NumFunc] = AddLeafFFT(FunctionName) + + NumFunc = 0; + +// +// 1 inputs +// + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.F.CINFO"; + CINFO(NumFunc).CPROT = "y=SRF" + FunctionName + "SRF(x)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = 1"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.D.CINFO"; + CINFO(NumFunc).CPROT = "y=SRD" + FunctionName + "SRD(x)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = 1"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.C.F.CINFO"; + CINFO(NumFunc).CPROT = "y=SCF" + FunctionName + "SCF(x)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz=1"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.C.D.CINFO"; + CINFO(NumFunc).CPROT = "y=SCD" + FunctionName + "SCD(x)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = 1"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.F.CINFO"; + CINFO(NumFunc).CPROT = "y=MRF" + FunctionName + "MCF(*X, strideX, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.D.CINFO"; + CINFO(NumFunc).CPROT = "y=MRD" + FunctionName + "MCD(*X, strideX, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.F.CINFO"; + CINFO(NumFunc).CPROT = "y=MCF" + FunctionName + "MCF(*X, strideX, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.D.CINFO"; + CINFO(NumFunc).CPROT = "y=MCD" + FunctionName + "MCD(*X, strideX, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + +// +// 2 inputs +// + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.F.S.R.F.CINFO"; + CINFO(NumFunc).CPROT = "SRFSRF" + FunctionName + "SRF(x, y, z, Nelements)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.D.S.R.D.CINFO"; + CINFO(NumFunc).CPROT = "SRDSRD" + FunctionName + "SRD(x, y, z, Nelements)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.C.F.S.R.F.CINFO"; + CINFO(NumFunc).CPROT = "SCFSRF" + FunctionName + "SCF(x, y, z, Nelements)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.C.D.S.R.D.CINFO"; + CINFO(NumFunc).CPROT = "SCDSRD" + FunctionName + "SCD(x, y, z, Nelements)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.F.S.R.F.CINFO"; + CINFO(NumFunc).CPROT = "MRFSRF" + FunctionName + "MCF(*X, strideX, y, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.D.S.R.D.CINFO"; + CINFO(NumFunc).CPROT = "MRDSRD" + FunctionName + "MCD(*X, strideX, y, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.F.S.R.F.CINFO"; + CINFO(NumFunc).CPROT = "MCFSRF" + FunctionName + "MCF(*X, strideX, y, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.D.S.R.D.CINFO"; + CINFO(NumFunc).CPROT = "MCDSRD" + FunctionName + "MCD(*X, strideX, y, *Z, strideZ, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; +// +//4 inputs +// + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.F.S.R.F.S.R.F.S.R.F.CINFO"; + CINFO(NumFunc).CPROT = "y=SRFSRFSRFSRF" + FunctionName + "SRF(x)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = 1"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.D.S.R.D.S.R.D.S.R.D.CINFO"; + CINFO(NumFunc).CPROT = "y=SRDSRDSRDSRD" + FunctionName + "SRD(x)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = 1"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.C.F.S.R.F.S.R.F.S.R.F.CINFO"; + CINFO(NumFunc).CPROT = "y=SCFSRFSRFSRF" + FunctionName + "SCF(x)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz=1"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.C.D.S.R.D.S.R.D.S.R.D.CINFO"; + CINFO(NumFunc).CPROT = "y=SCDSRDSRDSRD" + FunctionName + "SCD(x)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = 1"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.F.S.R.F.S.R.F.S.R.F.CINFO"; + CINFO(NumFunc).CPROT = "y=MRFSRFSRFSRF" + FunctionName + "MCF(*X, strideX, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.D.S.R.D.S.R.D.S.R.D.CINFO"; + CINFO(NumFunc).CPROT = "y=MRDSRDSRDSRD" + FunctionName + "MCD(*X, strideX, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.F.S.R.F.S.R.F.S.R.F.CINFO"; + CINFO(NumFunc).CPROT = "y=MCFSRFSRFSRF" + FunctionName + "MCF(*X, strideX, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.D.S.R.D.S.R.D.S.R.D.CINFO"; + CINFO(NumFunc).CPROT = "y=MCDSRDSRDSRD" + FunctionName + "MCD(*X, strideX, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + +endfunction diff --git a/src/Scilab2C/FunctionTableManagement/AddLeafIFFT.sci b/src/Scilab2C/FunctionTableManagement/AddLeafIFFT.sci new file mode 100644 index 00000000..a3326b17 --- /dev/null +++ b/src/Scilab2C/FunctionTableManagement/AddLeafIFFT.sci @@ -0,0 +1,88 @@ +function [FuncStruct, CINFO, NumFunc] = AddLeafIFFT(FunctionName) + + NumFunc = 0; + +// +// 1 inputs +// + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.F.CINFO"; + CINFO(NumFunc).CPROT = "y=SRF" + FunctionName + "SRF(x)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = 1"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.D.CINFO"; + CINFO(NumFunc).CPROT = "y=SRD" + FunctionName + "SRD(x)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = 1"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.C.F.CINFO"; + CINFO(NumFunc).CPROT = "y=SCF" + FunctionName + "SCF(x)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz=1"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.C.D.CINFO"; + CINFO(NumFunc).CPROT = "y=SCD" + FunctionName + "SCD(x)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = 1"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.F.CINFO"; + CINFO(NumFunc).CPROT = "y=MRF" + FunctionName + "MCF(*X, strideX, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.D.CINFO"; + CINFO(NumFunc).CPROT = "y=MRD" + FunctionName + "MCD(*X, strideX, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.F.CINFO"; + CINFO(NumFunc).CPROT = "y=MCF" + FunctionName + "MCF(*X, strideX, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.D.CINFO"; + CINFO(NumFunc).CPROT = "y=MCD" + FunctionName + "MCD(*X, strideX, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + +endfunction diff --git a/src/Scilab2C/FunctionTableManagement/AddLeafSqrt.sci b/src/Scilab2C/FunctionTableManagement/AddLeafSqrt.sci new file mode 100644 index 00000000..c3047866 --- /dev/null +++ b/src/Scilab2C/FunctionTableManagement/AddLeafSqrt.sci @@ -0,0 +1,84 @@ +function [FuncStruct, CINFO, NumFunc] = AddLeafSqrt(FunctionName) + + NumFunc = 0; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.F.CINFO"; + CINFO(NumFunc).CPROT = "y=SRF" + FunctionName + "SRF(x)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.F.CINFO"; + CINFO(NumFunc).CPROT = "y=SRD" + FunctionName + "SRD(x)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.R.F.CINFO"; + CINFO(NumFunc).CPROT = "y=SCF" + FunctionName + "SCF(x)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".S.C.D.CINFO"; + CINFO(NumFunc).CPROT = "y=SCD" + FunctionName + "SCD(x)"; + CINFO(NumFunc).SIZE = "S"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.F.CINFO"; + CINFO(NumFunc).CPROT = "MRF" + FunctionName + "MRF(*X, strideX, *Y, strideY, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.R.D.CINFO"; + CINFO(NumFunc).CPROT = "MRD" + FunctionName + "MRD(*X, strideX, *Y, strideY, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "R"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.F.CINFO"; + CINFO(NumFunc).CPROT = "MCF" + FunctionName + "MCF(*X, strideX, *Y, strideY, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "F"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; + + NumFunc = NumFunc + 1; + + FuncStruct(NumFunc) = FunctionName + ".M.C.D.CINFO"; + CINFO(NumFunc).CPROT = "MCD" + FunctionName + "MCD(*X, strideX, *Y, strideY, Nelements)"; + CINFO(NumFunc).SIZE = "M"; + CINFO(NumFunc).TYPE = "C"; + CINFO(NumFunc).PREC = "D"; + CINFO(NumFunc).DIM = "O1Sz = I1Sz"; + CINFO(NumFunc).NOut = 1; +endfunction diff --git a/src/Scilab2C/FunctionTableManagement/Example.sce b/src/Scilab2C/FunctionTableManagement/Example.sce new file mode 100644 index 00000000..dde9e9c2 --- /dev/null +++ b/src/Scilab2C/FunctionTableManagement/Example.sce @@ -0,0 +1,152 @@ +// in the following you can find some examples that help you to use the biuild in functions. + +// the first operation is to find the path where the files are stored +// cd + + clear; + clc; + + getf("main.sci"); + [SCI2CLib, USER2CLib] = main(); + +// +// I add the same function with two inputs +// +// Branch=FunctionStructure; +// TreeBase=USER2CLib; +// + getf("SearchFunctionName.sci"); + getf("AddBranch.sci"); + + FunctionStructure = "fn.S.R.D.S.R.D.CINFO"; + + clear CINFO; + + CINFO.CPROT = "y=SRDSRDfnSRD"; + CINFO.SIZE = "S"; + CINFO.TYPE = "R"; + CINFO.PREC = "D"; + + [Cprototype, FlagFind] = SearchFunctionName(FunctionStructure, "SCI2CLib"); + + if FlagFind==%F then + [Cprototype, FlagFind] = SearchFunctionName(FunctionStructure, "USER2CLib"); + + if FlagFind==%F then + USER2CLib = AddBranch( USER2CLib, FunctionStructure, CINFO ); + end + + end + + eval("USER2CLib." + FunctionStructure) + +// +// now I change one output type +// +// Branch=FunctionStructure; +// TREE="USER2CLib"; +// + getf("SearchFunctionName.sci"); + getf("AddBranch.sci"); + + FunctionStructure = "fn.S.R.D.CINFO"; + + clear CINFO; + + CINFO.CPROT = "y=SRDfnSRD"; + CINFO.SIZE = "S"; + CINFO.TYPE = "R"; + CINFO.PREC = "D"; + + + [Cprototype, FlagFind] = SearchFunctionName(FunctionStructure, "SCI2CLib"); + + if FlagFind==%F then + [Cprototype, FlagFind] = SearchFunctionName(FunctionStructure, "USER2CLib"); + + if FlagFind==%F then + USER2CLib = AddBranch( USER2CLib, FunctionStructure, CINFO ); + end + + end + + eval("USER2CLib." + FunctionStructure) + +// +// I add the same function with two outputs: +// 1. the first output is S.R.D +// 2. the second output is M.R.D. +// +// Branch=FunctionStructure; +// TREE="USER2CLib"; +// + FunctionStructure = "fn.S.R.D.CINFO(2)"; + + clear CINFO; + + S(1) = "S"; + R(1) = "R"; + D(1) = "D"; + + S(2) = "M"; + R(2) = "R"; + D(2) = "D"; + + CINFO.CPROT = "y=SRDfnSRDSRD"; + CINFO.SIZE = S; + CINFO.TYPE = R; + CINFO.PREC = D; + + + [Cprototype, FlagFind] = SearchFunctionName(FunctionStructure, "SCI2CLib"); + + if FlagFind==%F then + [Cprototype, FlagFind] = SearchFunctionName(FunctionStructure, "USER2CLib"); + + if FlagFind==%F then + USER2CLib = AddBranch( USER2CLib, FunctionStructure, CINFO ); + end + + end + + eval("USER2CLib." + FunctionStructure) + +// +// fn.S.R.F.CINFO +// +// where +// +// CINFO. +// CPRO = "y=SRFfnSRF(x)" +// SIZE = "S" +// TYPE = "R" +// PREC = "F" + +// Branch=FunctionStructure; +// TREE="USER2CLib"; + + getf("SearchFunctionName.sci"); + getf("AddBranch.sci"); + + FunctionStructure = "fn.S.R.F.CINFO"; + + CINFO(1).CPROT = "y=SRFfnSRF"; + CINFO(1).SIZE = "S"; + CINFO(1).TYPE = "R"; + CINFO(1).PREC = "F"; + + [Cprototype, FlagFind] = SearchFunctionName(FunctionStructure, "SCI2CLib"); + + if FlagFind==%F then + [Cprototype, FlagFind] = SearchFunctionName(FunctionStructure, "USER2CLib"); + + if FlagFind==%F then + + USER2CLib = AddBranch(USER2CLib, FunctionStructure, CINFO ); + + end + + end + + eval("USER2CLib." + FunctionStructure) + diff --git a/src/Scilab2C/FunctionTableManagement/Readme.txt b/src/Scilab2C/FunctionTableManagement/Readme.txt new file mode 100644 index 00000000..882398e3 --- /dev/null +++ b/src/Scilab2C/FunctionTableManagement/Readme.txt @@ -0,0 +1,11 @@ +commento un po': +1. AddBranch.sci è la nuova procedura che "attacca" le funzioni all'albero SCI2CLib o USER2CLib; +2. AddLeafAtan.sci contiene tutte le combinazioni su cui poter utilizzare la funzione atan; +3. AddLeafDet.sci contiene tutte le combinazioni su cui poter utilizzare la funzione det; +4. AddLeafDotOp.sci contiene tutte le combinazioni su cui poter utilizzare le funioni "punto" e tra due operandi +5. AddLeafElementary.sci contiene tutte le combinazioni su cui poter utilizzare le funzioni "elementari" (sin cos...) +6. AddLeaf Sqrt contiene tutte le combinazioni su cui poter utilizzare la funzione sqrt; +7. main.sci crea le due liste SCI2CLib e USER2CLib e popola la prima con le varie funzioni. +8. SearchFunctionName.sci interroga l'albero (parametro di ingresso) per trovare una funzione +9. Example.sce è uno script che lancia il file main e simula la ricerca di una funzione utente e il relativo inserimento + \ No newline at end of file diff --git a/src/Scilab2C/FunctionTableManagement/SearchFunctionName.sci b/src/Scilab2C/FunctionTableManagement/SearchFunctionName.sci new file mode 100644 index 00000000..2c987fb5 --- /dev/null +++ b/src/Scilab2C/FunctionTableManagement/SearchFunctionName.sci @@ -0,0 +1,17 @@ +function [Cprototype, FlagFind] = SearchFunctionName(FunctionStructure, Tree) + + Temp = Tree + "." + FunctionStructure; + + if execstr(Temp,'error') == 0 then + + Cprototype = eval(Temp); + FlagFind = %T; + + else + + FlagFind = %F; + Cprototype = "ERROR"; + + end + +endfunction diff --git a/src/Scilab2C/FunctionTableManagement/main.sci b/src/Scilab2C/FunctionTableManagement/main.sci new file mode 100644 index 00000000..b28c1111 --- /dev/null +++ b/src/Scilab2C/FunctionTableManagement/main.sci @@ -0,0 +1,253 @@ +function [SCI2CLib, USER2CLib] = main() +// +// Dim is the expression that returns the size of the output(s) +// Example: +// if I want to calculate the size of the output sin than +// x is Scalar +// I1Sz = 1; +// +// Dim = "O1Sz = I1Sz" +// eval(Dim); +// +// NOut is the number of the output(s). +// Example: if I have 1 output then NOut = 1 +// if I have 2 outputs then NOut = 2 +// + clear; + clc; + + getf("AddBranch.sci"); + + SCI2CLib = tlist(["SCI2CLib"]); + + USER2CLib = tlist(["USER2CLib"]); + +// I create the library for the elementary function + + getf("AddLeafElementary.sci"); + + [FuncStruct, CINFO, NumFunc] = AddLeafElementary("sin"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + + [FuncStruct, CINFO, NumFunc] = AddLeafElementary("cos"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + + [FuncStruct, CINFO, NumFunc] = AddLeafElementary("tan"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + + [FuncStruct, CINFO, NumFunc] = AddLeafElementary("cotg"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + + [FuncStruct, CINFO, NumFunc] = AddLeafElementary("asin"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + + [FuncStruct, CINFO, NumFunc] = AddLeafElementary("acos"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + + [FuncStruct, CINFO, NumFunc] = AddLeafElementary("sinh"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + + [FuncStruct, CINFO, NumFunc] = AddLeafElementary("cosh"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + + [FuncStruct, CINFO, NumFunc] = AddLeafElementary("tanh"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + + [FuncStruct, CINFO, NumFunc] = AddLeafElementary("asinh"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + + [FuncStruct, CINFO, NumFunc] = AddLeafElementary("acosh"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + + [FuncStruct, CINFO, NumFunc] = AddLeafElementary("atanh"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + + [FuncStruct, CINFO, NumFunc] = AddLeafElementary("exp"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + + [FuncStruct, CINFO, NumFunc] = AddLeafElementary("log"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + + [FuncStruct, CINFO, NumFunc] = AddLeafElementary("log10"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + + [FuncStruct, CINFO, NumFunc] = AddLeafElementary("abs"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + + [FuncStruct, CINFO, NumFunc] = AddLeafElementary("inv"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + + [FuncStruct, CINFO, NumFunc] = AddLeafElementary("sqrtR"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + +// determinant function + + getf("AddLeafDet.sci"); + + [FuncStruct, CINFO, NumFunc] = AddLeafDet("det"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + +// sqrt function + + getf("AddLeafSqrt.sci"); + + [FuncStruct, CINFO, NumFunc] = AddLeafSqrt("sqrt"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + +// I add the function with 2 Input + +// dot function + + getf("AddLeafDotOp.sci"); + + [FuncStruct, CINFO, NumFunc] = AddLeafDotOp("DotAdd"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + + [FuncStruct, CINFO, NumFunc] = AddLeafDotOp("DotSub"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + + [FuncStruct, CINFO, NumFunc] = AddLeafDotOp("DotMul"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + + [FuncStruct, CINFO, NumFunc] = AddLeafDotOp("DotDiv"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + +// op function + + [FuncStruct, CINFO, NumFunc] = AddLeafDotOp("OpAdd"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + + [FuncStruct, CINFO, NumFunc] = AddLeafDotOp("OpSub"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + + [FuncStruct, CINFO, NumFunc] = AddLeafDotOp("OpMul"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + + [FuncStruct, CINFO, NumFunc] = AddLeafDotOp("OpDiv"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + +// atan function + + getf("AddLeafAtan.sci"); + + [FuncStruct, CINFO, NumFunc] = AddLeafAtan("atan"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + +// convol function + + getf("AddLeafConvol.sci"); + + [FuncStruct, CINFO, NumFunc] = AddLeafConvol("convol"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + +// fft function + + getf("AddLeafFFT.sci"); + + [FuncStruct, CINFO, NumFunc] = AddLeafFFT("fft"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + +// ifft function + + getf("AddLeafIFFT.sci"); + + [FuncStruct, CINFO, NumFunc] = AddLeafIFFT("ifft"); + + for ind = 1 : NumFunc, + SCI2CLib = AddBranch(SCI2CLib, FuncStruct(ind), CINFO(ind) ); + end + +endfunction -- cgit