From 7b578741e58e2f6618edd729900560a91f2403b1 Mon Sep 17 00:00:00 2001 From: chriscrsmith Date: Thu, 30 Apr 2026 12:22:42 -0400 Subject: [PATCH 1/2] changed numerical precision --- R/model.comparison.R | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/R/model.comparison.R b/R/model.comparison.R index 23176ca..e72150e 100644 --- a/R/model.comparison.R +++ b/R/model.comparison.R @@ -288,8 +288,8 @@ xval.make.data.block <- function(K, data.partition, coords, spatial, geoDist = N check.data.partitions.covmats <- function(args){ data.list1 <- lapply(args[["data.partitions"]],function(x){x[[1]]$data}) data.list2 <- lapply(args[["data.partitions"]],function(x){x[[2]]$data}) - if(!all(unlist(lapply(data.list1,function(x){isSymmetric(x)}))) | - !all(unlist(lapply(data.list2,function(x){isSymmetric(x)})))){ + if(!all(unlist(lapply(data.list1,function(x){isSymmetric(x, tol = 1e-10)}))) | + !all(unlist(lapply(data.list2,function(x){isSymmetric(x, tol = 1e-10)})))){ stop("\nyou must specify symmetric matrices for the \"data\" elements of the data partitions list\n\n") } if(any(unlist(lapply(data.list1,function(x){any(is.na(x))}))) | From 4ee5d49701118ad7b42ffaf9ca0327f88b95a3cb Mon Sep 17 00:00:00 2001 From: chriscrsmith Date: Fri, 1 May 2026 08:37:46 -0400 Subject: [PATCH 2/2] (mat+t(mat))/2 and change tolerance back to default --- R/model.comparison.R | 4 ++-- R/run.conStruct.R | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/R/model.comparison.R b/R/model.comparison.R index e72150e..23176ca 100644 --- a/R/model.comparison.R +++ b/R/model.comparison.R @@ -288,8 +288,8 @@ xval.make.data.block <- function(K, data.partition, coords, spatial, geoDist = N check.data.partitions.covmats <- function(args){ data.list1 <- lapply(args[["data.partitions"]],function(x){x[[1]]$data}) data.list2 <- lapply(args[["data.partitions"]],function(x){x[[2]]$data}) - if(!all(unlist(lapply(data.list1,function(x){isSymmetric(x, tol = 1e-10)}))) | - !all(unlist(lapply(data.list2,function(x){isSymmetric(x, tol = 1e-10)})))){ + if(!all(unlist(lapply(data.list1,function(x){isSymmetric(x)}))) | + !all(unlist(lapply(data.list2,function(x){isSymmetric(x)})))){ stop("\nyou must specify symmetric matrices for the \"data\" elements of the data partitions list\n\n") } if(any(unlist(lapply(data.list1,function(x){any(is.na(x))}))) | diff --git a/R/run.conStruct.R b/R/run.conStruct.R index c91c8eb..bfd1c2b 100644 --- a/R/run.conStruct.R +++ b/R/run.conStruct.R @@ -307,7 +307,7 @@ calc.covariance <- function(freqs){ (1/2) * outer( colMeans(x,na.rm=TRUE), 1-colMeans(x,na.rm=TRUE), "*" ) - (1/2) * outer(1-colMeans(x,na.rm=TRUE), colMeans(x,na.rm=TRUE), "*") + 1/4 diag(allelic.covariance) <- 0.25 - return(allelic.covariance) + return((allelic.covariance + t(allelic.covariance))/2) } pos.def.check <- function(obsCov){