

   PPoossiittiivvee--DDeeffiinniittee MMaattrriixx wwiitthh CCoommppoouunndd SSyymmmmeettrryy SSttrruuccttuurree

        pdCompSymm(value, form, nam, data)

   AArrgguummeennttss::

      value: an optional initialization value, which can be any
             of the following: a code{pdMat} object, a posi-
             tive-definite matrix, a one-sided linear formula
             (with variables separated by `+'), a vector of
             character strings, or a numeric vector of length
             2. Defaults to `numeric(0)', corresponding to an
             uninitialized object.

       form: an optional one-sided linear formula specifying
             the row/column names for the matrix represented by
             `object'. Because factors may be present in
             `form', the formula needs to be evaluated on a
             data.frame to resolve the names it defines. This
             argument is ignored when `value' is a one-sided
             formula. Defaults to `NULL'.

        nam: an optional vector of character strings specifying
             the row/column names for the matrix represented by
             object. It must have length equal to the dimension
             of the underlying positive-definite matrix and
             unreplicated elements. This argument is ignored
             when `value' is a vector of character strings.
             Defaults to `NULL'.

       data: an optional data frame in which to evaluate the
             variables named in `value' and `form'. It is used
             to obtain the levels for `factors', which affect
             the dimensions and the row/column names of the
             underlying matrix. If `NULL', no attempt is made
             to obtain information on `factors' appearing the
             random effects model. Defaults to parent frame
             from which the function was called.

   DDeessccrriippttiioonn::

        This function is a constructor for the `pdCompSymm'
        class, representing a positive-definite matrix with
        compound symmetry structure (constant diagonal and con-
        stant off-diagonal elements). The underlying matrix is
        represented by 2 unrestricted parameters.  When `value'
        is `numeric(0)', an unitialized `pdMat' object, a one-
        sided formula, or a vector of character strings,
        `object' is returned  as an uninitialized `pdCompSymm'
        object (with just some of its  attributes and its class
        defined) and needs to have its coefficients assigned
        later, generally using the `coef' or {matrix} func-
        tions. If `value' is an initialized `pdMat' object,
        `object' will be constructed from `as.matrix(value)'.
        Finally, if `value' is a numeric vector of length 2, it
        is assumed to represent the unrestricted coefficients
        of the underlying positive-definite matrix.

   VVaalluuee::

        a `pdCompSymm' object representing a positive-definite
        matrix with compound symmetry structure, also inherit-
        ing from class `pdMat'.

   AAuutthhoorr((ss))::

        Jose Pinheiro and Douglas Bates

   SSeeee AAllssoo::

        `as.matrix.pdMat', `coef.pdMat', `matrix<-.pdMat'

   EExxaammpplleess::

        library(lme)
        pd1 <- pdCompSymm(diag(3) + 1, nam = c("A","B","C"))
        pd1

