]> git.donarmstrong.com Git - ape.git/commitdiff
new as.list.DNAbin
authorparadis <paradis@6e262413-ae40-0410-9e79-b911bd7a66b7>
Tue, 13 Jul 2010 12:21:24 +0000 (12:21 +0000)
committerparadis <paradis@6e262413-ae40-0410-9e79-b911bd7a66b7>
Tue, 13 Jul 2010 12:21:24 +0000 (12:21 +0000)
git-svn-id: https://svn.mpl.ird.fr/ape/dev/ape@125 6e262413-ae40-0410-9e79-b911bd7a66b7

ChangeLog
DESCRIPTION
R/DNA.R
src/rTrait.c

index 8df6cc8b7aa06925ce5d54d8928a1742363128c8..5e2a0fadeb08e215ea684f3ff9ec397d04286b3d 100644 (file)
--- 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
 
 
index e7753727fda2b6571a09ef3d4dfd65b691179a47..26e5e3a7e07540d7fb21ee8c534f2f394909f87c 100644 (file)
@@ -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 <Emmanuel.Paradis@ird.fr>
diff --git a/R/DNA.R b/R/DNA.R
index dea2d60ddffbb907e575fa2596de76b83ab7ef48..8b016caad40dc9acb8014c4889bee52fa38c2bf0 100644 (file)
--- 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
 {
index 2e7371f850f808ec54abcfef8479f2d0629b3778..e5922030774e2a76fcb662c44ebaf96dc3ceddcc 100644 (file)
@@ -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;