Giter VIP home page Giter VIP logo

rcpp-api's Issues

References in Matrices

  • Matrix References
    • *Matrix::Row
    • *Matrix::Column
    • *Matrix::Sub
  • References vs. *Vector
    • References have a pointer to vector in matrix
    • *Vector or *Matrix uses a direct copy of row, col, or submat view via a clone().

Exceptions

  • Break down the 3 macro levels.
    • simple
    • exception
    • advanced
    • Note the C++98 restriction of 10 parameters and the lack of said restriction on C++11 due to variadic templating.
  • Details on the exception classes
    • simple
      • not_a_matrix
      • parse_error
      • not_s4
      • not_reference
      • not_initialized
      • no_such_field
      • not_a_closure
      • no_such_function
      • unevaluated_promise
    • exception
      • S4_creation_error
      • reference_creation_error
      • no_such_binding
      • binding_not_found
      • binding_is_locked
      • no_such_namespace
      • function_not_exported
      • eval_error
      • no_such_slot
    • advanced
      • not_compatible
      • index_out_of_bounds

Statistical Distributions

  • Introduction
    • Two namespaces R:: and Rcpp:: return either a scalar or vector.
    • Benefit of Rcpp:: default parameters are set.
    • Benefit of R:: change parameters of sample on each loop.
  • Support Distributions
    • Continuous Distributions
      • Beta Distribution
      • Cauchy Distribution
      • Chi-square Distribution
      • Non-central Chi-square Distribution
      • Exponential Distribution
      • F Distribution
      • Gamma Distribution
      • Logistic Distribution
      • Log Normal Distribution
      • Normal Distribution
      • Student’s T Distribution
      • Uniform Distribution
      • Weibull Distribution
    • Discrete Distributions
      • Binomial Distribution
      • Geometric Distribution
      • Hypergeometric Distribution
      • Negative Binomial Distribution
      • Poisson Distribution
      • Wilcoxon Signed Rank Distribution
      • Wilcox Distribution

Main Data Structures

  • RObject
    • Policy-based design
    • List main policies
  • Vector
    • 1D homogenous array
    • Policies
    • typedefs
    • constructors
    • warn about pointer structure
    • example creations (include clone)
  • Matrix
    • 2D homogeneous class built on vector
    • policies
    • typedefs
    • constructors
    • warn about pointer structure
    • example creations (include clone)
  • List (even though it's really just a Vector in disguise)
    • 1D heterogenous array typedef of vector
    • note different initialization values (not 0, defaults to NULL)
    • example creations of named/unnamed with shorthand _["a"]
  • DataFrame
    • 2D heterogenous typedef of DataFrame_Impl extends Vector
    • emphasis special creation
    • example creations of named with shorthand _["a"]
    • note that unnamed DataFrames throw an error.
  • Date
    • single unit connect w/ DateVector
    • constructors
    • examples
  • Datetime
    • single unit connect w/ DatetimeVector
    • constructors
    • examples

Member Functions

  • Operators
    • Add note emphasizing this is Sugar expressions.
    • Mathematical (e.g. +, -, ...)
    • Logical (e.g. >, !=, ...)
  • Dimensional Information
    • 2D: (.nrow(), .rows()), (.ncol(), .cols())
    • 1D: (.size(), .length()) [note: .length() is mentioned in STL container]
    • Exception: the DataFrame shenanigans... e.g. only .nrows() and .length()/.size() give col info
  • Element Access
    • Position Access: elements by numerical id
    • Categorical Access: elements by name
    • Logical Access: boolean method retrieve values. (cannot move from an 5 by 1)
  • Subset Views
    • Range
    • Subset by Row/Col by using _ e.g. A(0, _ )
    • Column and Row reference classes
  • Iterators
    • iterator accessors .begin() and .end()
    • ::iterator
    • ::const_iterator
  • STL-style container functions
    • Methods that do not recreate the object
    • Methods that do recreate the object
  • Static Member Functions
    • ::create(X, Y, ...)
    • ::get_na()
    • ::is_na
    • ::import(InputIterator first, InputIterator last)
    • ::import_transform(InputIterator first, InputIterator last, F f)
    • Matrix specific:
      • ::diag(int size, const U &diag_value)
      • ::eye(int n)
      • ::ones(int n)
      • ::zeros(int n)

Sugar Functions

  • Logical Operations
    • ifelse
    • all
    • any
    • is_false / is_true
  • Complex
    • Re
    • Im
    • Mod
    • Arg
    • Conj
  • Data Operations
    • sqrt
    • abs
    • cummax / cummin
    • cumprod / cumsum
    • diff
    • sum
    • pow
    • sign
    • trig functions (e.g. cos, acos, cosh)
    • head / tail
    • sample
  • NA/INF
    • Short introduction to special values that includes Kevin Ushey's Truth Table from SO
    • Pre-defined constants for NA, Inf, and NaN.
    • is_finite / is_infinite
    • is_na / is_nan
    • na_omit
    • noNA
  • Apply
    • lapply
    • mapply
    • sapply
  • Special Functions of Mathematics
    • gamma / lgamma
    • psigamma / digamma /trigamma/ tetragamma /pentagamma
    • factorial / lfactorial
    • choose / lchoose
    • beta / lbeta
  • Statistical Summaries
    • max / min
    • sd / var
    • mean
    • median
    • range
  • Uniqueness
    • duplicated / unique
    • sort_unique
    • table
    • match / self_match ( match( x, unique( x ) ) )
  • Set Operations
    • setequal
    • intersect
    • union_
    • setdiff
  • Data Obj Creation
    • seq_along / seq_len
    • rep / rep_each / rep_len
    • cbind
  • Rounding
    • ceiling / ceil
    • trunc
    • floor
    • round
    • signif
  • Matrix Specific
    • colSums / rowSums
    • colMeanss / rowMeans
    • outer
    • lower_tri / upper_tri
    • diag
    • row / col
  • Special Vector Ops
    • rev
    • pmax / pmin
    • clamp (e.g. pmax( b, pmin(x, a) ))
    • which_max / which_min
  • String Ops
    • collapse (paste0())
    • trimws

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.