积累日常生活的点滴,开发过程的心得。

计算任意N次方根

一般代码里面都有sqrt来计算平方根,但是没有计算任意次方根的函数

https://worldmentalcalculation.com/using-logarithms-to-calculate-arbitra...

参考上面的代码,写一个简单的函数,N是N次方根,X是操作数,Result是结果。

result:=Power(10,Log10(X)/N);

okx的api真是烂

市价单居然不会成交,一直挂着那

http代理服务器的选择

先装的tinyproxy,然后每隔1个小时就会挂起来,连接用光了。
换成squid就没有问题了。

Openssl的Android静态库编译

懒得研究最新的编译脚本了
直接用别人编译好的库了
https://github.com/KDAB/android_openssl

无法修改C语言中const struct的成员

https://stackoverflow.com/questions/44533784/is-it-possible-to-change-a-...

原因是C编译器会把const的struct放到只读的内存保护区域,修改时会crash掉

DWM3001CDK固件编译问题

那玩意需要用Segger Embedded Studio IDE编译,下了个最新的6.34a,结果编译固件出现.default_config is larger than specified size 错误,降级到6.3就可以了。

另外JLink那个软件最新版的无法识别一些jlink-ob, 需要回退成6.14b才行,很奇怪

用imagemagick 批量转换图片格式

magick mogrify -format jpg *.png

Visual Leak Detector 支持vs2019

https://github.com/Azure/vld

最新的github。

使用gsl做最小二乘法的非线性拟合

拟合的函数方程是
y=alpha*exp(-kappa*x);

拟合后能正确算出alpha和kappa的值,用gsl写这个玩意好啰嗦,用python的curve_fit10行代码就能搞定。

  1. type
  2. PFitData=^TFitData;
  3. TFitData=record
  4. t:Pdouble;
  5. y:Pdouble;
  6. n:Integer;
  7. end;
  8.  
  9. function market(alpha,kappa, t:double):double;
  10. begin
  11. result:=alpha*exp(-kappa*t);
  12. end;
  13.  
  14. function func_f(x: Pgsl_vector; params: Pointer; f: Pgsl_vector): Integer;cdecl;
  15. var
  16. data:PFitData;
  17. alpha:double;
  18. kappa:double;
  19. i:Integer;
  20. t,yi,y:double;
  21. begin
  22. data:= PFitData(params);
  23. alpha := gsl_vector_get(x, 0);

Syndicate content