问题标签 [number-crunching]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - 需要设计一个数字运算算法
我偶然发现了这个问题:
7 7 的幂是 823543。7 的哪个更高的幂以 823543 结尾?
我应该怎么做?我想出的那个非常慢,它不断乘以 7 并检查结果的最后 6 位是否匹配。
我尝试了 Lou 的代码:
CPU 听起来像一个压力锅,但无法得到答案:(
erlang - 数字运算服务器的编程语言
我正在寻找一种能够很好地在多处理器和分布式系统上扩展的编程语言,并且能够与 GPU 一起很好地进行数字运算。你认为,Erlang 和 CUDA 是一个很好的搭配吗?
LE:我想用它来做图像处理:特征检测、捆绑调整和场景重建;所以它是相当平行的。GPU 将完成计算密集型部分,而 Erlang 将只管理任务并打乱数据。
haskell - 在 Haskell 中内联或不内联
我有几个数字运算操作占 CPU 时间的很大一部分。这种操作的一个例子是这个函数:
所以,我想知道是否有一些规则可以遵循关于何时应该内联函数以提高性能。REPA 作者建议:
将 INLINE 编译指示添加到代码中的所有叶函数,尤其是计算数字结果的叶函数。非内联惰性函数调用每个可能花费超过 50 个周期,而每个数字运算符只花费一个(或更少)。内联叶函数还确保它们专门用于适当的数字类型。
这些指示是否也适用于其余的数值计算或仅适用于数组计算?还是有更通用的指南来决定何时应该内联函数?
请注意这篇文章:有什么理由不对函数使用 INLINABLE 杂注吗?没有直接解决程序员提供的提示是否真正帮助编译器优化代码的问题。
haxe - I/O 的可用性和大型数据集的处理
我正在尝试找出一个项目(完全免费和开源)的用途,这将使其他程序员更容易访问某些遗留数据。我将尽量不详细介绍,但数据集包含大量浮点(32 位)数组以及各种形式的伴随数据。
我的想法是为使用 C++、Java、Python 和 C# 甚至其他语言编程的任何人提供几个库/DLL 等及其接口。我自己编写了大多数带有“C”的编程语言。
我的搜索使我找到了 Haxe,我发现这是一种非常有趣的方法。但是......我发现很难评估 Haxe 对这样一项事业的有用性。
是否有人在生成数字运算、数据切片、技术软件层方面有任何经验,以及 Haxe 是否真的会为命名语言提供良好、可用的接口?
我试图通过这样做来获得一些答案,但学习曲线非常陡峭。尚未找到如何生成 C++ 头文件和随附的库。更不用说所有的软件工程位了,比如这些库有什么依赖关系?
prolog - 矩阵乘法序言
我在网上找到了这段代码,用于 Prolog 中的矩阵乘法,任何有 Prolog 经验的人可以向我解释一下吗?
c++ - 在 C++ 类中声明数组数据
我正在创建一个需要存储不同数组(如数据)的类。这些数组的大小是可变的,但类中的所有数组都具有相同的大小。这些数组稍后将用于类提供的方法中的数字运算。
在类中声明此类数据的最佳/标准方式是什么?
解决方案 1 – 原始数组
解决方案 2 –std::vector
对于每个阵列
解决方案 3 -struct
存储每个顶点并具有std::vector
该结构的A
作为初学者,我的结论是:
解决方案 1 的性能最好,但最难实现。
解决方案 3 会更优雅且更易于实现,但在执行某些计算时会遇到问题,因为信息不是数组格式。这意味着接收数组/向量的数字常规函数将不起作用(我需要创建临时向量才能进行数字运算)。
解决方案 2 可能是中途。
对于第四个解决方案的任何想法将不胜感激。
prolog - 使用 Prolog 数组的矩阵乘法
这可能并不明显,但 Prolog 还提供了开箱即用的数组。Prolog 复合有一个函子和许多参数。这意味着我们可以表示一个数组,例如:
用以下 Prolog 化合物替换 Prolog 列表:
优点是从整数索引更快地访问元素。这种表示可以用来实现矩阵乘法吗?