R/bulding_blocks.R

#####
###spaces
#####
if( FALSE ) {
# BayesSpace <- function(referenceMeasure) {
#   structure(list(referenceMeasure=referenceMeasure),
#             class="BayesSpace")
# } IN CLASSES.R


# L2Space <- function(referenceMeasure) {
#   structure(list(referenceMeasure=referenceMeasure),
#   class="L2Space")
# } IN CLASSES.R

#####
### basis
#####

BayesSpaceBasis = function(BayesSpace,func,A,S) {
  structure(list(BayesSpace=BayesSpace,
                 func=func,   # G: the function that is evaluated
                              # I: function that defines the basis system (a system of basis functions)(?)
                 A=A,         # G: this is matrix transforming the evaluated values
                              # I: essentially the  of basis coefficients(?)
                 S=S),        # scalar product of basis elements (simple for orthogonal)
                              # S is after the transformation (through A)
  class="BayesSpaceBasis")
}


# B-spline basis for BayesSpace (???)
# BayesSpaceSplineBasis = function(BayesSpaceBasis,knots,degree) {
#   structure(list(BayesSpaceBasis=BayesSpaceBasis, #the BayesSpaceBasis object
#                  knots=knots,                     # a vector of knots
#                  degree=degree),                  # degree of the piecewise polynomials
#   class=c("BayesSpaceSplineBasis","BayesSpaceBasis"))
# }

# # B-spline basis for BayesSpace(?)
# BayesSpaceSplineBasis = function(BayesSpaceBasis,knots,degree) {
#   structure(list(BayesSpaceBasis=BayesSpaceBasis, #the BayesSpaceBasis object
#                  knots=knots,                     # a vector of knots
#                  degree=degree),                  # degree of the piecewise polynomials
#   class=c("BayesSpaceSplineBasis","BayesSpaceBasis"))
# } AS BayesSpaceBasis in CLASSES.R

#####
### data types
#####

BData = function(X,BayesSpace,...) UseMethod("BData")
BDataSample = function(X,BayesSpace=getBayesSpace(basis),basis=getBayesSpaceBasis(X,BayesSpace)) {
  structure(X,
            basis=basis,
            BayesSpace=BayesSpace,
            class=c("BDataSample","BData"))
}

BDataPDF = function(X,BayesSpace=getBayesSpace(basis),basis=getBayesSpaceBasis(X,BayesSpace)) {
  if( ! is.list(X) ) {
    X=list(X)
  }
  stopifnot(all(sapply(X,is.function)))
  structure(X,
            basis=basis,
            BayesSpace=BayesSpace,
            class=c("BDataPDF","BData"))
}

BDataCDF = function(X,BayesSpace=getBayesSpace(basis),basis=getBayesSpaceBasis(X,BayesSpace)) {
  if( ! is.list(X) ) {
    X=list(X)
  }
  stopifnot(all(sapply(X,is.function)))
  structure(X,
            basis=basis,
            BayesSpace=BayesSpace,
            class=c("BDataCDF","BData"))
}

}

Try the DistributionalDDA package in your browser

Any scripts or data that you put into this service are public.

DistributionalDDA documentation built on Oct. 20, 2026, 5:06 p.m.