📄 matrix.cpp
字号:
/*******************************************************************
* matrix.cpp - Implementation of handling matrix operation *
* Copyright by Xiangyu Dong *
*******************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
double **dmatrix(int nrl, int nrh, int ncl, int nch)
{
int i;
double **m;
m=(double **)malloc((unsigned)(nrh-nrl+1)*sizeof(double*));
if (!m) printf("allocation failure 1 in dmatrix()");
m-=nrl;
for(i=nrl; i<=nrh; i++) {
m[i]=(double *)malloc((unsigned)(nch-ncl+1)*sizeof(double));
if (!m[i]) printf("allocation failure 2 in dmatrix()");
m[i]-=ncl;
}
return m;
}
void free_dmatrix(double **m,int nrl,int nrh,int ncl,int nch)
{
int i;
for(i=nrh;i>=nrl;i--) free((double*) (m[i]+ncl));
free((double*) (m+nrl));
}
double *dvector(int nl, int nh)
{
double *v;
v=(double*)malloc((unsigned)(nh-nl+1)*sizeof(double));
if (!v) printf("allocation failure in dvector()");
return v-nl;
}
void free_dvector(double *v,int nl,int nh)
{
free((double*) (v+nl));
}
double norm_dvector(double *v, int nl, int nh)
{
double result = 0;
int i;
for (i=nl; i<=nh; i++)
result += v[i]*v[i];
result = sqrt(result);
return result;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -