C++ Objective AlgLib

C++ Objective AlgLib

本文关键字:AlgLib Objective C++      更新时间:2023-10-16

我有一个 C++ 代码。 我必须在目标 C 中使用。

double[,] x = new double[,]{{-1},{-0.8},{-0.6},{-0.4},{-0.2},{0},{0.2},{0.4},{0.6},{0.8},{1.0}};
double[] y = new double[]{0.223130,0.382893,0.582748,0.786628,0.941765,1.000000,0.941765,0.786628,0.582748,0.382893,0.223130};
double[] c = new double[]{0.3};
double epsf = 0;
double epsx = 0.000001;
int maxits = 0;
int info;
alglib::lsfitstate state;
alglib::lsfitreport rep;
double diffstep = 0.0001;    
//
// Fitting with weights
// (you can change weights and see how it changes result)
//
double[] w = new double[]{1,1,1,1,1,1,1,1,1,1,1};
alglib::lsfitcreatewf(x, y, w, c, diffstep, out state);
alglib::lsfitsetcond(state, epsf, epsx, maxits);
alglib::lsfitfit(state, function_cx_1_func, null, null);
alglib::lsfitresults(state, out info, out c, out rep);

我已经在最后用 .mm 调用了我的目标文件

但我得到不同的错误。(第一行 - 初始化 var 时的预期表达式)。

我不能 c++。但我只需要这个功能。

我希望这是这个问题的解决方案。https://gis.stackexchange.com/questions/74567/math-algorithm-for-n-amount-points-in-objective-c

数组声明的开头主要是 Java 代码,而不是 C、C++ 或 ObjC。

这将是 C/C++ 代码:

double x[][1] = {{-1},{-0.8},{-0.6},{-0.4},{-0.2},{0},{0.2},{0.4},{0.6},{0.8},{1.0}};
double y[] = {0.223130,0.382893,0.582748,0.786628,0.941765,1.000000,0.941765,0.786628,0.582748,0.382893,0.223130};
double c[] = {0.3};

但是,根据此处的lsfitcreatewf函数参考,您需要它属于 alglib::real_2d_array 类型。这里有一些如何生成此类数据的示例。

以下是有关如何使用 lsfit 子包的一些一般示例。