biod.pnpi.spb.ru
/
alexxy
/
gromacs.git
/ blob
commit
grep
author
committer
pickaxe
?
search:
re
95e62dd88b3c375ec49738563a00b9d0c031cbb2
[alexxy/gromacs.git]
/
src
/
gmxlib
/
gmx_lapack
/
slamrg.c
1
#include "gmx_lapack.h"
2
3
4
/* LAPACK */
5
6
7
void
8
F77_FUNC(slamrg,SLAMRG)(int *n1,
9
int *n2,
10
float *a,
11
int *dtrd1,
12
int *dtrd2,
13
int *index)
14
{
15
int n1sv = *n1;
16
int n2sv = *n2;
17
int i,ind1,ind2;
18
19
if(*dtrd1>0)
20
ind1 = 0;
21
else
22
ind1 = *n1-1;
23
24
if(*dtrd2>0)
25
ind2 = *n1;
26
else
27
ind2 = *n1+*n2-1;
28
29
i = 0;
30
31
while(n1sv>0 && n2sv>0) {
32
if(a[ind1]<=a[ind2]) {
33
index[i] = ind1 + 1;
34
i++;
35
ind1 += *dtrd1;
36
n1sv--;
37
} else {
38
index[i] = ind2 + 1;
39
i++;
40
ind2 += *dtrd2;
41
n2sv--;
42
}
43
}
44
45
if(n1sv==0) {
46
for(n1sv=1;n1sv<=n2sv;n1sv++) {
47
index[i] = ind2 + 1;
48
i++;
49
ind2 += *dtrd2;
50
}
51
} else {
52
for(n2sv=1;n2sv<=n1sv;n2sv++) {
53
index[i] = ind1 + 1;
54
i++;
55
ind1 += *dtrd1;
56
}
57
}
58
return;
59
}