【问题标题】:Matrix Standard library矩阵标准库
【发布时间】:2010-01-04 05:20:41
【问题描述】:

c 中有没有 Matrix 的标准库。我可以在整个平台上实施。如果没有,请告诉我 Matrix 的操作系统依赖库。

【问题讨论】:

    标签: c


    【解决方案1】:

    so many

    特别是,您可能想查看GNU scientific library

    或者,您可以只使用implement your own 矩阵运算。


    重新跨平台:

    GSL 是非常跨平台的。据该网站称,它可以在大约 12 个操作系统(Solaris、Linux、darwin、各种 *BSD 和称为 SR8000 超级技术服务器的东西)上编译。我猜它也可以在嵌入式系统上编译。对于 Windows,您可以使用 cygwin 或 Gsl for Windows

    您打算使用哪些平台?

    【讨论】:

    • 我其实想要一个可以跨平台实现的标准库。
    • “我可以实现”是什么意思?您不想要一个已经实现的库,以便您可以使用它来对矩阵做任何您想做的事情吗?
    • @Arman - 请参阅上面的更新。 GSL 几乎可以在任何东西上运行。
    • 不,不要自己实现。很难正确地做到这一点。为 BLAS 使用包装器(例如 GSL,也包括普通的 CBlas)让您获得更好的性能一个数量级。
    • @Alexandre - 实现像 BLAS 这样的整个线性代数库可能很困难。但是,如果您只需要相加或相乘,那么实现起来几乎是微不足道的。您的解决方案可能不太通用,可能更慢,但比较 15 分钟的开发时间与 n 小时下载配置编译和集成线性代数库。这取决于需要,并且在这一点上 OP 并不具体。
    【解决方案2】:

    Meschach 似乎是唯一流行的基于 C 的矩阵库。然而,有大量基于 C++ 的矩阵库。

    然而,主要问题是您需要该库的目的是什么。如果对于数学线性代数,您应该找到一个线性代数库,这样您就可以将所有操作放在一个地方(基于 BLAS,例如spblas)。但是,如果您需要 matrix3 和 matrix4 类型来进行 3D 计算,您应该尝试找到一种针对 3x3 或 4x4 操作进行优化的类型,例如 this one)。

    【讨论】:

      猜你喜欢
      • 2011-05-31
      • 2021-05-18
      • 1970-01-01
      • 2015-05-20
      • 2017-04-06
      • 2014-01-22
      • 2018-10-12
      • 2010-10-09
      相关资源
      最近更新 更多