meschach库的安装与编译

Meschach:用 C 的选择

对于用 C 编写代码的项目,Meschach(读作 me-shark)提供了例程,用于矩阵和向量的运算。它的优点是能在 Linux 和多数其它操作系统下编译,并且在版权保护下可公开获得,只要您作出例行的承认并报告错误。Meschach 可以解稠密或稀疏线性方程组、计算特征值和特征向量和解最小平方问题,另外还有其它功能。它为双精度数和复数提供了近 400 个函数。它提供的教程以说明性的小案例研究的形式介绍了这些函数。David Stewart 和 Zbigniew Leyk 通过一些主题的讨论来介绍 Meschach,这些主题包括超定方程组的广义的最小平方方程解答器(generalized least square equation solver for over-determined equations)和涉及稀疏矩阵的问题。他们的教程还包括三维矩阵和错误报告等稍稍高级的主题。

对象和类函数往往与代码关联,C 结构可能看起来有点神秘,所以 C 库往往不被作为可行的解决方案。但是作为对此的反击,这个库的组织很合理,所以不应不加思索地就舍弃它。在下载 Meschach 后过了一刻钟,我就可以制造、填充和显示矩阵了(在概念上等同于创建 Hello World!程序)。您可以参考一本名为“Meschach: Matrix Computations in C”的便宜的印刷品手册(请参阅本文末尾的 参考资料)。特别是测试程序“torture”,其中包括不少有益的线索。

矩阵可被容易地发送到文件或标准输出。Meschach 能计算快速傅立叶变换(Fast Fourier Transform)、提取列和行以及计算对称矩阵的特征值。您可以在矩阵中填充随机整数和复数。信不信由您,该库甚至还有矩阵相加的工具。Meschach 有一个返回在 [0,1) 之间的随机双精度数的函数,它是 Meschach 的一个特色,可用于简化明显的踏脚石程序的编写。虽然 Meschach 有一个用 1.0 填充矩阵的函数,但不幸的是,它没有用一个任意的双精度数填充矩阵的函数,也没有用随机双精度数填充矩阵的函数。不过,添加它们是容易的。

meschach安装

 第一步:下载meschach12.b,具体地址见:http://homepage.math.uiowa.edu/~dstewart/meschach/

  第二步:

       unzip -q mesch12b.zip -d mesch12b
        cd mesch12b
       ./configure
        make basic
        mkdir /usr/local/include/meschach 
                  ( or whatever you wish )
        cp *.h meschach.a /usr/local/include/meschach/
第三步:编译命令:
gcc -g m_test.c -I/usr/local/include/meschach/ /usr/local/include/meschach/meschach.a -o m_test
其中m_test.c代码如下。编译成功,用GDB调试,P A->me[1][1]查看矩阵A对应位置的值。
 1 #include    <stdio.h>
 2 #include    <math.h>
 3 #include    "matrix2.h"
 4 #include        "matlab.h"
 5 void main()
 6 {
 7 
 8     MAT *A = MNULL, *B = MNULL, *C = MNULL;   
 9     A = m_get(8,5);
10     B = m_get(3,9);
11     C = m_get(8,5);
12     m_rand(A);
13     m_rand(B);
14     C = m_copy(A,C);
15 }

 
  
编译可能出现的问题:
1.解压meschach12.b后,直接运行sudo ./configure 出现如下错误:
 
  

    /bin/sh^M:损坏的解释器: 没有那个文件或目录  

 
  

   解决方案:

    脚本文件保存时使用了DOS格式,用DOS2UNIX转为UNIX格式,也可以用vim打开,用:set ff=unix转换,不要在 Windows下编辑脚本文件,否则经常会遇到这种问题。
 sed -i 's/\r$//' server.sh
还可以用 vim 打开文件,然后执行冒号命令:
     :set ff=unix
     :wq
 
  
 
 
  
2.直接运行sudo ./configure 出现如下错误:
   configure error no acceptable cc found in $path 

  解决方案:

  sudo  env CC=/usr/bin/gcc ./configure
 
  
3.配置出现在1697行报错,具体错误忘记了。
 
  
 
 
  
 将configure中的#! /bin/sh改为#! /bin/bash
 
  
 
 
  
4.配置时候出现:
 
  
 
 
  
  syntax error near unexpected token `('
 
  

  解决方案:

 
  
这种情况发生的原因是因为你所处理的文件换行符是dos格式的"\r\n"
可以使用cat -v 文件名 来查看换行符是否是,如果是上述的,则行结尾会是^m
需要转换成linux/unix格式的"\n"
具体转换办法就是转换换行符
可以用sed命令处理一下文件,命令如下:
sed 's/\r//' 原文件 >转换后文件
 
  
 
 

转载于:https://www.cnblogs.com/maomao194313/p/3838362.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值