HELLINGER3<-function(fitrot, alat, along, rho) { #hellinger triple junction data analysis for data in splus object fitrot #initial guesses in the vectors alat, along, rho: #first element is side 1 to 2, second element side 1 to 3 call <- sys.call() nsect <- as.integer(fitrot$nsect) isect <- as.integer(fitrot$isect) iside <- as.integer(fitrot$iside)[isect<=nsect] ndat <- as.integer(length(iside)) nrow <- as.integer(ndat) xlat<-fitrot$xlat[isect<=nsect] xlong<-fitrot$xlong[isect<=nsect] sd<-fitrot$sd[isect<=nsect] data <- cbind(xlat,xlong,sd,sd) isect<-isect[isect<=nsect] idata <- cbind(iside, isect) ndim <- as.integer(2 * nsect + 6) xmat <- matrix(0.1, nrow = ndat, ncol = ndim) hatkap <- 1.0 etalat<-as.double(1:nsect) etalong<-etalat ier <- as.integer(0) alat2<-c(alat[1:2],.1) along2<-c(along[1:2],.1) rho2<-c(rho[1:2],.1) z2 <- .Fortran("hell4", ndat, nsect, nrow, idata, data, xmat, alat2, along2, rho2, hatkap,etalat,etalong, ier) alat2 <- z2[[7]] along2 <- z2[[8]] rho2 <- z2[[9]] ahat12 <- matrix(0.1, nrow = 3, ncol = 3) ahat12 <- .Fortran("trans7", alat2[1], along2[1], rho2[1], ahat12)[[4]] ahat13<-.Fortran("trans7", alat2[2], along2[2], rho2[2],ahat12)[[4]] ahat23<-.Fortran("trans7", alat2[3], along2[3], rho2[3],ahat12)[[4]] df <- as.double(ndat - 2 * nsect - 6) xmat <- z2[[6]] resi <- z2[[5]][, 4] xtx <- t(xmat) %*% xmat H11.2 <- xtx[1:6, 1:6] - xtx[1:6, 7:ndim] %*% solve(xtx[7:ndim, 7:ndim] ) %*% xtx[7:ndim, 1:6] c(fitrot,list(alat = alat2, along = along2, rho = rho2, etalat=z2[[11]], etalong = z2[[12]], resi = resi, ahat12 = ahat12, ahat13=ahat13, ahat23=ahat23, kappahat = z2[[10]], df = df, Xmat = xmat, H11.2 = H11.2, ier = z2[[13]], call = call, date = date())) }