R/t.R

Defines functions t.pauli_d t.pauli

Documented in t.pauli t.pauli_d

#' Matrix Transpose Method for Pauli Frames
#'
#' @param x a pauli frame
#'
#' @return a pauli_d object with transposed pauli frames
#' @export
#'
#' @examples
#' pf <- pauli()
#' t(pf)
t.pauli <- function(x){

  #Transpose each frame and convert back to data frame
  y <- lapply(x, function(x)as.data.frame(t(x)))

  #Change names of columns
  y <- lapply(y, `names<-`, c("x", "y"))

  #Change names of rows
  y <- lapply(y, `rownames<-`, c(1, 2))

  #Collect results in a list
  paulis <- list("sig0" = y$sig0, "sig1" = y$sig1,
                 "sig2" = y$sig2, "sig3" = y$sig3)

  #Make paulis a pauli_d object
  structure(paulis,
            class = "pauli_d"
  )

}

#' Matrix Transpose Method for Pauli_d Frames
#'
#' @param x a pauli_d frame
#'
#' @return a pauli_d object with transposed pauli_d frames
#' @export
#'
#' @examples
#' pf <- pauli()
#' pf <- opop(pf, function(x)i()*x)
#' t(pf)
t.pauli_d <- function(x){

  #Transpose each frame and convert back to data frame
  y <- lapply(x, function(x)as.data.frame(t(x)))

  #Change names of columns
  y <- lapply(y, `names<-`, c("x", "y"))

  #Change names of rows
  y <- lapply(y, `rownames<-`, c(1, 2))

  #Collect results in a list
  paulis <- list("sig0" = y$sig0, "sig1" = y$sig1,
                 "sig2" = y$sig2, "sig3" = y$sig3)

  #Make paulis a pauli_d object
  structure(paulis,
            class = "pauli_d"
  )

}
mncube/pauliframes documentation built on Dec. 21, 2021, 8:07 p.m.