Tag: javascript

在asm.js中的函数之间传递双数组

我有一个C函数编译成asm.js与以下参数: void myfunc(double v1[], double v2[], int v_size, double c) 它接受一个数组( v1 ),应用转换,然后用输出填充另一个相同大小的数组( v2 )。 我编译它,然后运行以下JS代码: v1 = new Array(1.0, 1.5, 2.0); v2 = Module._malloc(8 * v1.length); Module.ccall(“myfunc”, null, [“array”, “number”, “number”, “number”], [v1, v2, v1.length, 2]); 但是,当我运行getValue(v2, “double”)我得到1.297703e-318(这是错误的),当我运行getValue(v2 + 8, “double”)或getValue(v2 + 16, “double”)时返回0(这也是错误的)。 我已经将C函数简化为只是控制台注销v1的内容,并且它也打印出垃圾数据,所以至少读取传入的双数组存在问题。更具体的问题是: 如何正确地将双数组传入asm.js函数? 如何从asm.js函数正确返回双数组?

将C翻译为JavaScript

我在C中有一堆math / dsp算法。单个函数,每个文件一个函数,没有花哨的链接或包含或预处理器指令,只有c99和标准库调用(主要是memset和memmoves来处理数组复制等)。 翻译它们不是一个大问题,但需要时间。 我想知道是否有一些C – > Javascript翻译工具,以加快工作。 请注意我不需要一个完美的翻译,无论如何我会把手放在最后的结果上。 我需要的是一个简单的工具,可以帮助解决基本的“无聊”问题。 有人听说过这样的事吗? 编辑:似乎emscripten会做的伎俩。

是否有内置函数用逗号分隔C,C ++或JavaScript中的数字?

鉴于数字为12456789 ,我需要在没有太多编码的情况下输出12,456,789 。 我可以使用C,C ++或JavaScript中的任何内置函数吗?

包含范围内的随机浮点双

由于Math.random() (以及大多数伪随机数生成器,AFAIK)产生数字,因此我们可以很容易地获得所需范围[X,Y)内的随机浮点数(注意X是包含的,Y是独占的)和下面列出的函数在[0,1) : function randomInRange(min, max) { return Math.random() * (max-min) + min; } // Notice that we can get “min” exactly but never “max”. 我们怎样才能得到一个包含两个边界的期望范围内的随机数,即[X,Y] ? 我想我们可以通过“滚动” IEE-754浮点双精度的位来“增加”我们从Math.random() (或等效物)的值,以将最大可能值精确地设置为1.0,但这似乎很痛苦。做得对,特别是在不适合位操作的语言中。 有没有更简单的方法? (顺便说一下,为什么随机数生成器在[0,1)而不是[0,1]产生数字?) [编辑]请注意,我没有必要这样做,我完全清楚这种区别是迂腐的。 只是好奇并希望得到一些有趣的答案。 如果这个问题不合适,请随意投票结束。

如何在高海拔照片中有效地找到地平线?

我试图检测从高空拍摄的图像中的地平线,以确定相机的方向。 我也试图快速运行 – 理想情况下,我希望能够在Raspberry Pi上实时处理帧(即每秒几帧)。 到目前为止我采取的方法是基于这样一个事实:在高海拔地区,天空非常暗,如下: 我试过的是从整个图像中取样并将它们分成浅色和深色样本,并在它们之间画一条线。 然而,由于大气层的模糊性,这将地平线置于其实际位置之上: 这是我的代码(在Javascript中为了便于网络演示): function mag(arr) { return Math.sqrt(arr[0]*arr[0]+arr[1]*arr[1]+arr[2]*arr[2]) } // return (a, b) that minimize // sum_i r_i * (a*x_i+b – y_i)^2 function linear_regression( xy ) { var i, x, y, sumx=0, sumy=0, sumx2=0, sumy2=0, sumxy=0, sumr=0, a, b; for(i=0;i<xy.length;i++) { x = xy[i][0]; y = xy[i][2]; r = […]