1 /* ultrametric.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 ultrametric(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;
44 double mx = d[i][k] > d[j][k] ? d[i][k] : d[j][k];
45 if(mx<minimax){minimax=mx;}
49 d[i][j]=d[j][i]=minimax;