From 06337f0dc8114c70fd0c7767083971a0d091750a Mon Sep 17 00:00:00 2001 From: Sandeep Gupta Date: Wed, 5 Jul 2017 12:41:25 +0530 Subject: LinearAlgebra and MatrixOperation Update --- macros/SymbolTable/ST_AnalyzeScope.bin | Bin 0 -> 16792 bytes macros/SymbolTable/ST_AnalyzeScope.sci | 1 + macros/SymbolTable/ST_Del.bin | Bin 0 -> 4552 bytes macros/SymbolTable/ST_FindPos.bin | Bin 0 -> 5104 bytes macros/SymbolTable/ST_Get.bin | Bin 0 -> 8108 bytes macros/SymbolTable/ST_GetInArgInfo.bin | Bin 0 -> 37384 bytes macros/SymbolTable/ST_GetInArgInfo.sci | 15 +-- macros/SymbolTable/ST_GetSymbolInfo.bin | Bin 0 -> 13320 bytes macros/SymbolTable/ST_InsForCntVars.bin | Bin 0 -> 25508 bytes macros/SymbolTable/ST_InsOutArg.bin | Bin 0 -> 33516 bytes macros/SymbolTable/ST_InsOutArg.sci | 2 + macros/SymbolTable/ST_InsOutArg_Dup.sci | 195 -------------------------------- macros/SymbolTable/ST_Load.bin | Bin 0 -> 4288 bytes macros/SymbolTable/ST_MatchSymbol.bin | Bin 0 -> 9112 bytes macros/SymbolTable/ST_Save.bin | Bin 0 -> 5440 bytes macros/SymbolTable/ST_Set.bin | Bin 0 -> 7048 bytes macros/SymbolTable/lib | Bin 728 -> 720 bytes macros/SymbolTable/names | 1 - 18 files changed, 5 insertions(+), 209 deletions(-) create mode 100644 macros/SymbolTable/ST_AnalyzeScope.bin create mode 100644 macros/SymbolTable/ST_Del.bin create mode 100644 macros/SymbolTable/ST_FindPos.bin create mode 100644 macros/SymbolTable/ST_Get.bin create mode 100644 macros/SymbolTable/ST_GetInArgInfo.bin create mode 100644 macros/SymbolTable/ST_GetSymbolInfo.bin create mode 100644 macros/SymbolTable/ST_InsForCntVars.bin create mode 100644 macros/SymbolTable/ST_InsOutArg.bin delete mode 100644 macros/SymbolTable/ST_InsOutArg_Dup.sci create mode 100644 macros/SymbolTable/ST_Load.bin create mode 100644 macros/SymbolTable/ST_MatchSymbol.bin create mode 100644 macros/SymbolTable/ST_Save.bin create mode 100644 macros/SymbolTable/ST_Set.bin (limited to 'macros/SymbolTable') diff --git a/macros/SymbolTable/ST_AnalyzeScope.bin b/macros/SymbolTable/ST_AnalyzeScope.bin new file mode 100644 index 0000000..7e727a0 Binary files /dev/null and b/macros/SymbolTable/ST_AnalyzeScope.bin differ diff --git a/macros/SymbolTable/ST_AnalyzeScope.sci b/macros/SymbolTable/ST_AnalyzeScope.sci index 8389c09..6ce9482 100644 --- a/macros/SymbolTable/ST_AnalyzeScope.sci +++ b/macros/SymbolTable/ST_AnalyzeScope.sci @@ -84,6 +84,7 @@ for cntout = 1:NOutArg // #RNU_RES_E OutArg(cntout).Scope = 'Local'; end + // #RNU_RES_B // --- Check in global symbol table. --- // #RNU_RES_E diff --git a/macros/SymbolTable/ST_Del.bin b/macros/SymbolTable/ST_Del.bin new file mode 100644 index 0000000..c26e2e5 Binary files /dev/null and b/macros/SymbolTable/ST_Del.bin differ diff --git a/macros/SymbolTable/ST_FindPos.bin b/macros/SymbolTable/ST_FindPos.bin new file mode 100644 index 0000000..c7003f3 Binary files /dev/null and b/macros/SymbolTable/ST_FindPos.bin differ diff --git a/macros/SymbolTable/ST_Get.bin b/macros/SymbolTable/ST_Get.bin new file mode 100644 index 0000000..512e72b Binary files /dev/null and b/macros/SymbolTable/ST_Get.bin differ diff --git a/macros/SymbolTable/ST_GetInArgInfo.bin b/macros/SymbolTable/ST_GetInArgInfo.bin new file mode 100644 index 0000000..6eb16e3 Binary files /dev/null and b/macros/SymbolTable/ST_GetInArgInfo.bin differ diff --git a/macros/SymbolTable/ST_GetInArgInfo.sci b/macros/SymbolTable/ST_GetInArgInfo.sci index 4c85408..9f5cbd4 100644 --- a/macros/SymbolTable/ST_GetInArgInfo.sci +++ b/macros/SymbolTable/ST_GetInArgInfo.sci @@ -49,13 +49,13 @@ for cntinarg = 1:NInArg tmpname = InArg(cntinarg).Name; tmpscope = InArg(cntinarg).Scope; lengthNumber = length('Number_'); - if (part(tmpscope,1:lengthNumber) == 'Number_') + if (part(tmpscope,1:lengthNumber) == 'Number_') // #RNU_RES_B PrintStringInfo('Input Argument '+string(cntinarg)+' is a number: '+tmpname+'.',FileInfo.Funct(nxtscifunnumber).ReportFileName,'file'); // #RNU_RES_E UpdatedInArg(cntinarg).Type = part(tmpscope,lengthNumber+1:lengthNumber+1); if (UpdatedInArg(cntinarg).Type == 'x') - UpdatedInArg(cntinarg).Type = SharedInfo.DefaultPrecision; // It is the default + UpdatedInArg(cntinarg).Type = SharedInfo.DefaultPrecision; // It is the default. elseif (UpdatedInArg(cntinarg).Type == 'X') if (SharedInfo.DefaultPrecision == 's') UpdatedInArg(cntinarg).Type = 'c'; // It is the default. @@ -101,17 +101,6 @@ for cntinarg = 1:NInArg UpdatedInArg(cntinarg).FindLike = 0; UpdatedInArg(cntinarg).Dimension = 0; UpdatedInArg(cntinarg).Scope = 'Number'; - if((ASTFunName == 'cmd_analog_in' | ASTFunName == 'cmd_analog_in_volt' ) & cntinarg == 2) - numvalue = eval(tmpname); - if (SharedInfo.Board_name == 'mega' | SharedInfo.Board_name == 'mega2560') then - tmpname = string(numvalue + 54) - UpdatedInArg(cntinarg).Value = 54 + numvalue; - else - tmpname = string(numvalue + 14) - UpdatedInArg(cntinarg).Value = 14 + numvalue; - end - UpdatedInArg(cntinarg).Name = tmpname; // Change the name. - end elseif (tmpscope == 'String') // #RNU_RES_B diff --git a/macros/SymbolTable/ST_GetSymbolInfo.bin b/macros/SymbolTable/ST_GetSymbolInfo.bin new file mode 100644 index 0000000..b8a7cf7 Binary files /dev/null and b/macros/SymbolTable/ST_GetSymbolInfo.bin differ diff --git a/macros/SymbolTable/ST_InsForCntVars.bin b/macros/SymbolTable/ST_InsForCntVars.bin new file mode 100644 index 0000000..12882fc Binary files /dev/null and b/macros/SymbolTable/ST_InsForCntVars.bin differ diff --git a/macros/SymbolTable/ST_InsOutArg.bin b/macros/SymbolTable/ST_InsOutArg.bin new file mode 100644 index 0000000..ec9970c Binary files /dev/null and b/macros/SymbolTable/ST_InsOutArg.bin differ diff --git a/macros/SymbolTable/ST_InsOutArg.sci b/macros/SymbolTable/ST_InsOutArg.sci index fd6b426..f4958ff 100644 --- a/macros/SymbolTable/ST_InsOutArg.sci +++ b/macros/SymbolTable/ST_InsOutArg.sci @@ -47,6 +47,8 @@ PrintStringInfo('***Putting output arguments in the symbol table***',ReportFileN // --------------------------- // --- End Initialization. --- // --------------------------- + + for counteroutput = 1:NOutArg // #RNU_RES_B PrintStringInfo(' Symbol ""'+OutArg(counteroutput).Name+'""',ReportFileName,'file','y','n'); diff --git a/macros/SymbolTable/ST_InsOutArg_Dup.sci b/macros/SymbolTable/ST_InsOutArg_Dup.sci deleted file mode 100644 index bca6623..0000000 --- a/macros/SymbolTable/ST_InsOutArg_Dup.sci +++ /dev/null @@ -1,195 +0,0 @@ -function ST_InsOutArg_Dup(InArg,NInArg,OutArg,NOutArg,com_type,FileInfo,SharedInfo,MatchRule) -// function ST_InsOutArg(OutArg,NOutArg,FileInfo,SharedInfo,MatchRule) -// ----------------------------------------------------------------- -// //NUT: add description here -// -// Input data: -// //NUT: add description here -// -// Output data: -// //NUT: add description here -// -// Status: -// 26-Oct-2007 -- Raffaele Nutricato: Author. -// 26-Oct-2007 -- Alberto Morea: Test Ok. -// -// Copyright 2007 Raffaele Nutricato & Alberto Morea. -// Contact: raffaele.nutricato@tiscali.it -// ----------------------------------------------------------------- -SCI2CNInArgCheck(argn(2),8,8) - - -// ------------------------------ -// --- Check input arguments. --- -// ------------------------------ -//SCI2CNInArgCheck(argn(2),5,5); - -// ----------------------- -// --- Initialization. --- -// ----------------------- -nxtscifunname = SharedInfo.NextSCIFunName; -nxtscifunnumber = SharedInfo.NextSCIFunNumber; -ReportFileName = FileInfo.Funct(nxtscifunnumber).ReportFileName; -CDeclarationFileName = FileInfo.Funct(nxtscifunnumber).CDeclarationFileName; -CGblDeclarFileName = FileInfo.Funct(nxtscifunnumber).CGblDeclarFileName; - -GlobalVarsFileName = FileInfo.GlobalVarFileName; -LocalVarsFileName = FileInfo.Funct(nxtscifunnumber).LocalVarFileName; -TempVarsFileName = FileInfo.Funct(nxtscifunnumber).TempVarFileName; - -CPass1FileName = FileInfo.Funct(nxtscifunnumber).CPass1FileName; -CPass1FreeFileName = FileInfo.Funct(nxtscifunnumber).CPass1FreeFileName; - - -// #RNU_RES_B -PrintStringInfo(' ',ReportFileName,'file','y'); -PrintStringInfo('***Putting output arguments in the symbol table***',ReportFileName,'file','y','n'); -// #RNU_RES_E -// --------------------------- -// --- End Initialization. --- -// --------------------------- - - -for counteroutput = 1:NOutArg - // #RNU_RES_B - PrintStringInfo(' Symbol ""'+OutArg(counteroutput).Name+'""',ReportFileName,'file','y','n'); - PrintStringInfo(' Type: '+OutArg(counteroutput).Type,ReportFileName,'file','y','n'); - PrintStringInfo(' Size(1): '+string(OutArg(counteroutput).Size(1)),ReportFileName,'file','y','n'); - PrintStringInfo(' Size(2): '+string(OutArg(counteroutput).Size(2)),ReportFileName,'file','y','n'); - PrintStringInfo(' Value: '+string(OutArg(counteroutput).Value),ReportFileName,'file','y','n'); - PrintStringInfo(' FindLike: '+string(OutArg(counteroutput).FindLike),ReportFileName,'file','y','n'); - PrintStringInfo(' Dimension: '+string(OutArg(counteroutput).Dimension),ReportFileName,'file','y','n'); - PrintStringInfo(' Scope: '+string(OutArg(counteroutput).Scope),ReportFileName,'file','y','n'); - PrintStringInfo(' ',ReportFileName,'file','y','n'); - // #RNU_RES_E - if (OutArg(counteroutput).Scope == 'Temp') - SymbTableFileName = TempVarsFileName; - elseif (OutArg(counteroutput).Scope == 'Local') - SymbTableFileName = LocalVarsFileName; - elseif (OutArg(counteroutput).Scope == 'Global') - SymbTableFileName = GlobalVarsFileName; - else - error(9999, 'Unknown scope ""'+OutArg(counteroutput).Scope+'"" for symbol: '+OutArg(counteroutput).Name); - end - // #RNU_RES_B - PrintStringInfo(' Setting symbol ""'+OutArg(counteroutput).Name+'"" in '+SymbTableFileName+'.',ReportFileName,'file','y'); - // #RNU_RES_E - - // #RNU_RES_B - // Check existence and conflicts in the symbol table. - // Here we have four possibilities: - // 1. the symbol is a global variable not initialized yet -> we have to initialize it. - // 2. the symbol already exists with different settings -> we have to issue an error. - // 3. the symbol already exists with the same settings -> ok, we don't have to do nothing. - // 4. the symbol doesn't exist -> we have to insert it into the table. - // #RNU_RES_E - [TBFlagfound,TBFlagEqualSymbols] = ... - ST_MatchSymbol(OutArg(counteroutput).Name,... - OutArg(counteroutput).Type,... - OutArg(counteroutput).Size,... - OutArg(counteroutput).Value,... - OutArg(counteroutput).FindLike,... - OutArg(counteroutput).Dimension,... - SymbTableFileName,MatchRule); - - if (TBFlagfound == 1) - if (TBFlagEqualSymbols == 0) - PrintStringInfo(' ',ReportFileName,'both','y'); - PrintStringInfo('SCI2CERROR: Symbol Table Conflict. Trying to insert again symbol ""'+... - OutArg(counteroutput).Name+'"" with different settings',ReportFileName,'both','y'); - PrintStringInfo('SCI2CERROR: Please check that you are not using variable ""'+OutArg(counteroutput).Name+'""',ReportFileName,'both','y'); - PrintStringInfo('SCI2CERROR: with different sizes and/or types.',ReportFileName,'both','y'); - PrintStringInfo(' ',ReportFileName,'both','y'); - error(9999, 'SCI2CERROR: Symbol Table Conflict. Trying to insert again symbol ""'+... - OutArg(counteroutput).Name+'"" with different settings'); - else - // #RNU_RES_B - // It's ok symbols do match. - //NUT: forse occorre un altro check sulla size per capire se occore fare il malloc. - //NUT: qui entro anche quando ho una variabile global gia' dichiarata tale in un altro - //NUT: per cui devo dichiararala come external. - //RNU qui ci puoi mettere una warning quando stai riallocando uno stesso simbolo con size simbolica. - //RNU puoi anche aggiungere del codice in c o un semplice commento. per esempio una funzione c del tipo checksize che controlla il valore - //RNU prima dopo delle size di una data variabile. Cosa succede se cambio la size anche nel caso di array e approccio - //RNU di resize non attivo? L'unica cosa e' che molte size numeriche scompaiono e incomincio a creare numerose variabili - //RNU con size simbolica. - - // If the symbol is scalar we update its value if it is an array we update its size - // only in case we are using the 'REALLOC_ALL_RESIZE_ALL' resize approach - // #RNU_RES_E - if ((GetSymbolDimension(OutArg(counteroutput).Size)) == 0 | (SharedInfo.ResizeApproach=='REALLOC_ALL_RESIZE_ALL')) - ST_Set(OutArg(counteroutput).Name,... - OutArg(counteroutput).Type,... - OutArg(counteroutput).Size,... - OutArg(counteroutput).Value,... - OutArg(counteroutput).FindLike,... - OutArg(counteroutput).Dimension,... - SymbTableFileName); - end - - // IndentLevelDeclaration = 1; //NUT: per ora lo forzo sempre a 1 - // IndentLevelMalloc = SharedInfo.NIndent; - // FlagExt = 0; - // C_GenDeclarations(OutArg(counteroutput),CDeclarationFileName,IndentLevelDeclaration,ReportFileName,FlagExt,SharedInfo.ResizeApproach); - - - end - elseif (TBFlagfound == 2) - // #RNU_RES_B - // We have a non-initialized global variable. - // Set the non-initialized global variable. - PrintStringInfo(' Found a non-initialized global variable.',ReportFileName,'file','y'); - // #RNU_RES_E - ST_Set(OutArg(counteroutput).Name,... - OutArg(counteroutput).Type,... - OutArg(counteroutput).Size,... - OutArg(counteroutput).Value,... - OutArg(counteroutput).FindLike,... - OutArg(counteroutput).Dimension,... - SymbTableFileName); - IndentLevel = 0; //NUT: forced always to 1 - FlagExt = 0; - C_GenDeclarations(OutArg(counteroutput),CGblDeclarFileName,IndentLevel,ReportFileName,FlagExt,SharedInfo.ResizeApproach); - IndentLevelMalloc = SharedInfo.NIndent; - // #RNU_RES_B - //RNU da verificare bene qui. Cio' che si verifica e' che se la size della globale e' simbolica - //RNU allora si assume che essa sia da allocare come puntatore e poi realloc. - // #RNU_RES_E - C_MemAllocOutTempVars(OutArg(counteroutput),1,CPass1FileName,CPass1FreeFileName,IndentLevelMalloc,ReportFileName,SharedInfo.ResizeApproach); - else - if (OutArg(counteroutput).FindLike == 1) - // #RNU_RES_B - // In presence of find-like functions the size must be always symbolic. - // Don't change here the value of OutArg.Size because the first time - // I need them to declare the OutArg variable with the values assumed by OutArg.Size. - // #RNU_RES_E - TmpOutArgSize(1) = '__'+OutArg(counteroutput).Name+'Size[0]'; - TmpOutArgSize(2) = '__'+OutArg(counteroutput).Name+'Size[1]'; - else - TmpOutArgSize(1) = OutArg(counteroutput).Size(1); - TmpOutArgSize(2) = OutArg(counteroutput).Size(2); - end - // #RNU_RES_B - // Set a new symbol. - // #RNU_RES_E - ST_Set(OutArg(counteroutput).Name,... - OutArg(counteroutput).Type,... - TmpOutArgSize,... - OutArg(counteroutput).Value,... - OutArg(counteroutput).FindLike,... - OutArg(counteroutput).Dimension,... - SymbTableFileName); - IndentLevelDeclaration = 1; //NUT: per ora lo forzo sempre a 1 - IndentLevelMalloc = SharedInfo.NIndent; - FlagExt = 0; - C_GenDeclarations_Dup(InArg,NInArg,com_type,OutArg(counteroutput),CPass1FileName,IndentLevelDeclaration,ReportFileName,FlagExt,SharedInfo.ResizeApproach); - // #RNU_RES_B - //RNU aggiunta qui in modo che le malloc saranno fatte una sola volta: - //RNU verifica che tutto funzioni e chi altro usa la C_MemAlloc per capire se si puo' ottimizzare per questo stadio. - // #RNU_RES_E - C_MemAllocOutTempVars(OutArg(counteroutput),1,CPass1FileName,CPass1FreeFileName,IndentLevelMalloc,ReportFileName,SharedInfo.ResizeApproach); - end - -end - -endfunction diff --git a/macros/SymbolTable/ST_Load.bin b/macros/SymbolTable/ST_Load.bin new file mode 100644 index 0000000..f158c2b Binary files /dev/null and b/macros/SymbolTable/ST_Load.bin differ diff --git a/macros/SymbolTable/ST_MatchSymbol.bin b/macros/SymbolTable/ST_MatchSymbol.bin new file mode 100644 index 0000000..278560d Binary files /dev/null and b/macros/SymbolTable/ST_MatchSymbol.bin differ diff --git a/macros/SymbolTable/ST_Save.bin b/macros/SymbolTable/ST_Save.bin new file mode 100644 index 0000000..4aa50a2 Binary files /dev/null and b/macros/SymbolTable/ST_Save.bin differ diff --git a/macros/SymbolTable/ST_Set.bin b/macros/SymbolTable/ST_Set.bin new file mode 100644 index 0000000..cbd2627 Binary files /dev/null and b/macros/SymbolTable/ST_Set.bin differ diff --git a/macros/SymbolTable/lib b/macros/SymbolTable/lib index 4d1b4bb..a978ec5 100644 Binary files a/macros/SymbolTable/lib and b/macros/SymbolTable/lib differ diff --git a/macros/SymbolTable/names b/macros/SymbolTable/names index c2efc84..b5a7d65 100644 --- a/macros/SymbolTable/names +++ b/macros/SymbolTable/names @@ -6,7 +6,6 @@ ST_GetInArgInfo ST_GetSymbolInfo ST_InsForCntVars ST_InsOutArg -ST_InsOutArg_Dup ST_Load ST_MatchSymbol ST_Save -- cgit