Commit 723b260f authored by sebastien's avatar sebastien
Browse files

trunk preprocessor: automatic reindentation of all code with emacs

git-svn-id: https://www.dynare.org/svn/dynare/trunk@2372 ac1d8469-bf42-47a9-8791-bf33cf982152
parent 867daedd
...@@ -31,9 +31,9 @@ using namespace std; ...@@ -31,9 +31,9 @@ using namespace std;
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
BlockTriangular::BlockTriangular(const SymbolTable &symbol_table_arg) : BlockTriangular::BlockTriangular(const SymbolTable &symbol_table_arg) :
symbol_table(symbol_table_arg), symbol_table(symbol_table_arg),
normalization(symbol_table_arg), normalization(symbol_table_arg),
incidencematrix(symbol_table_arg) incidencematrix(symbol_table_arg)
{ {
bt_verbose = 0; bt_verbose = 0;
ModelBlock = NULL; ModelBlock = NULL;
...@@ -418,52 +418,52 @@ BlockTriangular::Allocate_Block(int size, int *count_Equ, int count_Block, Block ...@@ -418,52 +418,52 @@ BlockTriangular::Allocate_Block(int size, int *count_Equ, int count_Block, Block
void void
BlockTriangular::Free_Block(Model_Block* ModelBlock) const BlockTriangular::Free_Block(Model_Block* ModelBlock) const
{ {
int blk, i; int blk, i;
for (blk = 0;blk < ModelBlock->Size;blk++) for (blk = 0;blk < ModelBlock->Size;blk++)
{ {
free(ModelBlock->Block_List[blk].Equation); free(ModelBlock->Block_List[blk].Equation);
free(ModelBlock->Block_List[blk].Variable); free(ModelBlock->Block_List[blk].Variable);
free(ModelBlock->Block_List[blk].Exogenous); free(ModelBlock->Block_List[blk].Exogenous);
free(ModelBlock->Block_List[blk].Own_Derivative); free(ModelBlock->Block_List[blk].Own_Derivative);
free(ModelBlock->Block_List[blk].Other_Endogenous); free(ModelBlock->Block_List[blk].Other_Endogenous);
for (i = 0;i < ModelBlock->Block_List[blk].Max_Lag + ModelBlock->Block_List[blk].Max_Lead + 1;i++) for (i = 0;i < ModelBlock->Block_List[blk].Max_Lag + ModelBlock->Block_List[blk].Max_Lead + 1;i++)
{ {
if (incidencematrix.Model_Max_Lag_Endo-ModelBlock->Block_List[blk].Max_Lag+i>=0 /*&& ModelBlock->Block_List[blk].IM_lead_lag[i].size*/) if (incidencematrix.Model_Max_Lag_Endo-ModelBlock->Block_List[blk].Max_Lag+i>=0 /*&& ModelBlock->Block_List[blk].IM_lead_lag[i].size*/)
{ {
free(ModelBlock->Block_List[blk].IM_lead_lag[i].u); free(ModelBlock->Block_List[blk].IM_lead_lag[i].u);
free(ModelBlock->Block_List[blk].IM_lead_lag[i].us); free(ModelBlock->Block_List[blk].IM_lead_lag[i].us);
free(ModelBlock->Block_List[blk].IM_lead_lag[i].Equ); free(ModelBlock->Block_List[blk].IM_lead_lag[i].Equ);
free(ModelBlock->Block_List[blk].IM_lead_lag[i].Var); free(ModelBlock->Block_List[blk].IM_lead_lag[i].Var);
free(ModelBlock->Block_List[blk].IM_lead_lag[i].Equ_Index); free(ModelBlock->Block_List[blk].IM_lead_lag[i].Equ_Index);
free(ModelBlock->Block_List[blk].IM_lead_lag[i].Var_Index); free(ModelBlock->Block_List[blk].IM_lead_lag[i].Var_Index);
free(ModelBlock->Block_List[blk].IM_lead_lag[i].u_other_endo); free(ModelBlock->Block_List[blk].IM_lead_lag[i].u_other_endo);
free(ModelBlock->Block_List[blk].IM_lead_lag[i].Var_other_endo); free(ModelBlock->Block_List[blk].IM_lead_lag[i].Var_other_endo);
free(ModelBlock->Block_List[blk].IM_lead_lag[i].Equ_other_endo); free(ModelBlock->Block_List[blk].IM_lead_lag[i].Equ_other_endo);
free(ModelBlock->Block_List[blk].IM_lead_lag[i].Var_Index_other_endo); free(ModelBlock->Block_List[blk].IM_lead_lag[i].Var_Index_other_endo);
free(ModelBlock->Block_List[blk].IM_lead_lag[i].Equ_Index_other_endo); free(ModelBlock->Block_List[blk].IM_lead_lag[i].Equ_Index_other_endo);
} }
if (incidencematrix.Model_Max_Lag_Exo-ModelBlock->Block_List[blk].Max_Lag+i>=0 /*&& ModelBlock->Block_List[blk].IM_lead_lag[i].size_exo*/) if (incidencematrix.Model_Max_Lag_Exo-ModelBlock->Block_List[blk].Max_Lag+i>=0 /*&& ModelBlock->Block_List[blk].IM_lead_lag[i].size_exo*/)
{ {
free(ModelBlock->Block_List[blk].IM_lead_lag[i].Exogenous); free(ModelBlock->Block_List[blk].IM_lead_lag[i].Exogenous);
free(ModelBlock->Block_List[blk].IM_lead_lag[i].Exogenous_Index); free(ModelBlock->Block_List[blk].IM_lead_lag[i].Exogenous_Index);
free(ModelBlock->Block_List[blk].IM_lead_lag[i].Equ_X_Index); free(ModelBlock->Block_List[blk].IM_lead_lag[i].Equ_X_Index);
free(ModelBlock->Block_List[blk].IM_lead_lag[i].Equ_X); free(ModelBlock->Block_List[blk].IM_lead_lag[i].Equ_X);
} }
} }
free(ModelBlock->Block_List[blk].IM_lead_lag); free(ModelBlock->Block_List[blk].IM_lead_lag);
for(i=0; i<ModelBlock->Block_List[blk].Size; i++) for(i=0; i<ModelBlock->Block_List[blk].Size; i++)
delete ModelBlock->Block_List[blk].Temporary_Terms_in_Equation[i]; delete ModelBlock->Block_List[blk].Temporary_Terms_in_Equation[i];
free(ModelBlock->Block_List[blk].Temporary_Terms_in_Equation); free(ModelBlock->Block_List[blk].Temporary_Terms_in_Equation);
delete(ModelBlock->Block_List[blk].Temporary_InUse); delete(ModelBlock->Block_List[blk].Temporary_InUse);
} }
free(ModelBlock->Block_List); free(ModelBlock->Block_List);
free(ModelBlock); free(ModelBlock);
free(Index_Equ_IM); free(Index_Equ_IM);
free(Index_Var_IM); free(Index_Var_IM);
} }
t_type t_type
...@@ -571,7 +571,7 @@ BlockTriangular::Reduce_Blocks_and_type_determination(int prologue, int epilogue ...@@ -571,7 +571,7 @@ BlockTriangular::Reduce_Blocks_and_type_determination(int prologue, int epilogue
{ {
if ( ((prev_Type == EVALUATE_FORWARD_R || prev_Type == EVALUATE_FORWARD) && (Simulation_Type == EVALUATE_FORWARD_R || Simulation_Type == EVALUATE_FORWARD)) if ( ((prev_Type == EVALUATE_FORWARD_R || prev_Type == EVALUATE_FORWARD) && (Simulation_Type == EVALUATE_FORWARD_R || Simulation_Type == EVALUATE_FORWARD))
|| ((prev_Type == EVALUATE_BACKWARD_R || prev_Type == EVALUATE_BACKWARD) && (Simulation_Type == EVALUATE_BACKWARD_R || Simulation_Type == EVALUATE_BACKWARD)) || ((prev_Type == EVALUATE_BACKWARD_R || prev_Type == EVALUATE_BACKWARD) && (Simulation_Type == EVALUATE_BACKWARD_R || Simulation_Type == EVALUATE_BACKWARD))
) )
{ {
BlockSimulationType c_Type = (Type[Type.size()-1]).first; BlockSimulationType c_Type = (Type[Type.size()-1]).first;
int c_Size = (Type[Type.size()-1]).second; int c_Size = (Type[Type.size()-1]).second;
......
...@@ -177,7 +177,7 @@ StochSimulStatement::writeOutput(ostream &output, const string &basename) const ...@@ -177,7 +177,7 @@ StochSimulStatement::writeOutput(ostream &output, const string &basename) const
} }
ForecastStatement::ForecastStatement(const SymbolList &symbol_list_arg, ForecastStatement::ForecastStatement(const SymbolList &symbol_list_arg,
const OptionsList &options_list_arg) : const OptionsList &options_list_arg) :
symbol_list(symbol_list_arg), symbol_list(symbol_list_arg),
options_list(options_list_arg) options_list(options_list_arg)
{ {
......
...@@ -376,13 +376,13 @@ DataTree::AddSqRt(NodeID iArg1) ...@@ -376,13 +376,13 @@ DataTree::AddSqRt(NodeID iArg1)
NodeID NodeID
DataTree::AddMaX(NodeID iArg1, NodeID iArg2) DataTree::AddMaX(NodeID iArg1, NodeID iArg2)
{ {
return AddBinaryOp(iArg1, oMax, iArg2); return AddBinaryOp(iArg1, oMax, iArg2);
} }
NodeID NodeID
DataTree::AddMin(NodeID iArg1, NodeID iArg2) DataTree::AddMin(NodeID iArg1, NodeID iArg2)
{ {
return AddBinaryOp(iArg1, oMin, iArg2); return AddBinaryOp(iArg1, oMin, iArg2);
} }
NodeID NodeID
......
...@@ -480,12 +480,12 @@ VariableNode::compile(ofstream &CompileCode, bool lhs_rhs, ExprNodeOutputType ou ...@@ -480,12 +480,12 @@ VariableNode::compile(ofstream &CompileCode, bool lhs_rhs, ExprNodeOutputType ou
void void
VariableNode::computeTemporaryTerms(map<NodeID, int> &reference_count, VariableNode::computeTemporaryTerms(map<NodeID, int> &reference_count,
temporary_terms_type &temporary_terms, temporary_terms_type &temporary_terms,
map<NodeID, pair<int, int> > &first_occurence, map<NodeID, pair<int, int> > &first_occurence,
int Curr_block, int Curr_block,
Model_Block *ModelBlock, Model_Block *ModelBlock,
int equation, int equation,
map_idx_type &map_idx) const map_idx_type &map_idx) const
{ {
if(type== eModelLocalVariable) if(type== eModelLocalVariable)
datatree.local_variables_table[symb_id]->computeTemporaryTerms(reference_count, temporary_terms, first_occurence, Curr_block, ModelBlock, equation, map_idx); datatree.local_variables_table[symb_id]->computeTemporaryTerms(reference_count, temporary_terms, first_occurence, Curr_block, ModelBlock, equation, map_idx);
...@@ -1080,7 +1080,7 @@ BinaryOpNode::cost(const temporary_terms_type &temporary_terms, bool is_matlab) ...@@ -1080,7 +1080,7 @@ BinaryOpNode::cost(const temporary_terms_type &temporary_terms, bool is_matlab)
return cost + 90; return cost + 90;
case oMax: case oMax:
case oMin: case oMin:
return cost + 110; return cost + 110;
case oDivide: case oDivide:
return cost + 990; return cost + 990;
case oPower: case oPower:
...@@ -1278,7 +1278,7 @@ BinaryOpNode::writeOutput(ostream &output, ExprNodeOutputType output_type, ...@@ -1278,7 +1278,7 @@ BinaryOpNode::writeOutput(ostream &output, ExprNodeOutputType output_type,
if ((op_code == oPower && !OFFSET(output_type)) || op_code == oMax || op_code == oMin ) if ((op_code == oPower && !OFFSET(output_type)) || op_code == oMax || op_code == oMin )
{ {
switch (op_code) switch (op_code)
{ {
case oPower: case oPower:
output << "pow("; output << "pow(";
break; break;
...@@ -1290,7 +1290,7 @@ BinaryOpNode::writeOutput(ostream &output, ExprNodeOutputType output_type, ...@@ -1290,7 +1290,7 @@ BinaryOpNode::writeOutput(ostream &output, ExprNodeOutputType output_type,
break; break;
default: default:
; ;
} }
arg1->writeOutput(output, output_type, temporary_terms); arg1->writeOutput(output, output_type, temporary_terms);
output << ","; output << ",";
arg2->writeOutput(output, output_type, temporary_terms); arg2->writeOutput(output, output_type, temporary_terms);
...@@ -1404,7 +1404,7 @@ BinaryOpNode::collectExogenous(set<pair<int, int> > &result) const ...@@ -1404,7 +1404,7 @@ BinaryOpNode::collectExogenous(set<pair<int, int> > &result) const
} }
TrinaryOpNode::TrinaryOpNode(DataTree &datatree_arg, const NodeID arg1_arg, TrinaryOpNode::TrinaryOpNode(DataTree &datatree_arg, const NodeID arg1_arg,
TrinaryOpcode op_code_arg, const NodeID arg2_arg, const NodeID arg3_arg) : TrinaryOpcode op_code_arg, const NodeID arg2_arg, const NodeID arg3_arg) :
ExprNode(datatree_arg), ExprNode(datatree_arg),
arg1(arg1_arg), arg1(arg1_arg),
arg2(arg2_arg), arg2(arg2_arg),
...@@ -1531,8 +1531,8 @@ TrinaryOpNode::cost(const temporary_terms_type &temporary_terms, bool is_matlab) ...@@ -1531,8 +1531,8 @@ TrinaryOpNode::cost(const temporary_terms_type &temporary_terms, bool is_matlab)
void void
TrinaryOpNode::computeTemporaryTerms(map<NodeID, int> &reference_count, TrinaryOpNode::computeTemporaryTerms(map<NodeID, int> &reference_count,
temporary_terms_type &temporary_terms, temporary_terms_type &temporary_terms,
bool is_matlab) const bool is_matlab) const
{ {
NodeID this2 = const_cast<TrinaryOpNode *>(this); NodeID this2 = const_cast<TrinaryOpNode *>(this);
map<NodeID, int>::iterator it = reference_count.find(this2); map<NodeID, int>::iterator it = reference_count.find(this2);
...@@ -1557,12 +1557,12 @@ TrinaryOpNode::computeTemporaryTerms(map<NodeID, int> &reference_count, ...@@ -1557,12 +1557,12 @@ TrinaryOpNode::computeTemporaryTerms(map<NodeID, int> &reference_count,
void void
TrinaryOpNode::computeTemporaryTerms(map<NodeID, int> &reference_count, TrinaryOpNode::computeTemporaryTerms(map<NodeID, int> &reference_count,
temporary_terms_type &temporary_terms, temporary_terms_type &temporary_terms,
map<NodeID, pair<int, int> > &first_occurence, map<NodeID, pair<int, int> > &first_occurence,
int Curr_block, int Curr_block,
Model_Block *ModelBlock, Model_Block *ModelBlock,
int equation, int equation,
map_idx_type &map_idx) const map_idx_type &map_idx) const
{ {
NodeID this2 = const_cast<TrinaryOpNode *>(this); NodeID this2 = const_cast<TrinaryOpNode *>(this);
map<NodeID, int>::iterator it = reference_count.find(this2); map<NodeID, int>::iterator it = reference_count.find(this2);
...@@ -1646,7 +1646,7 @@ TrinaryOpNode::collectTemporary_terms(const temporary_terms_type &temporary_term ...@@ -1646,7 +1646,7 @@ TrinaryOpNode::collectTemporary_terms(const temporary_terms_type &temporary_term
void void
TrinaryOpNode::writeOutput(ostream &output, ExprNodeOutputType output_type, TrinaryOpNode::writeOutput(ostream &output, ExprNodeOutputType output_type,
const temporary_terms_type &temporary_terms) const const temporary_terms_type &temporary_terms) const
{ {
if (!OFFSET(output_type)) if (!OFFSET(output_type))
{ {
......
...@@ -114,7 +114,7 @@ IncidenceMatrix::Get_IM(int lead_lag, SymbolType type) const ...@@ -114,7 +114,7 @@ IncidenceMatrix::Get_IM(int lead_lag, SymbolType type) const
} }
else //eExogenous else //eExogenous
{ {
it = List_IM_X.find(lead_lag); it = List_IM_X.find(lead_lag);
if(it!=List_IM_X.end()) if(it!=List_IM_X.end())
return(it->second); return(it->second);
else else
......
...@@ -18,10 +18,10 @@ ...@@ -18,10 +18,10 @@
*/ */
/* /*
Useful documentation: Matlab 7 Mat-File Format Useful documentation: Matlab 7 Mat-File Format
----------------------------------------------- -----------------------------------------------
revision: October 2008 PDF only Rereleased for Version 7.7 (Release 2008b) revision: October 2008 PDF only Rereleased for Version 7.7 (Release 2008b)
available at: http://www.mathworks.com/access/helpdesk/help/pdf_doc/matlab/matfile_format.pdf available at: http://www.mathworks.com/access/helpdesk/help/pdf_doc/matlab/matfile_format.pdf
*/ */
#include "MatlabFile.hh" #include "MatlabFile.hh"
...@@ -183,69 +183,69 @@ SimpleElem::Get_Data_Class(Data_Header_t data_header) const ...@@ -183,69 +183,69 @@ SimpleElem::Get_Data_Class(Data_Header_t data_header) const
returned_ReadData_t ret; returned_ReadData_t ret;
switch(data_header.DataType) switch(data_header.DataType)
{ {
case miINT8: //8 bit, signed case miINT8: //8 bit, signed
case miUINT8: //8 bit, unsigned case miUINT8: //8 bit, unsigned
ret.Type = Numerical; ret.Type = Numerical;
ret.Simple = new INT8; ret.Simple = new INT8;
return(ret); return(ret);
break; break;
case miINT16: //16-bit, signed case miINT16: //16-bit, signed
case miUINT16: //16-bit, unsigned case miUINT16: //16-bit, unsigned
ret.Type = Numerical; ret.Type = Numerical;
ret.Simple = new INT16; ret.Simple = new INT16;
return(ret); return(ret);
break; break;
case miINT32: //32-bit, signed case miINT32: //32-bit, signed
case miUINT32: //32-bit, unsigned case miUINT32: //32-bit, unsigned
ret.Type = Numerical; ret.Type = Numerical;
ret.Simple = new INT32; ret.Simple = new INT32;
return(ret); return(ret);
break; break;
case miINT64: //64-bit, signed case miINT64: //64-bit, signed
case miUINT64: //64-bit, unsigned case miUINT64: //64-bit, unsigned
ret.Type = Numerical; ret.Type = Numerical;
ret.Simple = new INT64; ret.Simple = new INT64;
return(ret); return(ret);
break; break;
case miSINGLE: //IEEE 754 single format case miSINGLE: //IEEE 754 single format
ret.Type = Numerical; ret.Type = Numerical;
ret.Simple = new Single; ret.Simple = new Single;
return(ret); return(ret);
break; break;
case miDOUBLE: //IEEE 754 double format case miDOUBLE: //IEEE 754 double format
ret.Type = Numerical; ret.Type = Numerical;
ret.Simple = new Double; ret.Simple = new Double;
return(ret); return(ret);
break; break;
case miMATRIX: //MATLAB array case miMATRIX: //MATLAB array
ret.Type = Matrix; ret.Type = Matrix;
ret.Simple = NULL; ret.Simple = NULL;
return(ret); return(ret);
break; break;
case miCOMPRESSED: //Compressed Data case miCOMPRESSED: //Compressed Data
ret.Type = Compressed; ret.Type = Compressed;
ret.Simple = NULL; ret.Simple = NULL;
return(ret); return(ret);
break; break;
case miUTF8: //Unicode UTF-8 Encoded Character Data case miUTF8: //Unicode UTF-8 Encoded Character Data
ret.Type = AlphaNumeric; ret.Type = AlphaNumeric;
ret.Simple = new UTF8; ret.Simple = new UTF8;
return(ret); return(ret);
break; break;
case miUTF16: //Unicode UTF-16 Encoded Character Data case miUTF16: //Unicode UTF-16 Encoded Character Data
ret.Type = AlphaNumeric; ret.Type = AlphaNumeric;
ret.Simple = new UTF16; ret.Simple = new UTF16;
return(ret); return(ret);
break; break;
case miUTF32: //Unicode UTF-32 Encoded Character Data case miUTF32: //Unicode UTF-32 Encoded Character Data
ret.Type = AlphaNumeric; ret.Type = AlphaNumeric;
ret.Simple = new UTF32; ret.Simple = new UTF32;
return(ret); return(ret);
break; break;
default: default:
ret.Type = Unknown; ret.Type = Unknown;
ret.Simple = NULL; ret.Simple = NULL;
return(ret); return(ret);
} }
} }
...@@ -259,36 +259,36 @@ SimpleElem::DataProceed(Data_Header data_header, char* InBuff, int* pBuff, FlagS ...@@ -259,36 +259,36 @@ SimpleElem::DataProceed(Data_Header data_header, char* InBuff, int* pBuff, FlagS
double tmpv; double tmpv;
switch(ret.Type) switch(ret.Type)
{ {
case Numerical: case Numerical:
if(data_header.Number_of_Bytes/ret.Simple->size()) if(data_header.Number_of_Bytes/ret.Simple->size())
for(unsigned int i=0;i<data_header.Number_of_Bytes/ret.Simple->size();i++)
{
tmpv=ret.Simple->ReadNum(InBuff, pBuff);
VNumeric.push_back(tmpv);
}
//to align pBuff on a 4 Bytes
if(*pBuff % 4)
*pBuff += 4-(*pBuff % 4);
delete ret.Simple;
break;
case AlphaNumeric:
for(unsigned int i=0;i<data_header.Number_of_Bytes/ret.Simple->size();i++) for(unsigned int i=0;i<data_header.Number_of_Bytes/ret.Simple->size();i++)
Vstr.push_back(ret.Simple->ReadAlph(InBuff, pBuff, data_header.Number_of_Bytes)); {
//to align pBuff on a 4 Bytes tmpv=ret.Simple->ReadNum(InBuff, pBuff);
if(*pBuff % 4) VNumeric.push_back(tmpv);
*pBuff += 4-(*pBuff % 4); }
delete ret.Simple; //to align pBuff on a 4 Bytes
break; if(*pBuff % 4)
case Matrix: *pBuff += 4-(*pBuff % 4);
array_elem = matrix.ReadArray_class(InBuff, pBuff); delete ret.Simple;
array_elem->ReadArray(InBuff, pBuff, flag); break;
break; case AlphaNumeric:
case Compressed: for(unsigned int i=0;i<data_header.Number_of_Bytes/ret.Simple->size();i++)
cerr << "Error: Compressed data in Mat-file not implemnted yet!\n set option -v6 when saving to Mat-file\n"; Vstr.push_back(ret.Simple->ReadAlph(InBuff, pBuff, data_header.Number_of_Bytes));
exit(EXIT_FAILURE); //to align pBuff on a 4 Bytes
case Unknown: if(*pBuff % 4)
cerr << "Error: Mat-file format use incomptible format with Matlab 7 specification!\n set option -v6 when saving to Mat-file\n"; *pBuff += 4-(*pBuff % 4);
exit(EXIT_FAILURE); delete ret.Simple;
break;
case Matrix:
array_elem = matrix.ReadArray_class(InBuff, pBuff);
array_elem->ReadArray(InBuff, pBuff, flag);
break;
case Compressed:
cerr << "Error: Compressed data in Mat-file not implemnted yet!\n set option -v6 when saving to Mat-file\n";
exit(EXIT_FAILURE);
case Unknown:
cerr << "Error: Mat-file format use incomptible format with Matlab 7 specification!\n set option -v6 when saving to Mat-file\n";
exit(EXIT_FAILURE);
} }
} }
...@@ -319,7 +319,7 @@ SimpleElem::Collect(const string &name, bool found, CollectStruct &collect_struc ...@@ -319,7 +319,7 @@ SimpleElem::Collect(const string &name, bool found, CollectStruct &collect_struc
{ {
array_elem->Collect(name, found, collect_struct); array_elem->Collect(name, found, collect_struct);
} }
} }
} }
...@@ -438,47 +438,47 @@ ArrayElem::ReadArray_class(char* InBuff, int* pBuff) const ...@@ -438,47 +438,47 @@ ArrayElem::ReadArray_class(char* InBuff, int* pBuff) const
array_flag=array_elem.ReadArrayFlag(InBuff, pBuff); array_flag=array_elem.ReadArrayFlag(InBuff, pBuff);
switch(array_flag.classe) switch(array_flag.classe)
{ {
case Cell_array: case Cell_array:
return(new CellArray); return(new CellArray);
break; break;
case Structure_: case Structure_:
return(new Structure); return(new Structure);
break; break;
case Object_: case Object_:
return(new Object); return(new Object);
break; break;
case Character_array: case Character_array:
return(new CharacterArray); return(new CharacterArray);
break; break;
case Sparse_array: case Sparse_array:
return(new SparseArray); return(new SparseArray);
break; break;
case Double_precision_array: case Double_precision_array:
return(new DoublePrecisionArray); return(new DoublePrecisionArray);
break; break;
case Single_precision_array: case Single_precision_array:
return(new SinglePrecisionArray); return(new SinglePrecisionArray);
break; break;
case Signed_integer_8_bit: case Signed_integer_8_bit:
return(new Bit8SignedInteger); return(new Bit8SignedInteger);
break; break;
case Unsigned_integer_8_bit: case Unsigned_integer_8_bit:
return(new Bit8UnsignedInteger); return(new Bit8UnsignedInteger);
break; break;
case Signed_integer_16_bit: case Signed_integer_16_bit:
return(new Bit16SignedInteger); return(new Bit16SignedInteger);
break; break;