@@ -916,36 +916,24 @@ OutputResult OutputResultFromStruct5T(const RAT::struct5_T result)
916916 // Copy problem to output
917917 OutputResult output_result;
918918 for (int32_T idx0{0 }; idx0 < result.reflectivity .size (0 ); idx0++) {
919- py::list inner_list;
920- for (int32_T idx1{0 }; idx1 < result.reflectivity .size (1 ); idx1++) {
921- auto tmp = result.reflectivity [idx0 + result.reflectivity .size (0 ) * idx1];
922- auto array = py::array_t <real_T, py::array::f_style>({tmp.f1 .size (0 ), tmp.f1 .size (1 )});
923- std::memcpy (array.request ().ptr , tmp.f1 .data (), array.nbytes ());
924- inner_list.append (array);
925- }
926- output_result.reflectivity .append (inner_list);
919+ auto tmp = result.reflectivity [idx0];
920+ auto array = py::array_t <real_T, py::array::f_style>({tmp.f1 .size (0 ), tmp.f1 .size (1 )});
921+ std::memcpy (array.request ().ptr , tmp.f1 .data (), array.nbytes ());
922+ output_result.reflectivity .append (array);
927923 }
928924
929925 for (int32_T idx0{0 }; idx0 < result.simulation .size (0 ); idx0++) {
930- py::list inner_list;
931- for (int32_T idx1{0 }; idx1 < result.simulation .size (1 ); idx1++) {
932- auto tmp = result.simulation [idx0 + result.simulation .size (0 ) * idx1];
926+ auto tmp = result.simulation [idx0];
933927 auto array = py::array_t <real_T, py::array::f_style>({tmp.f1 .size (0 ), tmp.f1 .size (1 )});
934928 std::memcpy (array.request ().ptr , tmp.f1 .data (), array.nbytes ());
935- inner_list.append (array);
936- }
937- output_result.simulation .append (inner_list);
929+ output_result.simulation .append (array);
938930 }
939931
940932 for (int32_T idx0{0 }; idx0 < result.shiftedData .size (0 ); idx0++) {
941- py::list inner_list;
942- for (int32_T idx1{0 }; idx1 < result.shiftedData .size (1 ); idx1++) {
943- auto tmp = result.shiftedData [idx0 + result.shiftedData .size (0 ) * idx1];
933+ auto tmp = result.shiftedData [idx0];
944934 auto array = py::array_t <real_T, py::array::f_style>({tmp.f1 .size (0 ), tmp.f1 .size (1 )});
945935 std::memcpy (array.request ().ptr , tmp.f1 .data (), array.nbytes ());
946- inner_list.append (array);
947- }
948- output_result.shiftedData .append (inner_list);
936+ output_result.shiftedData .append (array);
949937 }
950938
951939 for (int32_T idx0{0 }; idx0 < result.layerSlds .size (0 ); idx0++) {
@@ -981,8 +969,18 @@ OutputResult OutputResultFromStruct5T(const RAT::struct5_T result)
981969 output_result.resampledLayers .append (inner_list);
982970 }
983971
972+ for (int32_T idx0{0 }; idx0 < result.fitNames .size (0 ); idx0++) {
973+ auto tmp = result.fitNames [idx0];
974+ std::string str (tmp.f1 .data (), tmp.f1 .size (1 ));
975+ output_result.fitNames .append (str);
976+ }
977+
978+ output_result.fitParams = py::array_t <real_T>(result.fitParams .size (1 ));
979+ auto buffer = output_result.fitParams .request ();
980+ std::memcpy (buffer.ptr , result.fitParams .data (), output_result.fitParams .size ()*sizeof (real_T));
981+
984982 output_result.contrastParams .backgroundParams = py::array_t <real_T>(result.contrastParams .backgroundParams .size (0 ));
985- auto buffer = output_result.contrastParams .backgroundParams .request ();
983+ buffer = output_result.contrastParams .backgroundParams .request ();
986984 std::memcpy (buffer.ptr , result.contrastParams .backgroundParams .data (), output_result.contrastParams .backgroundParams .size ()*sizeof (real_T));
987985
988986 output_result.contrastParams .scalefactors = py::array_t <real_T>(result.contrastParams .scalefactors .size (0 ));
@@ -1357,7 +1355,7 @@ PYBIND11_MODULE(rat_core, m) {
13571355 .def_readwrite (" shiftedData" , &OutputResult::shiftedData)
13581356 .def_readwrite (" layerSlds" , &OutputResult::layerSlds)
13591357 .def_readwrite (" sldProfiles" , &OutputResult::sldProfiles)
1360- .def_readwrite (" resampledLayers) " , &OutputResult::resampledLayers)
1358+ .def_readwrite (" resampledLayers" , &OutputResult::resampledLayers)
13611359 .def_readwrite (" calculationResults" , &OutputResult::calculationResults)
13621360 .def_readwrite (" contrastParams" , &OutputResult::contrastParams)
13631361 .def_readwrite (" bestFitParams" , &OutputResult::fitParams)
0 commit comments