0001 function getInstructions(obj, cppobj, get)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032 if (get == 'B')
0033
0034
0035
0036 if (~isempty(obj.grid))
0037
0038 fprintf(cppobj.fileMEX,sprintf(' Grid grid_%s(%s);\n', obj.grid.name, obj.grid.name));
0039 fprintf(cppobj.fileMEX,sprintf(' OCP %s(grid_%s);\n', obj.name, obj.grid.name));
0040
0041
0042 elseif(~isempty(obj.tStart))
0043
0044 if (~isempty(obj.N))
0045 fprintf(cppobj.fileMEX,sprintf(' OCP %s(%s, %s, %s);\n', obj.name, obj.tStart.name, obj.tEnd.name, obj.N.name));
0046 else
0047 fprintf(cppobj.fileMEX,sprintf(' OCP %s(%s, %s);\n', obj.name, obj.tStart.name, obj.tEnd.name));
0048 end
0049
0050 else
0051 fprintf(cppobj.fileMEX,sprintf(' OCP %s;\n', obj.name));
0052
0053 end
0054
0055
0056
0057
0058
0059 for i=1:length(obj.minMayerTerms)
0060 fprintf(cppobj.fileMEX,sprintf(' %s.minimizeMayerTerm(%s);\n', obj.name, obj.minMayerTerms{i}.toString));
0061 end
0062
0063 for i=1:length(obj.maxMayerTerms)
0064 fprintf(cppobj.fileMEX,sprintf(' %s.maximizeMayerTerm(%s);\n', obj.name, obj.maxMayerTerms{i}.toString));
0065 end
0066
0067 for i=1:length(obj.minLagrangeTerms)
0068 fprintf(cppobj.fileMEX,sprintf(' %s.minimizeLagrangeTerm(%s);\n', obj.name, obj.minLagrangeTerms{i}.toString));
0069 end
0070
0071 for i=1:length(obj.maxLagrangeTerms)
0072 fprintf(cppobj.fileMEX,sprintf(' %s.maximizeLagrangeTerm(%s);\n', obj.name, obj.maxLagrangeTerms{i}.toString));
0073 end
0074
0075 for i=1:length(obj.minLSQTermh)
0076 if (~isempty(obj.minLSQTermS{i}) && ~isempty(obj.minLSQTermr{i}))
0077 fprintf(cppobj.fileMEX,sprintf(' %s.minimizeLSQ(%s, %s, %s);\n', obj.name, obj.minLSQTermS{i}.name_m, obj.minLSQTermh{i}.name, obj.minLSQTermr{i}.name));
0078 elseif (~isempty(obj.minLSQTermr{i}))
0079 fprintf(cppobj.fileMEX,sprintf(' %s.minimizeLSQ(%s, %s);\n', obj.name, obj.minLSQTermh{i}.name, obj.minLSQTermr{i}.name));
0080 else
0081 fprintf(cppobj.fileMEX,sprintf(' %s.minimizeLSQ(%s);\n', obj.name, obj.minLSQTermh{i}.name));
0082 end
0083 end
0084
0085 for i=1:length(obj.minLSQEndTermh)
0086 if (~isempty(obj.minLSQEndTermS{i}) && ~isempty(obj.minLSQEndTermr{i}))
0087 fprintf(cppobj.fileMEX,sprintf(' %s.minimizeLSQEndTerm(%s, %s, %s);\n', obj.name, obj.minLSQEndTermS{i}.name_m, obj.minLSQEndTermh{i}.name, obj.minLSQEndTermr{i}.name));
0088 elseif (~isempty(obj.minLSQEndTermr{i}))
0089 fprintf(cppobj.fileMEX,sprintf(' %s.minimizeLSQEndTerm(%s, %s);\n', obj.name, obj.minLSQEndTermh{i}.name, obj.minLSQEndTermr{i}.name));
0090 else
0091 error('error minimizeLSQEndTerm write');
0092 end
0093 end
0094
0095
0096
0097
0098
0099 for i=1:length(obj.subjectoItems)
0100 fprintf(cppobj.fileMEX,sprintf(' %s.subjectTo(%s);\n', obj.name, obj.subjectoItems{i}));
0101 end
0102
0103 fprintf(cppobj.fileMEX,'\n');
0104 end
0105 end