问题标签 [marray]

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.

0 投票
2 回答
1654 浏览

haskell - 如何创建未装箱的可变数组实例

假设我有以下类型:

p>

有没有办法创建这样的实例之一:

p>

目前我将所有内容存储为 Word8,并使用(包装)fromEnum/toEnum 进行转换,但感觉不对。我需要严格和拆箱,因为我在内存中使用了一个大型数据结构(>1.2Go),我不能懒惰地加载它。如果我找不到任何解决方案,我将在 C++ 中重新实现所有内容,我希望在我当前的项目中避免这样做。

我已经在#haskell 上提出了这个问题,但没有得到回复,也许现在不是提问的好时机。

0 投票
1 回答
793 浏览

haskell - "Could not deduce (MArray (STUArray s) Int (ST s)) from context ()" when applying runST

I'm in the process of learning haskell and came across this problem:

Using Glasgow Haskell Compiler, Version 6.10.4, for Haskell 98, stage 2 booted by GHC version 6.10.1

Common beginning of the file

Using STArray (works)

Using STUArray (doesn't work)

But when I try to switch to unboxed arrays, I get an error message.

Error messages

and also:

After almost two hours of fiddling with the type annotations I hope someone can point me in the right direction. What on earth is going wrong?

Thank you for your time.

0 投票
1 回答
663 浏览

c++ - 英特尔 C++ 编译器无法处理深度模板?

我有一个使用marray库的 C++ 项目。目前,它可以在 Windows 7 x64 上使用 MinGW g++ 4.7 和 msvc2010 以及在 Linux Mint x64 上使用 g++ 4.7 进行编译和运行。我决定尝试一下适用于 Linux 的 Intel C++ compiler v. 12.1.4。它能够编译代码,但是当它尝试执行任何干扰表达式模板的行时(如 c = a + b 其中所有三个项都是矩阵),它会因分段错误而崩溃。此问题会影响应用程序的调试和发布版本。

我还尝试为 marray 库编译单元测试和教程代码,英特尔 C++ 编译代码但如果它有任何表达式模板则无法运行它。英特尔 C++ 是否真的与深度模板一样糟糕,还是我遗漏了什么?我是否需要设置任何特殊的编译器标志才能使模板表达式起作用?或者也许只是我正在使用的特定库有问题,而不是一般的表达式模板技术?

我还尝试在 n 上使用各种各样的 -ftemplate-depth- n 标志设置10 ^ 10的大得可笑的值,并且在没有分段错误的情况下运行我的应用程序和 marray 单元测试/教程仍然没有运气。

更新:这是来自上述库的教程-marray 的 gdb 日志,该库在调试模式下使用 icpc 编译。

看起来问题一般不是源于表达式模板技术,数字数组算术工作正常。当我尝试将一个数组添加到另一个数组时,就会出现问题。

更新。2:实际上整个事情看起来很像这里提到的问题。解决方案应该是重写 operator E&() { return static_cast(*this); } 变成类似 E& get_ref() { return static_cast(*this); 和 const 引用相同。当然,在代码中改变这些东西的用法。我会尽快尝试并报告结果。

0 投票
2 回答
455 浏览

haskell - MArray 特化为 STArray

我对在 Haskell 中使用多态性的 STArray 感到困惑。

假设我有以下设置

现在,我相信 thawData 的类型专门用于这种情况

但是,除非我将 thawData 的类型更改为显式使用 STArray,否则即使我尝试在 do 表达式的主体中显式键入它,这也不会编译。

那么到底发生了什么?为什么类型不能专门化?
我可以以某种方式更改 doSomething 的主体而不是 thawData 的类型吗?

谢谢!

0 投票
1 回答
177 浏览

arrays - 切片 IOArray(或一般的 MArray)

IOArray有没有一种方法可以有效地从或一般情况下构造切片(子数组视图)MArray?也就是说,取同一个数组,只是限制边界。签名可以是

例如,获取一个有边界的数组(1,1000)并创建一个视图,该视图只允许访问具有(500,700)原始数组边界的元素。我搜索了文档,但找不到任何此类功能。

0 投票
1 回答
179 浏览

arrays - 如何正确优化 MArray 函数以提高速度?

我正在为MArrays开发一个排序库。速度很重要,所以我想尽可能地优化它。

目前,我只是内排序功能。与未优化的代码相比,这将代码加速了 10 倍以上。但是,如果在多个地方使用这些函数,这很容易导致代码大小爆炸,并减慢编译速度。

唯一的另一种选择似乎是专门针对所有现有的 MArray 实例的函数。这也扩大了生成的代码,但只是增加了一个常数因子,这与函数的使用次数无关。问题是,是否有可能出现 MArray 的新实例?还是 MArray 如此特殊并且绑定到 Haskell 的内部结构,以便我可以确定其他模块不能定义新实例?

0 投票
1 回答
194 浏览

haskell - 重新审视具有约束类型的多态 STUArray

我想实现一个分数类型的动态规划算法多态;这是一个没有边界条件的简化一维版本:

约束不起作用;

总结一下,Could not deduce (MArray (STUArray s) e (ST s)) from the context forall s. MArray (STUArray s) e (ST s i)。请注意,将约束添加到resultArrayST只是将问题推到runSTUArray.

我目前知道四个有缺陷的解决方案:

  1. 避免 boxed STArrays 或简单的 non-monadic Arrays 的问题,也许使用seq和 bang 模式来缓解由此产生的内存问题。
  2. unsafeFreeze用and打破类型系统,unsafePerformIO该死的约束MArray IOUArray e IO工作正常。
  3. 解决方案使用类型类并为每个“不可装箱”类型编写实例来解决类似问题。
  4. 这个使用 GHC 重写规则为每种类型(和通用STArray版本)选择不同的功能。

但是,我问这个问题是希望像现代语言扩展这样ConstraintKinds可以让我表达我的原始代码的意图forall s. MArray (STUArray s) e (ST s)

0 投票
1 回答
58 浏览

api - Docusign API 与我的会话签名过程应用程序

我想将 docusign 与我的应用程序及其工作集成,如下面的链接所示。我将如何做到这一点,用户指示签署我的应用程序生成的文档并返回到我的应用程序。

http://loancosample.azurewebsites.net