Skip to content

Commit

Permalink
create input parameter getter
Browse files Browse the repository at this point in the history
  • Loading branch information
Alexander Voigt authored and Alexander Voigt committed Jul 10, 2016
1 parent 70c2a60 commit b200e40
Show file tree
Hide file tree
Showing 3 changed files with 41 additions and 2 deletions.
3 changes: 2 additions & 1 deletion meta/FlexibleSUSY.m
Expand Up @@ -1246,7 +1246,7 @@ corresponding tadpole is real or imaginary (only in models with CP
inputPars = {#[[1]], #[[3]]}& /@ inputParameters;
numberOfInputParameters = Total[CConversion`CountNumberOfEntries[#[[2]]]& /@ inputPars];
numberOfInputParameterRules = FSMathLink`GetNumberOfInputParameterRules[inputPars];
putInputParameters = FSMathLink`PutInputParameters[inputPars, "stdlink"];
putInputParameters = FSMathLink`PutInputParameters[inputPars, "link"];
setInputParameters = FSMathLink`SetInputParametersFromArguments[inputPars];
setInputParameterDefaultArguments = FSMathLink`SetInputParameterDefaultArguments[inputPars];
setInputParameterArgumentCTypes = FSMathLink`SetInputParameterArgumentCTypes[inputPars];
Expand All @@ -1264,6 +1264,7 @@ corresponding tadpole is real or imaginary (only in models with CP
putObservables = FSMathLink`PutObservables[requestedObservables, "stdlink"];
WriteOut`ReplaceInFiles[files,
{ "@numberOfInputParameters@" -> ToString[numberOfInputParameters],
"@numberOfInputParameterRules@" -> ToString[numberOfInputParameterRules],
"@putInputParameters@" -> IndentText[putInputParameters],
"@setInputParameters@" -> IndentText[setInputParameters],
"@setInputParameterArgumentCTypes@" -> IndentText[setInputParameterArgumentCTypes],
Expand Down
36 changes: 36 additions & 0 deletions templates/librarylink.cpp.in
Expand Up @@ -192,6 +192,17 @@ void put_sm_input_parameters(const Model_data& data, MLINK link)

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

void put_input_parameters(const Model_data& data, MLINK link)
{
MLPutFunction(stdlink, "List", @numberOfInputParameterRules@);

@putInputParameters@

MLEndPacket(link);
}

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

void calculate_spectrum(Model_data& data)
{
softsusy::QedQcd qedqcd(data.qedqcd);
Expand Down Expand Up @@ -378,6 +389,31 @@ DLLEXPORT int FS@ModelName@GetSMInputParameters(WolframLibraryData libData, MLIN

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

DLLEXPORT int FS@ModelName@GetInputParameters(WolframLibraryData libData, MLINK link)
{
long argc;
if (MLCheckFunction(link, "List", &argc) == 0 || argc != 1) {
std::cerr << "Error: FS@ModelName@GetInputParameters expects 1"
" argument (" << argc << " given)." << std::endl;
return LIBRARY_TYPE_ERROR;
}

Handle_id hid;
MLGetLongInteger(link, &hid);

try {
const Model_data data = find_data(hid);
put_input_parameters(data, link);
} catch (const flexiblesusy::Error& e) {
std::cerr << e.what() << std::endl;
return LIBRARY_FUNCTION_ERROR;
}

return LIBRARY_NO_ERROR;
}

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

DLLEXPORT int FS@ModelName@OpenHandle(
WolframLibraryData libData, mint Argc, MArgument* Args, MArgument Res)
{
Expand Down
4 changes: 3 additions & 1 deletion templates/librarylink.m.in
@@ -1,7 +1,8 @@
lib@ModelName@ = FileNameJoin[{Directory[], "models", "@ModelName@", "@ModelName@_librarylink.so"}];

FS@ModelName@GetSMInputParameters = LibraryFunctionLoad[lib@ModelName@, "FS@ModelName@GetSMInputParameters", LinkObject, LinkObject];
FS@ModelName@GetSettings = LibraryFunctionLoad[lib@ModelName@, "FS@ModelName@GetSettings", LinkObject, LinkObject];
FS@ModelName@GetSMInputParameters = LibraryFunctionLoad[lib@ModelName@, "FS@ModelName@GetSMInputParameters", LinkObject, LinkObject];
FS@ModelName@GetInputParameters = LibraryFunctionLoad[lib@ModelName@, "FS@ModelName@GetInputParameters", LinkObject, LinkObject];

FS@ModelName@OpenHandleLib = LibraryFunctionLoad[lib@ModelName@, "FS@ModelName@OpenHandle", {{Real,1}}, Integer];
FS@ModelName@CalculateSpectrum = LibraryFunctionLoad[lib@ModelName@, "FS@ModelName@CalculateSpectrum", {Integer}, Void];
Expand Down Expand Up @@ -113,5 +114,6 @@ FS@ModelName@OpenHandle[OptionsPattern[]] :=
handle = FS@ModelName@OpenHandle[];
Print[FS@ModelName@GetSettings[handle]];
Print[FS@ModelName@GetSMInputParameters[handle]];
Print[FS@ModelName@GetInputParameters[handle]];
FS@ModelName@CalculateSpectrum[handle];
FS@ModelName@CloseHandle[handle];

0 comments on commit b200e40

Please sign in to comment.