1 /* additive.c 2011-10-11 */
3 /* Copyright 2011 Andrei-Alin Popescu */
5 /* This file is part of the R-package `ape'. */
6 /* See the file ../COPYING for licensing issues. */
10 void additive(double *dd, int* np,int* mp,double *ret)//d received as dist object, -1 for missing entries
21 d[i-1][j-1]=d[j-1][i-1]=dd[give_index(i,j,n)];
22 if(dd[give_index(i,j,n)]>max)
24 max=dd[give_index(i,j,n)];
36 if(d[i][j]!=-1)continue;
42 if(d[i][k]==-1 || d[j][k]==-1)continue;
45 if(k==l || d[k][l]==-1 || d[i][l]==-1 || d[j][l]==-1)continue;
47 double mx=(((d[i][k]+d[j][l])>(d[i][l]+d[j][k]))?(d[i][k]+d[j][l]):(d[i][l]+d[j][k]));
49 if(mx<minimax){minimax=mx;}
54 d[i][j]=d[j][i]=minimax;