Skip to content

Commit

Permalink
adding input parameter setter stub
Browse files Browse the repository at this point in the history
  • Loading branch information
Alexander Voigt authored and Alexander Voigt committed Jun 24, 2016
1 parent 0cd4dea commit 6381e87
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 1 deletion.
16 changes: 16 additions & 0 deletions meta/FSMathLink.m
Expand Up @@ -2,6 +2,7 @@

GetNumberOfInputParameterRules::usage = "";
PutInputParameters::usage = "";
SetInputParameterDefaultArguments::usage = "";

Begin["`Private`"];

Expand Down Expand Up @@ -50,6 +51,21 @@
PutInputParameters[inputPars_List, linkName_String] :=
StringJoin[PutInputParameter[#, linkName]& /@ inputPars];

SetInputParameterDefaultArgument[{par_, _, CConversion`ScalarType[_]}] :=
CConversion`ToValidCSymbol[par] -> 0;

SetInputParameterDefaultArgument[{par_, _, (CConversion`ArrayType | CConversion`VectorType)[_,dim_]}] :=
CConversion`ToValidCSymbol[par] -> Table[0, {dim}];

SetInputParameterDefaultArgument[{par_, _, CConversion`MatrixType[_,dim1_,dim2_]}] :=
CConversion`ToValidCSymbol[par] -> Table[0, {dim1}, {dim2}];

SetInputParameterDefaultArgument[{par_, _, CConversion`TensorType[_,dims__]}] :=
CConversion`ToValidCSymbol[par] -> Table[0, Evaluate[Sequence @@ ({#}& /@ {dims})]];

SetInputParameterDefaultArguments[inputPars_List] :=
Utils`StringJoinWithSeparator[ToString[SetInputParameterDefaultArgument[#]]& /@ inputPars, ",\n"];

End[];

EndPackage[];
8 changes: 7 additions & 1 deletion meta/FlexibleSUSY.m
Expand Up @@ -1235,12 +1235,18 @@ corresponding tadpole is real or imaginary (only in models with CP
];

WriteMathLink[inputParameters_List, files_List] :=
Module[{numberOfInputParameters, putInputParameters},
Module[{numberOfInputParameters, putInputParameters,
setInputParameterDefaultArguments},
numberOfInputParameters = FSMathLink`GetNumberOfInputParameterRules[inputParameters];
putInputParameters = FSMathLink`PutInputParameters[inputParameters, "stdlink"];
setInputParameterDefaultArguments = FSMathLink`SetInputParameterDefaultArguments[inputParameters];
WriteOut`ReplaceInFiles[files,
{ "@numberOfInputParameters@" -> ToString[numberOfInputParameters],
"@putInputParameters@" -> IndentText[putInputParameters],
"@setInputParameters@" -> "",
"@setInputParameterArguments@" -> "",
"@setInputParameterArgumentTypes@" -> "",
"@setInputParameterDefaultArguments@" -> IndentText[setInputParameterDefaultArguments],
Sequence @@ GeneralReplacementRules[]
} ];
];
Expand Down
9 changes: 9 additions & 0 deletions templates/mathlink.cpp.in
Expand Up @@ -254,6 +254,15 @@ void FS@ModelName@GetInputParameters()

/******************************************************************/

int FS@ModelName@SetInputParameters()
{
@setInputParameters@

return 0;
}

/******************************************************************/

void FS@ModelName@CalculateSpectrum()
{
try {
Expand Down
11 changes: 11 additions & 0 deletions templates/mathlink.tm.in
Expand Up @@ -20,6 +20,7 @@
:Evaluate: FS@ModelName@SetSettings::usage = "Sets the settings for the @ModelName@ model spectrum generator.";

:Evaluate: FS@ModelName@GetInputParameters::usage = "Returns the current set of input parameters of the @ModelName@.";
:Evaluate: FS@ModelName@SetInputParameters::usage = "Sets input parameters of the @ModelName@.";

:Evaluate: FS@ModelName@CalculateSpectrum::usage = "Calculates the pole mass spectrum, given the input parameters set via FS@ModelName@SetInputParameters[].";
:Evaluate: FS@ModelName@CalculateSpectrum::error = "`1`";
Expand Down Expand Up @@ -151,6 +152,16 @@
:ReturnType: Manual
:End:

:Begin:
:Function: FS@ModelName@SetInputParameters
:Pattern: FS@ModelName@SetInputParameters[OptionsPattern[]]
:Arguments: { @setInputParameterArguments@ }
:ArgumentTypes: { @setInputParameterArgumentTypes@ }
:ReturnType: Integer
:End:

:Evaluate: Options[FS@ModelName@SetInputParameters] = { @setInputParameterDefaultArguments@ }

:Begin:
:Function: FS@ModelName@CalculateSpectrum
:Pattern: FS@ModelName@CalculateSpectrum[]
Expand Down

0 comments on commit 6381e87

Please sign in to comment.