⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 orthog.cpp

📁 一个画有向图的程序。里面含有力导引画图算法等多个经典算法。
💻 CPP
字号:
#include <malloc.h>
#include "orthog.h"
#include "..\structs.h"
#include "utils_rqi.h"

/* Orthogonalize a double vector to all one's */
void      orthog1(double   *x, int  beg, int end)
{
    int       i;
    double   *pntr;
    double    sum;
    int       len;

    len = end - beg + 1;
    sum = 0.0;
    pntr = x + beg;
    for (i = len; i; i--) {
	sum += *pntr++;
    }
    sum /= len;
    pntr = x + beg;
    for (i = len; i; i--) {
	*pntr++ -= sum;

    }
}


void      orthogvec(
							double   *vec1,		     /* vector to be orthogonalized */
							int       beg, int end,	 /* start and stop range for vector */
							double   *vec2			/* vector to be orthogonalized against */
							)
{
    double    alpha;
    
    alpha = -dot(vec1, beg, end, vec2) / dot(vec2, beg, end, vec2);
    scadd(vec1, beg, end, alpha, vec2);
}



void   orthogonalize(
							double   *vec,			/* vector to be orthogonalized */
							int       n,			/* length of the columns of orth */
							struct orthlink *orthlist	/* set of vectors to orthogonalize against */
							)
{
    struct orthlink *curlnk;
    
    curlnk = orthlist;
    while (curlnk != NULL) {
	orthogvec(vec, 1, n, curlnk->vec);
	curlnk = curlnk->pntr;
    }
}


/* Allocate space for new orthlink, double version. */
struct orthlink *makeorthlnk()
{
    struct orthlink *newlnk;
    
    newlnk = (struct orthlink *) malloc(sizeof(struct orthlink));
    return (newlnk);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -