R/pauli.R

Defines functions pauli

Documented in pauli

#' pauli
#'
#' Call this constructor function to create an S3 object of class pauli. pauli
#' objects are lists with four objects:
#'
#'  sig0: a 2 x 2 data frame with values corresponding to the 2 x 2 identity matrix
#'  sig1: a 2 x 2 data frame with values corresponding to the 2 x 2 sigma1 Pauli matrix
#'  sig2: a 2 x 2 data frame with values corresponding to the 2 x 2 sigma2 Pauli matrix
#'  sig3: a 2 x 2 data frame with values corresponding to the 2 x 2 sigma3 Pauli matrix
#'
#' @return An S3 object of class pauli
#' @export
#'
#' @examples
#' #Create an object of class pauli
#' pf <- pauli()
pauli <- function(){

  #Create basic pauli frames
  sig0 <- data.frame("x" = c(1, 0),
                     "y" = c(0, 1))
  sig1 <- data.frame("x" = c(0, 1),
                     "y" = c(1, 0))
  sig2 <- data.frame("x" = c(0, i()),
                     "y" = c(-i(), 0))
  sig3 <- data.frame("x" = c(1, 0),
                     "y" = c(0, -1))

  #Collect pauli frames in a list
  paulis <- list("sig0" = sig0, "sig1" = sig1,
                 "sig2" = sig2, "sig3" = sig3)

  #Set attributes
  structure(paulis,
            class = "pauli"
  )
}
mncube/pauliframes documentation built on Dec. 21, 2021, 8:07 p.m.