From 92ef6853c5cb0e730dad1af9961064239a1d375f Mon Sep 17 00:00:00 2001 From: paradis Date: Tue, 13 Jul 2010 12:21:24 +0000 Subject: [PATCH] new as.list.DNAbin git-svn-id: https://svn.mpl.ird.fr/ape/dev/ape@125 6e262413-ae40-0410-9e79-b911bd7a66b7 --- ChangeLog | 9 +++++++++ DESCRIPTION | 4 ++-- R/DNA.R | 16 +++++++++++++++- src/rTrait.c | 4 ++-- 4 files changed, 28 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8df6cc8..5e2a0fa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ + CHANGES IN APE VERSION 2.5-4 + + +NEW FEATURES + + o There is now an 'as.list' method for the class "DNAbin". + + + CHANGES IN APE VERSION 2.5-3 diff --git a/DESCRIPTION b/DESCRIPTION index e775372..26e5e3a 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: ape -Version: 2.5-3 -Date: 2010-05-27 +Version: 2.5-4 +Date: 2010-07-13 Title: Analyses of Phylogenetics and Evolution Author: Emmanuel Paradis, Ben Bolker, Julien Claude, Hoa Sien Cuong, Richard Desper, Benoit Durand, Julien Dutheil, Olivier Gascuel, Christoph Heibl, Daniel Lawson, Vincent Lefort, Pierre Legendre, Jim Lemon, Yvonnick Noel, Johan Nylander, Rainer Opgen-Rhein, Korbinian Strimmer, Damien de Vienne Maintainer: Emmanuel Paradis diff --git a/R/DNA.R b/R/DNA.R index dea2d60..8b016ca 100644 --- a/R/DNA.R +++ b/R/DNA.R @@ -1,4 +1,4 @@ -## DNA.R (2010-05-17) +## DNA.R (2010-07-13) ## Manipulations and Comparisons of DNA Sequences @@ -91,6 +91,20 @@ as.matrix.DNAbin <- function(x, ...) x } +as.list.DNAbin <- function(x, ...) +{ + if (is.list(x)) return(x) + if (is.vector(x)) obj <- list(x) + else { # matrix + n <- nrow(x) + obj <- vector("list", n) + for (i in 1:n) obj[[i]] <- x[i, ] + names(obj) <- rownames(x) + } + class(obj) <- "DNAbin" + obj +} + rbind.DNAbin <- function(...) ### works only with matrices for the moment { diff --git a/src/rTrait.c b/src/rTrait.c index 2e7371f..e592203 100644 --- a/src/rTrait.c +++ b/src/rTrait.c @@ -1,4 +1,4 @@ -/* rTrait.c 2010-05-26 */ +/* rTrait.c 2010-06-23 */ /* Copyright 2010 Emmanuel Paradis */ @@ -22,7 +22,7 @@ void rTraitCont(int *model, int *Nedge, int *edge1, int *edge2, double *el, break; case 2 : for (i = *Nedge - 1; i >= 0; i--) { GetRNGstate(); - x[edge2[i]] = x[edge1[i]] + (sigma[i]*norm_rand() - alpha[i]*(x[edge1[i]] - theta[i])) * el[i]; /* need sqrt(el[i]) ? */ + x[edge2[i]] = x[edge1[i]] + sqrt(el[i])*(sigma[i]*norm_rand() - alpha[i]*(x[edge1[i]] - theta[i])); PutRNGstate(); } break; -- 2.39.2