Learn R Programming

phylolm (version 2.6)

three.point.compute: Computations with a (generalized) three-point structured tree

Description

Computes \(P'V^{-1}Q\) and the \(\log(\det V)\) of a (generalized) three-point structured matrix.

Usage

three.point.compute(phy, P, Q = NULL, diagWeight = NULL, 
            check.pruningwise = TRUE, check.names = TRUE)

Arguments

phy

a rooted phylogenetic tree of type phylo with branch lengths, to represent the 3-point structured matrix \(V_0\). Note that the matrix of interest is \(V = D V_0 D\).

P,Q

two matrices.

diagWeight

a vector containing the diagonal elements of the diagonal matrix \(D\) if \(V\) has a generalized 3-point structure: \(V = D V_0 D\)

check.pruningwise

If FALSE, the tree is assumed to be in pruningwise order.

check.names

if FALSE, the row names of P, Q, and the names of diagWeight are assumed to be the same as the labels of the tips in the tree.

Value

vec11

\(1'V^{-1}1\).

P1

\(P'V^{-1}1\).

PP

\(P'V^{-1}P\).

Q1

\(Q'V^{-1}1\).

QQ

\(Q'V^{-1}Q\).

PQ

\(P'V^{-1}Q\).

logd

\(\log(\det V)\).

References

Ho, L. S. T. and An<e9>, C. (2014). "A linear-time algorithm for Gaussian and non-Gaussian trait evolution models". Systematic Biology 63(3):397-408.

See Also

transf.branch.lengths.

Examples

Run this code
# NOT RUN {
tre1 = rtree(500)
tre2 = transf.branch.lengths(phy=tre1, model="OUrandomRoot",
                             parameters = list(alpha = 0.5))
Q = rTrait(n=2,tre1)
y = rTrait(n=1,tre1)
P = cbind(1,y)
three.point.compute(tre2$tree,P,Q,tre2$diagWeight)
# }

Run the code above in your browser using DataLab