bv <- function(x,ab,nbin,eye=c(-6,-8,5),opt=F) { if(nbin[1]<=0|nbin[2]<=0) stop("Number of bins along x or y axis nonpositive") if(ab[1,1]>=ab[1,2] | ab[2,1]>=ab[2,2]) stop("Array ab contains intervals with negative orientation") if (ncol(x) != 2 ) stop("Data matrix does not have exactly 2 columns") s3 <- sqrt(3.) par(usr=c(-s3,s3,-s3,s3)) nc <- integer(nbin[1]*nbin[2]) nf <- c(5,3,5*nbin[1]*nbin[2]) face <- single(nf[1]*nf[2]*nf[3]) out <- single(nf[1]*nf[2]*nf[3]) idir <- integer(5*nbin[1]*nbin[2]) tx <- single(nbin[1]+1) ty <- single(nbin[2]+1) dist <- single(nf[3]) iptr <- integer(nf[3]) square <- single(4*nf[3]) z <- .Fortran("bv", as.single(x), as.integer(nrow(x)), as.single(ab), as.integer(nbin), as.integer(nc), as.integer(nf), as.single(face), as.single(out), as.integer(idir), as.single(tx), as.single(ty), as.single(eye), as.single(dist), as.integer(iptr), as.single(square)) list(nc=nc,ab=ab) }