| Version: | 0.1.3 |
| Title: | Scientific Computation Using R |
| Description: | A collection of undergraduate level mathematical routines for quantitative work, covering calculus, distribution functions, random variate generation, linear algebra, differential equations and optimization, sized for one semester. |
| Depends: | R (≥ 3.0.0) |
| Copyright: | 2018-2026, Kyun-Seop Bae |
| License: | GPL-3 |
| Encoding: | UTF-8 |
| NeedsCompilation: | no |
| URL: | https://github.com/ksbae/mathr |
| BugReports: | https://github.com/ksbae/mathr/issues |
| Packaged: | 2026-08-31 05:38:17 UTC; Kyun-SeopBae |
| Author: | Kyun-Seop Bae [aut, cre] |
| Maintainer: | Kyun-Seop Bae <k@acr.kr> |
| Repository: | CRAN |
| Date/Publication: | 2026-09-10 15:10:02 UTC |
Binary to Decimal Format
Description
Transforms a binary IEEE 754 format value stored in an arry to a decimal value.
Usage
Bin2Dec(b)
Arguments
b |
a binary value stored in an array with IEEE 754 format |
Details
IEEE 754 defined how the computer present float point number in a binary format. This transforms binary format to decimal value.
Value
A decimal value with attribute "Expression"
Author(s)
Kyun-Seop Bae <k@acr.kr>
References
IEEE 754
Examples
Bin2Dec(rep(0, 32)) # +0.0
Bin2Dec(c(1, rep(0, 31))) # -0.0
Bin2Dec(c(0, rep(1, 8), rep(0, 23))) # +Inf
Bin2Dec(c(1, rep(1, 8), rep(0, 23))) # -Inf
Bin2Dec(c(0, rep(1, 8), rep(1, 23))) # NaN
Bin2Dec(c(1, rep(1, 8), rep(1, 23))) # NaN
Bin2Dec(c(1, rep(1, 30), 0)) # NaN
Bin2Dec(c(0, 0,1,1,1,1,1,1,1,1,1,1, 0,0,0,0, rep(0,48))) # +1
Bin2Dec(c(1, 0,1,1,1,1,1,1,1,1,1,1, 0,0,0,0, rep(0,48))) # -1
Bin2Dec(c(0, 0,1,1,1,1,1,1,1,1,1,1, 1,0,0,0, rep(0,48))) # 1.5
Bin2Dec(c(0, 1,0,0,0,0,0,0,0,0,0,0, 0,0,0,0, rep(0,48))) # 2
Bin2Dec(c(0, 1,0,0,0,0,0,0,0,0,0,1, 1,0,1,0, rep(0,48))) # 6.5
Check function input and output types
Description
Check the input and output of a function be a scalar, a vector, or a matrix.
Usage
ChkFx(func, x)
Arguments
func |
function to be checked |
x |
given input |
Details
This is to check the types (scalar, vector, matrix) of a function input and output.
Value
CaseNo |
Case number |
minInput |
minimal input type |
minOutput |
minimal output type |
Given |
type of given value |
Repeat |
repeated evaluation of the function |
Gradient |
type of gradient output |
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
fx0 = function(x) {
if (length(x) > 1) return(NULL)
return(x*x)
}
fx1 = function(x) x*x # independent each other (elementwise operation only)
fx2 = function(x) sum(x)
fx3 = function(x) c(sum(x), mean(x)) # c(mean(x), sd(x))
fx4 = function(x) {
if (is.vector(x)) { Result = sum(x)
} else if (is.matrix(x)) { Result = rowSums(x)
} else { Result = NULL }
return(Result)
}
fx5 = function(x) {
if (is.vector(x)) { Result = c(sum(x), mean(x))
} else if (is.matrix(x)) { Result = cbind(rowSums(x), rowMeans(x))
} else { Result = NULL }
return(Result)
}
ChkFx(fx1, 3)
ChkFx(fx1, 1:3)
ChkFx(fx2, 3)
ChkFx(fx2, 1:3)
ChkFx(fx3, 3)
ChkFx(fx3, 1:3)
ChkFx(fx4, 1:3)
ChkFx(fx4, matrix(1:9, nrow=3))
ChkFx(fx5, 1:3)
ChkFx(fx5, matrix(1:9, nrow=3))
Cholesky Decomposistion
Description
Cholesky decomposistion of a symmetric matrix
Usage
Chol(M)
Arguments
M |
a symmetric matrix of real values |
Details
Input should be a symmetric matrix of real values. This is one-to-one transformation.
Value
a decomposed matrix
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
M <- matrix(c(4, 2, 2, 3), 2, 2)
L <- Chol(M)
L
L
Combination function
Description
Another simple implementation of combination function like choose
Usage
Choose(n, r)
Arguments
n |
total count |
r |
cont to choose |
Details
This is simple but not easily overflowed version of combination function.
Value
combination of choosing r cases from n cases.
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
Choose(10, 5)
Choose(100, 50)
Choose(1000, 500)
Choose(2000, 1000)
DENORM
Description
From normalized number to decimal number
Usage
DENORM(Norm)
Arguments
Norm |
Normalized number, a vector of length 2. |
Details
Ref. Plauger PJ The Standard C Library. 1992.
Value
Norm[1] * 2^Norm[2]
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
DENORM(c(0.625, 4)) # 0.625 * 2^4
DENORM(NORM(pi))
Density of beta distribution
Description
Calculate the density of a beta distribution
Usage
Dbeta(x, alph, bet)
Arguments
x |
x value for a beta distribution |
alph |
the shape parameter alpha of a beta distribution |
bet |
the shape parameter beta of a beta distribution |
Details
It calculates the density for x value of a beta distribution.
Value
density for x
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
Dbeta(0.3, 2, 3)
dbeta(0.3, 2, 3)
Density of binomial distribution
Description
Calculate the mass for n of a binomial distribution
Usage
Dbinom(k, n, pe)
Arguments
k |
count k of wanted event for a binomial distribution |
n |
total number of trials n of a binomial distribution |
pe |
the probability of wanted event for a binomial distribution |
Details
It calculates the probability for count k of a binomial distribution.
Value
probability for k
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
Dbinom(3, 10, 0.3)
dbinom(3, 10, 0.3)
Density of chi-square distribution
Description
Calculate the density of a chi-square distribution
Usage
Dchisq(x2, nu)
Arguments
x2 |
chi-square value for a chi-square distribution |
nu |
the shape parameter nu of a chi-square distribution |
Details
It calculates the density for chi-sqaure value of a chi-square distribution.
Value
density for x2
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
Dchisq(3, 5)
dchisq(3, 5)
Decimal to Binary Format Vector
Description
Transforms a decimal value to a binary IEEE 754 format value stored in an arry.
Usage
Dec2Bin(x, Double=TRUE)
Arguments
x |
a decimal value |
Double |
set this |
Details
IEEE 754 defined how the computer present float point number in a binary format. This transforms a decimal value to a binary format array.
Value
An array containing the binary value.
Author(s)
Kyun-Seop Bae <k@acr.kr>
References
IEEE 754
Examples
Dec2Bin(1)
Dec2Bin(-1)
Dec2Bin(1.5)
Dec2Bin(2)
Dec2Bin(6.5)
Dec2Bin(1, FALSE)
Dec2Bin(-1, FALSE)
Dec2Bin(1.5, FALSE)
Dec2Bin(2, FALSE)
Dec2Bin(6.5, FALSE)
First derivative, version 0
Description
Get first derivative of scalar-input scalar-valued function using Richardson extrapolation 4th order.
Usage
Deriv0(fx, x)
Arguments
fx |
scalar valued function |
x |
x point at which derivative is calculated |
Details
This simplest implementation of 4th order Richardson extrapolation for derivative calculation uses a 4x4 matrix.
Value
derivative value
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
fx = function(x) x*x
Deriv0(fx, 1) # 2
First derivative, version 1
Description
Get first derivative of scalar-input scalar-valued function using Richardson extrapolation 4th order.
Usage
Deriv1(fx, x)
Arguments
fx |
scalar valued function |
x |
x point at which derivative is calculated |
Details
This implementation of 4th order Richardson extrapolation for derivative calculation, uses a vector of length 4.
Value
derivative value
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
fx = function(x) x*x
Deriv1(fx, 1) # 2
First derivative, version 2
Description
Get first derivative of vector-input (multi-variable) scalar-valued function using Richardson extrapolation 4th order.
Usage
Deriv2(fx, x)
Arguments
fx |
vector-input (multi-variable) scalar-valued function |
x |
vector x at which gradients are calculated |
Details
This implementation of 4th order Richardson extrapolation for derivative calculation, uses 4 vectors.
Value
gradient values
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
fx2 = function(x) sum(x*x)
Deriv2(fx2, c(1,1)) # 2, 2
Density of F distribution
Description
Calculate the density of a F distribution
Usage
Df(f, nu1, nu2)
Arguments
f |
f value for an F distribution |
nu1 |
the shape parameter nu1 of an F distribution |
nu2 |
the shape parameter nu2 of an F distribution |
Details
It calculates the density for f value of an F distribution.
Value
density for f
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
Df(2, 4, 9)
df(2, 4, 9)
Density of gamma distribution
Description
Calculate the density of a gamma distribution
Usage
Dgamma(x, alph, bet=1)
Arguments
x |
x value for a gamma distribution |
alph |
the shape parameter alpha of a gamma distribution |
bet |
the shape parameter beta of a gamma distribution |
Details
It calculates the density for x value of a gamma distribution.
Value
density for x
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
Dgamma(2, 3) # bet defaults to 1
Dgamma(2, 3, 2) # bet is a rate
dgamma(2, 3, rate=2)
Density of log-normal distribution
Description
Calculate the density of a log-normal distribution
Usage
Dlnorm(x, mu=0, sig=1)
Arguments
x |
x value for a log-normal distribution |
mu |
the shape parameter mu of a log-normal distribution |
sig |
the shape parameter sigma of a log-normal distribution |
Details
It calculates the density for x value of a log-normal distribution.
Value
density for x
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
Dlnorm(1)
dlnorm(1)
Density of normal distribution
Description
Calculate the density of a normal distribution
Usage
Dnorm(x, mu=0, sig=1)
Arguments
x |
x value for a normal distribution |
mu |
the shape parameter mu of a normal distribution |
sig |
the shape parameter sigma of a normal distribution |
Details
It calculates the density for x value of a normal distribution.
Value
density for x
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
Dnorm(0)
Dnorm(1.96, mu=0, sig=1)
dnorm(1.96) # base R, for comparison
Density of Poisson distribution
Description
Calculate the mass for n of a Poisson distribution
Usage
Dpois(n, lam)
Arguments
n |
count n for a Poisson distribution |
lam |
shape parameter lambda of a Poisson distribution |
Details
It calculates the mass for n of a Poisson distribution.
Value
mass (probability) for n
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
Dpois(3, 4)
dpois(3, 4)
Density of t distribution
Description
Calculate the density of a t distribution
Usage
Dt(t, nu, mu=0, sig=1)
Arguments
t |
t value for a t distribution |
nu |
degree of freedom |
mu |
the shape parameter mu of a t distribution |
sig |
the shape parameter sigma of a t distribution |
Details
It calculates the density for t value of a t distribution.
Value
density for t
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
Dt(1.5, 7)
dt(1.5, 7)
Exponential
Description
Exponential of a real value.
Usage
EXP(x)
Arguments
x |
a real number to be Exponentiated |
Details
Ref. Plauger PJ The Standard C Library. 1992.
Value
Exponential value of a real value.
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
EXP(1)
exp(1)
EXP(-3)
Gamma Function
Description
This gamma function is a generalization of factorial working with real numbers. This function uses Lanczos' approximation and fairly short.
Usage
GAMMA(z)
Arguments
z |
real number |
Details
If x is an integer, GAMMA(x) = (x - 1)!. If x is a negative integer, it returns +Inf.
Value
Gamma function real value
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
GAMMA(0)
GAMMA(1) # 0! = 1
GAMMA(2) # 1! = 1
GAMMA(171) # 170! = 7.257416e+306
format(GAMMA(0.5), digits=22) # = sqrt(pi) = 1.772453850905516
format(gamma(0.5), digits=22)
format(sqrt(pi), digits=22)
format(GAMMA(1.5), digits=22)
format(gamma(1.5), digits=22)
Integration using Gaussian quadrature
Description
Integrates with given fx, a, b, and n
Usage
GQuad8(fx, a, b)
Arguments
fx |
real valued scalar function |
a |
from |
b |
to |
Details
This gives approximate integration value using Gaussian quadrature. It uses 8 points approximation.
Value
Integration value from a to b with function.
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
fx = function(x) exp(-x/100)
# exact value: 100 * (1 - exp(-0.24)) = 21.33721
GQuad8(fx, 0, 24)
Get Hessian and Gradient
Description
This is the combination of Grad and Hessian
Usage
GenD(func, x)
Arguments
func |
vector-input (multi-variable) scalar-valued function |
x |
x point at which gradients are calculated |
Details
Input is the same to Grad and Hessian functions.
Value
gr |
gradient vector |
Hessian |
Hessian matrix |
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
GenD(function(x) sum(x^2), c(1, 2)) # gradient, hessian and more
GenD(function(x) sum(x^3), 2)
Get the Direction Vector
Description
Get the direction vector for the new line search during the minimization.
Usage
GetP(Hv, g)
Arguments
Hv |
vector of lower triangular part of hessian |
g |
gradient |
Details
The result is same with solve(H, -g)
Value
Direction vector for a new search
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
# Hv is the lower triangle of the hessian, column by column
GetP(c(4, 1, 3), c(1, 2))
solve(matrix(c(4, 1, 1, 3), 2, 2), c(1, 2))
Gradient Calculation
Description
Get gradient using Richardson extrapolation 4th order.
Usage
Grad(func, x)
Arguments
func |
vector-input (multi-variable) scalar-valued function |
x |
x point at which gradients are calculated |
Details
This is a simplified implementation of 4th order Richardson extrapolation for gradient calculation in numDeriv package.
Value
gradient value
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
fx2 = function(x) sum(x*x)
Grad(fx2, c(1, 1)) # 2, 2
Hessian Calculation
Description
Get hessian using Richardson extrapolation 4th order.
Usage
Hessian(fx, x)
Arguments
fx |
vector-input (multi-variable) scalar-valued function |
x |
x point at which hessian is calculated |
Details
This is a simplified implementation of 4th order Richardson extrapolation for hessian calculation. See numDeriv package for more detail.
Value
hessian value
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
fx2 = function(x) sum(x*x)
Hessian(fx2, c(1, 1)) # matrix(c(2, 0, 0, 2), nrow=2)
LDL' Transformation
Description
LDL' factorization of a symmetric matrix
Usage
LDLT(SymMat)
Arguments
SymMat |
a symmetric matrix of real values |
Details
Input should be a symmetric matrix of real values.
Value
L |
lower triangular matrix |
D |
diagonal matrix |
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
M <- matrix(c(4, 2, 2, 3), 2, 2)
r <- LDLT(M)
r
r$L
Natural Log Gamma Function
Description
This log gamma function is for a larger value of real numbers. This function uses Lanczos' approximation and fairly short.
Usage
LGAMMA(z)
Arguments
z |
real number |
Details
If abs(z) is less than or equal to 171, it uses GAMMA function.
Value
natural log value of Gamma function
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
LGAMMA(0)
LGAMMA(1) # log(0!) = 0
LGAMMA(2) # log(1!) = 0
LGAMMA(171) # log(170!) = 706.5731
LGAMMA(-171) # Inf for all negative integers, as in base lgamma()
format(LGAMMA(0.5), digits=22) # = log(sqrt(pi)) = 0.5723649429247
format(lgamma(0.5), digits=22)
format(log(sqrt(pi)), digits=22)
format(LGAMMA(1.5), digits=22)
format(lgamma(1.5), digits=22)
Logarithm natural or common
Description
Natural or common log of a real positive value.
Usage
LOG(x, DecFlag=FALSE)
Arguments
x |
a real positive number to be log-ed |
DecFlag |
FALSE for natural log, TRUE for common log |
Details
Ref. Plauger PJ The Standard C Library. 1992.
Value
log value of base *e* or 10.
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
LOG(10)
log(10)
LOG(10, DecFlag=TRUE) # base 10
Get Machine Epsilon
Description
Calculate machine epsilon.
Usage
MachEps()
Arguments
none
Details
Machine epsilon + 1 is different from 1. But half of it added to one cannot be differentiated from one.
Value
Machine epsilon
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
MachEps()
Get Epsilon a little more general than Machine Epsilon
Description
Calculate epsilon using x and Start value.
Usage
MachEps2(x = 1, Start = 1)
Arguments
x |
value to be used at the equation of x + eps > x |
Start |
Starting epsilon value. Epsilon is halved by each iteration. |
Details
This finds the smallest epsilon which satisfies x + eps > x by halving epsilon for each iteration.
Value
epsilon
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
MachEps2(100, 1)
(eps2 = MachEps2(1, 0.8))
1 + eps2 == 1 # FALSE and less than .Machine$double.eps
Get Meticuluous Positive Epsilon
Description
Calculate meticulous positive epsilon using bisectional search.
Usage
MachEps3(MaxIter = 1000)
Arguments
MaxIter |
maximum iteration number |
Details
This finds really the smallest epsilon by bisectional search.
Value
epsilon with "itertation" count attribute
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
MachEps3() # Smallest epsilon in this environment. Smaller than .Machine$double.eps
Get Meticuluous Negative Epsilon
Description
Calculate meticulous negative epsilon using bisectional search.
Usage
MachEps4(MaxIter = 1000)
Arguments
MaxIter |
maximum iteration number |
Details
This finds really the smallest epsilon by bisectional search.
Value
epsilon with "itertation" count attribute
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
MachEps4() # different not just sign, but also magnitude with MachEps3()
NORM
Description
From a decimal number to a normalized number
Usage
NORM(x)
Arguments
x |
a decimal number to be normalized |
Details
It returns (f,n) for x = f * 2 ^ n where (0.5 <= f <= 1). Returns a vector of length 2. Ref. Plauger PJ The Standard C Library. 1992.
Value
Norm[1] * 2^Norm[2]
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
NORM(10) # 10 = 0.625 * 2^4
DENORM(NORM(10))
Singular Value Decomposition by Nash
Description
Singular value decomposition by Nash
Usage
NashSVD(M)
Arguments
M |
a symmetric matrix of real values |
Details
This can be used for a least square problem.
Value
Decomposed result
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
M <- matrix(c(1, 2, 3, 4, 5, 6), 3, 2)
r <- NashSVD(M)
r$d # singular values
svd(M)$d
Prototype of optimization function
Description
To show the algorithm how quasi-Newton type optimization algorithm works.
Usage
Optim0(x0, func, TypF=1, GradTol=.Machine$double.eps^(1/3),
StepTol=.Machine$double.eps^(2/3),
FnTol=.Machine$double.eps^(1/3), ItnLimit=100)
Arguments
x0 |
initial value |
func |
function to be minimized |
TypF |
typical function value, a scalar, to measure approximate maginitude |
GradTol |
gradient tolerance |
StepTol |
x direction or step tolerance |
FnTol |
y or function tolerance |
ItnLimit |
iteration count limit |
Details
If the changes of between steps are less than the tolerances, it stops.
Value
par |
final x vector values |
value |
function value at the final x vector |
FnCount |
function evaluation count |
convergence |
convergence is met or not |
grad |
gradient at the final x vector |
hessian |
hessian at the final x vector |
RelGrad |
relative gradient |
RelStep |
relative step |
DelF |
delta F, function value |
f |
function values |
x |
x vector values |
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
Optim0(c(-1.2, 1), function(x) 100*(x[2] - x[1]^2)^2 + (1 - x[1])^2)
Outer product of two three-dimensional vectors
Description
Calculate the outer product of two three-dimentional vectors
Usage
OuterProd(a, b)
Arguments
a |
the first vector |
b |
the second vector |
Details
Outer product is not communtative.
Value
Outer product of two three-dimension vectors
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
# the vector cross product of two vectors in three dimensions
OuterProd(c(1, 0, 0), c(0, 1, 0))
OuterProd(c(1, 2, 3), c(4, 5, 6))
Cumulative probability of beta distribution
Description
Calculate the cumulative probability for x of a beta distribution
Usage
Pbeta(x, alph, bet)
Arguments
x |
x value for a beta distribution |
alph |
the shape parameter alpha of a beta distribution |
bet |
the shape parameter beta of a beta distribution |
Details
It calculates the cumulative probability for x of a beta distribution.
Value
cumulative probability till x
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
Pbeta(0.3, 2, 3)
pbeta(0.3, 2, 3)
Cumulative probability of Poisson distribution
Description
Calculate the cumulative probability P(X <= k) of a binomial distribution
Usage
Pbinom(k, n, pe)
Arguments
k |
count k of wanted event for a binomial distribution |
n |
total number of trials n of a binomial distribution |
pe |
the probability of wanted event for a binomial distribution |
Details
It calculates the cumulative probability for k of a Poisson distribution.
Value
cumulative probability till k
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
Pbinom(3, 20, 0.3) # P(X <= 3)
pbinom(3, 20, 0.3)
Cumulative probability of chi-square distribution
Description
Calculate the cumulative probability for x2 of a chi-square distribution
Usage
Pchisq(x2, nu)
Arguments
x2 |
chi-square value for a chi-square distribution |
nu |
the shape parameter nu of a chi-square distribution |
Details
It calculates the cumulative probability for x2 of a chi-square distribution.
Value
cumulative probability till x2
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
Pchisq(3.84, 1) # about 0.95
pchisq(3.84, 1)
Cumulative probability of F distribution
Description
Calculate the cumulative probability for f of an F distribution
Usage
Pf(f, nu1, nu2)
Arguments
f |
f value for an F distribution |
nu1 |
the shape parameter nu1 of an F distribution |
nu2 |
the shape parameter nu2 of an F distribution |
Details
It calculates the cumulative probability for f of an F distribution.
Value
cumulative probability till f
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
Pf(2, 4, 9)
pf(2, 4, 9)
Cumulative probability of gamma distribution
Description
Calculate the cumulative probability for x of a gamma distribution
Usage
Pgamma(x, alph, bet=1)
Arguments
x |
x value for a gamma distribution |
alph |
the shape parameter alpha of a gamma distribution |
bet |
the shape parameter beta of a gamma distribution |
Details
It calculates the cumulative probability for x of a gamma distribution.
Value
cumulative probability till x
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
Pgamma(2, 3)
Pgamma(2, 3, 2) # bet is a rate
pgamma(2, 3, rate=2)
Cumulative probability of log-normal distribution
Description
Calculate the cumulative probability for t of a log-normal distribution
Usage
Plnorm(x, mu=0, sig=1)
Arguments
x |
x value for a log-normal distribution |
mu |
the shape parameter mu of a log-normal distribution |
sig |
the shape parameter sigma of a log-normal distribution |
Details
It calculates the cumulative probability for x of a log-normal distribution.
Value
cumulative probability till x
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
Plnorm(1)
plnorm(1)
Cumulative probability of normal distribution
Description
Calculate the cumulative probability for t of a normal distribution
Usage
Pnorm(x, mu=0, sig=1)
Arguments
x |
x value for a normal distribution |
mu |
the shape parameter mu of a normal distribution |
sig |
the shape parameter sigma of a normal distribution |
Details
It calculates the cumulative probability for x of a normal distribution.
Value
cumulative probability till x
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
Pnorm(1.96)
pnorm(1.96)
Pnorm(100, mu=110, sig=15) # IQ below 100
Approximation of pnorm using a polynomial equation
Description
It approximates pnorm using a polynomial equation.
Usage
PolyNom3(x)
Arguments
x |
Z value |
Details
It calculates the approximation of pnorm(x).
Value
Probability of Z < x
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
format(pnorm(2), digits=22)
format(PolyNom3(2), digits=22) # Compare with the above
Cumulative probability of Poisson distribution
Description
Calculate the cumulative probability P(X <= n) of a Poisson distribution
Usage
Ppois(n, lam)
Arguments
n |
count n for a Poisson distribution |
lam |
shape parameter lambda of a Poisson distribution |
Details
It calculates the cumulative probability for n of a Poisson distribution.
Value
cumulative probability till n
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
Ppois(0, 4) # P(X <= 0) = exp(-4)
Ppois(3, 4)
ppois(3, 4)
Cumulative probability of t distribution
Description
Calculate the cumulative probability for t of a t distribution
Usage
Pt(t, nu, mu=0, sig=1)
Arguments
t |
t value for a t distribution |
nu |
degree of freedom |
mu |
the shape parameter mu of a t distribution |
sig |
the shape parameter sigma of a t distribution |
Details
It calculates the cumulative probability for t of a t distribution.
Value
cumulative probability till t
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
Pt(1.5, 7)
pt(1.5, 7)
Reverse of Pbeta function
Description
Calculate the x value for the cumulative probability p of a beta distribution
Usage
Qbeta(p, alph, bet)
Arguments
p |
cumulative probability p for a beta distribution |
alph |
the shape parameter alpha of a beta distribution |
bet |
the shape parameter beta of a beta distribution |
Details
It calculates the x value for the cumulative probability p of a beta distribution.
Value
x of Pt(x, alph, bet)
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
Qbeta(0.5, 2, 3)
qbeta(0.5, 2, 3)
Reverse of Pbinom function
Description
Calculate the k for the cumulative probability p of a binomial distribution
Usage
Qbinom(p, n, pe)
Arguments
p |
cumulative probability of wanted event for a binomial distribution |
n |
total number of trials n of a binomial distribution |
pe |
the probability of wanted event for a binomial distribution |
Details
It returns the smallest k with Pbinom(k, n, pe) >= p, the
quantile convention of stats::qbinom.
Ties are the one place this can part from base R. Feeding a
cumulative probability straight back in as p asks which
side of that value the answer falls on, and Pbinom is built
from the incomplete beta function rather than the saddle point
algorithm base R uses, so the two agree only to about 1e-12
there. A tolerance of that size is applied before the
comparison. For any p not sitting exactly on a
cumulative probability the two agree exactly.
Value
the smallest k whose cumulative probability reaches p
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
Qbinom(0.5, 20, 0.3) # smallest k with P(X <= k) >= p
qbinom(0.5, 20, 0.3)
Reverse of Pchisq function
Description
Calculate the chi-square value for the cumulative probability p of a chi-square distribution
Usage
Qchisq(p, nu)
Arguments
p |
cumulative probability p for a chi-square distribution |
nu |
the shape parameter nu of a chi-square distribution |
Details
It calculates the chi-square value for the cumulative probability p of a chi-square distribution.
Value
x2 of Pt(x2, nu)
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
Qchisq(0.95, 1) # about 3.84
qchisq(0.95, 1)
Reverse of Pf function
Description
Calculate the f for the cumulative probability p of an F distribution
Usage
Qf(p, nu1, nu2)
Arguments
p |
cumulative probability for f of an F distribution |
nu1 |
the shape parameter nu1 of an F distribution |
nu2 |
the shape parameter nu2 of an F distribution |
Details
It calculates the f for the cumulative probability p of an F distribution.
Value
f of Pf(f, nu1, nu2)
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
Qf(0.95, 4, 9)
qf(0.95, 4, 9)
Reverse of Pgamma function
Description
Calculate the x value for the cumulative probability p of a gamma distribution
Usage
Qgamma(p, alph, bet=1)
Arguments
p |
cumulative probability p for a gamma distribution |
alph |
the shape parameter alpha of a gamma distribution |
bet |
the shape parameter beta of a gamma distribution |
Details
It calculates the x value for the cumulative probability p of a gamma distribution.
Value
x of Pgamma(x, alph, bet)
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
Qgamma(0.5, 3)
qgamma(0.5, 3)
Reverse of Plnorm function
Description
Calculate the t value for the cumulative probability p of a log-normal distribution
Usage
Qlnorm(p, mu=0, sig=1)
Arguments
p |
cumulative probability p for a log-normal distribution |
mu |
the shape parameter mu of a log-normal distribution |
sig |
the shape parameter sigma of a log-normal distribution |
Details
It calculates the x value for the cumulative probability p of a log-normal distribution.
Value
x of Plnorm(x, mu, sigma)
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
Qlnorm(0.5)
qlnorm(0.5)
Reverse of Plnorm function
Description
Calculate the t value for the cumulative probability p of a normal distribution
Usage
Qnorm(p, mu=0, sig=1)
Arguments
p |
cumulative probability p for a normal distribution |
mu |
the shape parameter mu of a normal distribution |
sig |
the shape parameter sigma of a normal distribution |
Details
It calculates the x value for the cumulative probability p of a normal distribution.
Value
x of Pnorm(x, mu, sigma)
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
Qnorm(0.975)
qnorm(0.975)
Qnorm(0.5, mu=110, sig=15)
Reverse of Ppois function
Description
Calculate the n for the cumulative probability p of a Poisson distribution
Usage
Qpois(p, lam)
Arguments
p |
cumulative proability of a Poisson distribution |
lam |
shape parameter lambda of a Poisson distribution |
Details
It returns the smallest n with Ppois(n, lam) >= p, the
quantile convention of stats::qpois.
Ties are the one place this can part from base R. Feeding a
cumulative probability straight back in as p asks which
side of that value the answer falls on, and Ppois is built
from the incomplete gamma function rather than the saddle point
algorithm base R uses, so the two agree only to about 1e-12
there. A tolerance of that size is applied before the
comparison. For any p not sitting exactly on a
cumulative probability the two agree exactly.
Value
the smallest n whose cumulative probability reaches p
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
Qpois(0.5, 4) # smallest n with P(X <= n) >= p
qpois(0.5, 4)
Reverse of Pt function
Description
Calculate the t value for the cumulative probability p of a t distribution
Usage
Qt(p, nu, mu=0, sig=1)
Arguments
p |
cumulative probability p for a t distribution |
nu |
degree of freedom |
mu |
the shape parameter mu of a t distribution |
sig |
the shape parameter sigma of a t distribution |
Details
It calculates the t value for the cumulative probability p of a t distribution.
Value
t of Pt(t, nu, mu, sigma)
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
Qt(0.975, 7)
qt(0.975, 7)
Runge-Kutta 4th Order Routine for Numeerical Integration
Description
Advance State vector by tau time with Deriv
Usage
RK4(State, tau, Deriv)
Arguments
State |
state vector |
tau |
time amount to advance |
Deriv |
Derivative functions with the input of |
Details
Derive should accept State vector as an input.
Value
A new state vector after time advancement by tau
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
# harmonic oscillator: x'' = -x, state is c(x, x')
Deriv <- function(s) c(s[2], -s[1])
RK4(c(1, 0), 0.1, Deriv)
c(cos(0.1), -sin(0.1)) # exact
Random deviate from beta distribution
Description
Generate random numbers from a beta distribution
Usage
Rbeta(n, alph, bet)
Arguments
n |
count, how many do you want |
alph |
shape parameter alpha of a beta distribution |
bet |
shape parameter beta of a beta distribution |
Details
It generates random numbers from random numbers of other ditribution.
Value
a vector of random numbers
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
set.seed(1)
Rbeta(5, 2, 5)
round(mean(Rbeta(10000, 2, 5)), 3) # near 2/(2+5)
Random deviate from exponential distribution
Description
Generate random numbers from a exponential distribution
Usage
Rexp(n, alpha)
Arguments
n |
count, how many do you want |
alpha |
shape parameter alpha of a exponential distribution |
Details
It uses inverse-transformation method.
Value
a vector of random numbers
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
set.seed(1)
Rexp(5, 2)
round(mean(Rexp(10000, 2)), 3) # alpha is a rate, near 0.5
Random deviate from gamma distribution
Description
Generate random numbers from a gamma distribution
Usage
Rgamma(n, alph, bet)
Arguments
n |
count, how many do you want |
alph |
shape parameter alpha of a gamma distribution |
bet |
shape parameter beta of a gamma disribution |
Details
It uses acceptance-rejection method.
Value
a vector of random numbers
Author(s)
Kyun-Seop Bae <k@acr.kr>
References
Banks J. Handbook of simulation (1998) pp152-153
Examples
set.seed(1)
Rgamma(5, 3, 2)
# bet is a scale here, so the mean is alph * bet
round(mean(Rgamma(10000, 3, 2)), 2) # near 6
Random deviate from gamma distribution, simple method
Description
Generate random numbers from a gamma distribution by a simple method
Usage
Rgamma0(n, alph, bet)
Arguments
n |
count, how many do you want |
alph |
shape parameter alpha of a gamma distribution, at least 1 |
bet |
shape parameter beta of a gamma disribution |
Details
It uses acceptance-rejection method.
Value
a vector of random numbers
Author(s)
Kyun-Seop Bae <k@acr.kr>
References
Banks J. Handbook of simulation (1998) pp152-153
Examples
set.seed(1)
Rgamma0(5, 3, 2)
round(mean(Rgamma0(10000, 3, 2)), 2) # near 6
# alph must be at least 1; use Rgamma for smaller shapes
Random deviate from multivariate normal distribution
Description
Generate random numbers from a multivariate normal distribution
Usage
Rmvn(n, Mu, Cov)
Arguments
n |
count, how many do you want |
Mu |
mean vector of multivariate normal distribution |
Cov |
variance-covariance matrix of multivariate normal disribution |
Details
It uses cholesky decomposition.
Value
a matrix of random vectors
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
set.seed(1)
Cov <- matrix(c(1, 0.7, 0.7, 1), 2, 2)
Rmvn(4, c(0, 0), Cov)
round(cor(Rmvn(5000, c(0, 0), Cov))[1, 2], 2) # near 0.7
Random deviate from normal distribution
Description
Generate random numbers from a normal distribution
Usage
Rnorm(n, mu=0, sigma=1)
Arguments
n |
count, how many do you want |
mu |
mean of normal distribution |
sigma |
standard deviation of normal disribution |
Details
It is more efficient with even n.
Value
a vector of random numbers
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
set.seed(1)
Rnorm(5)
set.seed(1)
round(mean(Rnorm(10000, mu=1, sigma=2)), 2) # near 1
Ordinary Rounding Function
Description
Rounding function in R is round and its behaviour is different from other common software. This is an ordinary rounding function.
Usage
Round(x, digits=0)
Arguments
x |
real number to be rounded |
digits |
integer indicating the number of decimal places. 0 means 10^0=1, 2 means 10^-2=0.01, -1 means 10^1 = 10 etc. |
Details
Ordinary rounding function (round-up). For more details, see wikipedia.
Value
rounded value
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
Round(1:10 - 0.5)
Round(450, -2)
Round(1.235, 2)
Probability for Run Test
Description
p-value for run test
Usage
Run.test(RES)
Arguments
RES |
sequence vector to be tested, usually residual values) |
Details
It calculates p-value for run test. Zeros are omitted first.
Value
p-value, if it is larger than 0.5, it returns 1 - p.
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
set.seed(1)
Run.test(rnorm(30)) # random, so a large p-value
Run.test(rep(c(1, -1), 15)) # perfectly alternating
Square-rooting
Description
Square-rooting of a real positive number.
Usage
SQRT(x)
Arguments
x |
a real positive number to be square-rooted |
Details
Ref. Plauger PJ The Standard C Library. 1992.
Value
square-rooted value
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
SQRT(2)
sqrt(2)
Determinant of a Symmetric Matrix
Description
Determinant of a symmetric matrix
Usage
SymDet(SymMat)
Arguments
SymMat |
a symmetric matrix of real values |
Details
Input should be a symmetric matrix of real values.
Value
Determinant of the input
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
M <- matrix(c(4, 1, 1, 3), 2, 2)
SymDet(M)
det(M)
Inverse of a Symmetric Matrix
Description
Inverse of a symmetric matrix
Usage
SymInv(SymMat)
Arguments
SymMat |
a symmetric matrix of real values |
Details
Input should be a symmetric matrix of real values.
Value
Inverse of the input
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
M <- matrix(c(4, 1, 1, 3), 2, 2)
SymInv(M)
solve(M)
Solution of a Symmetric Matrix
Description
Solution of a symmetric matrix linear equation
Usage
SymSol(H, g)
Arguments
H |
a symmetric matrix of real values, such as hessian |
g |
a response vector, such as gradient |
Details
Input should be a symmetric matrix of real values and a real vector
Value
Solution of the linear system with a real symmetric coefficient matrix
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
M <- matrix(c(4, 1, 1, 3), 2, 2)
SymSol(M, c(1, 2))
solve(M, c(1, 2))
Simplified version of optimization function
Description
To show the algorithm how quasi-Newton type optimization algorithm works.
Usage
VMmin(x0, func, MaxIter=9999, Tol=1e-4)
Arguments
x0 |
initial value |
func |
function to be minimized |
MaxIter |
iteration count limit |
Tol |
tolerance |
Details
If the changes of between steps are less than the tolerances, it stops.
Value
par |
final x vector values |
value |
function value at the final x vector |
FnCount |
function evaluation count |
GrCount |
gradient evaluation count |
convergence |
convergence is met or not |
grad |
gradient at the final x vector |
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
VMmin(c(-1.2, 1), function(x) 100*(x[2] - x[1]^2)^2 + (1 - x[1])^2)
VMmin(0, function(x) sum((x - 2.5)^2) + 1) # one dimension
Continued fraction approximation of incomplete beta function
Description
Incomplete beta function with parameter a and b
Usage
betacf(a, b, x)
Arguments
a |
shape constant, distribution parameter |
b |
shape constant, distribution parameter |
x |
to which it integrates |
Details
Ref: Abramowitz and Stegun 26.5.8; beta_cont_frac of the GNU Scientific Library, specfunc/beta_inc.c
Value
integrated value
Author(s)
Kyun-Seop Bae <k@acr.kr>
References
Galassi M, et al. GNU Scientific Library Reference Manual. 3rd ed. Network Theory, 2009. Moshier SL. Methods and Programs for Mathematical Functions. Ellis Horwood, 1989. Abramowitz M, Stegun IA. Handbook of Mathematical Functions. Dover, 1972.
Examples
# I_x(a,b) = x^a (1-x)^b / (a B(a,b)) * betacf(a, b, x)
a <- 2; b <- 3; x <- 0.4
exp(gammln(a+b) - gammln(a) - gammln(b) +
a*log(x) + b*log(1-x)) * betacf(a, b, x) / a
pbeta(x, a, b)
Incomplete beta function
Description
Incomplete beta function with parameter a and b
Usage
betai(a, b, x)
Arguments
a |
shape constant, distribution parameter |
b |
shape constant, distribution parameter |
x |
to which it integrates |
Details
This calls betaiapprox, betacf and/or gammln.
Ref: gsl_sf_beta_inc of the GNU Scientific Library, specfunc/beta_inc.c
Value
integrated value
Author(s)
Kyun-Seop Bae <k@acr.kr>
References
Galassi M, et al. GNU Scientific Library Reference Manual. 3rd ed. Network Theory, 2009. Moshier SL. Methods and Programs for Mathematical Functions. Ellis Horwood, 1989. Abramowitz M, Stegun IA. Handbook of Mathematical Functions. Dover, 1972.
Examples
betai(2, 3, 0.4)
pbeta(0.4, 2, 3)
Quadrature approximation of incomplete beta function
Description
Retained for backward compatibility. Forwards to betai
Usage
betaiapprox(a, b, x)
Arguments
a |
shape constant, distribution parameter |
b |
shape constant, distribution parameter |
x |
to which it integrates |
Details
Retained for backward compatibility. The continued fraction of betacf converges over the whole range once the symmetry transform is applied, so the separate large-parameter quadrature branch is no longer needed.
Value
integrated value
Author(s)
Kyun-Seop Bae <k@acr.kr>
References
Galassi M, et al. GNU Scientific Library Reference Manual. 3rd ed. Network Theory, 2009. Moshier SL. Methods and Programs for Mathematical Functions. Ellis Horwood, 1989. Abramowitz M, Stegun IA. Handbook of Mathematical Functions. Dover, 1972.
Examples
betaiapprox(2, 3, 0.4) # same as betai(2, 3, 0.4)
Convolution using fft
Description
Convolute two given sequences and returns real part only.
Usage
conv(x, y)
Arguments
x |
Input sequence |
y |
Response sequence to unit impulse |
Details
One is input and the other is unit response sequence. The lengthes of two sequences should be same. The order is not important.
Value
Real part of convolution result.
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
x <- c(1, 0.5, 0.25, 0, 0, 0)
y <- c(1, 2, 3, 0, 0, 0)
conv(x, y) # linear convolution
round(deconv(conv(x, y), x), 10) # deconv undoes it
Convolution using fft
Description
Convolute two given sequences.
Usage
conv0(x, y)
Arguments
x |
Input sequence |
y |
Response sequence to unit impulse |
Details
One is input and the other is unit response sequence. The lengthes of two sequences should be same. The order is not important
Value
convolution result.
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
x <- c(1, 0.5, 0.25, 0.125)
y <- c(1, 2, 3, 4)
Re(conv0(x, y)) # circular convolution, by fft
round(Re(deconv0(conv0(x, y), x)), 10) # deconv0 undoes it
deconvolution
Description
deconvollute two given sequences measured at different time points.
Usage
dc(t1, c1, t2, c2)
Arguments
t1 |
time points of sequence 1 |
c1 |
measurement values of sequence 1, to be deconvoluted, Response values |
t2 |
time points of sequence 2 |
c2 |
measurement values of sequence 2. input sequence or unit reponse sequence |
Details
Two measurement sequences with two different time point sequences. The order matters.
Value
Deconvolution result: input sequence or unit response sequence.
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
t1 <- 0:5
c1 <- c(0, 1, 3, 4, 3, 1) # response
t2 <- 0:5
c2 <- c(0, 1, 1, 0, 0, 0) # unit response
dc(t1, c1, t2, c2)
Deconvolution using fft
Description
Deconvolute two given sequences, and return real part only.
Usage
deconv(z, x)
Arguments
z |
Response sequence to be deconvoluted |
x |
Input or Unit response sequence |
Details
The lengthes of two sequences should be same. The order matters.
Value
Real part of deconvolution result.
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
# conv truncates the linear convolution back to the input length, so
# pad the tails with zeros to keep the whole of it. Then deconv
# recovers the input exactly.
x <- c(1, 0.5, 0.25, 0, 0, 0)
y <- c(1, 2, 3, 0, 0, 0)
z <- conv(x, y)
z
round(deconv(z, x), 10) # back to y
Deconvolution using fft
Description
Deconvolute two given sequences.
Usage
deconv0(z, x)
Arguments
z |
Response sequence to be deconvoluted |
x |
Input or Unit response sequence |
Details
The lengthes of two sequences should be same. The order matters.
Value
Deconvolution result.
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
# deconv0 is the inverse of conv0: both work on the circular
# convolution, so the round trip is exact.
x <- c(1, 0.5, 0.25, 0.125)
y <- c(1, 2, 3, 4)
z <- conv0(x, y)
round(Re(deconv0(z, x)), 10) # back to y
EllipRange
Description
Ranges of an ellipse
Usage
ellipRange(center=c(0, 0), radius=c(2, 1), alpha=0)
Arguments
center |
coordinate of center point |
radius |
length of long and short axes |
alpha |
rotation angle of long axis |
Details
This returns ranges of x and y axes.
Value
Column vectors of x and y ranges
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
ellipRange()
ellipRange(c(0, 0), c(3, 2), pi/4)
ellipRange(c(1, 1), c(3, 2), pi/4)
ellipRange(c(1, 1), c(3, 2), pi/6)
Ellipse
Description
Plot ellipse and return coordinates.
Usage
ellipse(center=c(0, 0), radius=c(2, 1), alpha=0, npoints=100, add=FALSE, ...)
Arguments
center |
coordinate of center point |
radius |
length of long and short axes |
alpha |
rotation angle of long axis |
npoints |
number of points used to plot |
add |
whether to plot on an active device |
... |
arguments to be passed to |
Details
This plots an ellipse and returns coordinates of points used to plot.
Value
coordinates of points used to plot.
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
ellipse(asp=1)
ellipse(c(0, 0), c(3, 2), pi/4, asp=1)
ellipse(c(1, 1), c(3, 2), pi/4, asp=1)
points(1, 1, pch="+")
abline(v=1, h=1, lty=3)
Error function
Description
Error function.
Usage
erf(x)
Arguments
x |
a real value |
Details
This calls erfccheb.
Ref: erf(x) = P(1/2, x^2), the relation the GNU Scientific Library uses between gsl_sf_erf and gsl_sf_gamma_inc_P
Value
Integration value \frac{2}{\sqrt{\pi}} \int_{0}^{x} e^{-t^2} dt
Author(s)
Kyun-Seop Bae <k@acr.kr>
References
Galassi M, et al. GNU Scientific Library Reference Manual. 3rd ed. Network Theory, 2009. Moshier SL. Methods and Programs for Mathematical Functions. Ellis Horwood, 1989. Abramowitz M, Stegun IA. Handbook of Mathematical Functions. Dover, 1972.
Examples
erf(1)
2*pnorm(sqrt(2)) - 1 # base R, for comparison
Complementary error function
Description
Complementary error function.
Usage
erfc(x)
Arguments
x |
a real value |
Details
1 - erf(x)
This calls erfccheb.
Ref: erfc(x) = Q(1/2, x^2), the relation the GNU Scientific Library uses between gsl_sf_erfc and gsl_sf_gamma_inc_Q
Value
1 - \frac{2}{\sqrt{\pi}} \int_{0}^{x} e^{-t^2} dt
Author(s)
Kyun-Seop Bae <k@acr.kr>
References
Galassi M, et al. GNU Scientific Library Reference Manual. 3rd ed. Network Theory, 2009. Moshier SL. Methods and Programs for Mathematical Functions. Ellis Horwood, 1989. Abramowitz M, Stegun IA. Handbook of Mathematical Functions. Dover, 1972.
Examples
erfc(1)
2*pnorm(-sqrt(2))
erfc(20) # still accurate far into the tail
Complementary error function, kept for compatibility
Description
Retained for backward compatibility. Forwards to erfc.
Usage
erfccheb(z)
Arguments
z |
a real value |
Details
Retained for backward compatibility. Forwards to erfc. This is called by erf and erfc .
Retained for backward compatibility. Forwards to erfc, which now uses the incomplete gamma relation over the whole range.
Value
Approximation value for error function
Author(s)
Kyun-Seop Bae <k@acr.kr>
References
Galassi M, et al. GNU Scientific Library Reference Manual. 3rd ed. Network Theory, 2009. Moshier SL. Methods and Programs for Mathematical Functions. Ellis Horwood, 1989. Abramowitz M, Stegun IA. Handbook of Mathematical Functions. Dover, 1972.
Examples
erfccheb(1) # same as erfc(1)
Spectral Decomposition of a Real Symmetric Matrix by Jacobi Algorithm
Description
Eigen values and vectors of a Real Symmetic Matrix by Jacobi Algorithm
Usage
evJacobi(A)
Arguments
A |
a symmetric matrix of real values |
Details
Input should be a symmetric matrix of real values.
Value
values |
eigen values |
vectors |
eigen vectors |
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
A <- matrix(c(2, 1, 1, 2), 2, 2)
r <- evJacobi(A)
r$values
eigen(A)$values
Log gamma function
Description
Log gamma function
Usage
gammln(xx)
Arguments
xx |
a real positive number to be gammln-ed |
Details
Ref: Lanczos g=7 coefficients as used by the GNU Scientific Library, gsl_sf_lngamma
Value
Log gamma
Author(s)
Kyun-Seop Bae <k@acr.kr>
References
Galassi M, et al. GNU Scientific Library Reference Manual. 3rd ed. Network Theory, 2009. Moshier SL. Methods and Programs for Mathematical Functions. Ellis Horwood, 1989. Abramowitz M, Stegun IA. Handbook of Mathematical Functions. Dover, 1972.
Examples
gammln(5)
lgamma(5) # log(4!) = log(24)
Incomplete gamma function
Description
Incomplete gamma function with parameter a
Usage
gammp(a, x)
Arguments
a |
shape constant, distribution parameter |
x |
to which it integrates |
Details
This calls gser or gammpapprox.
Ref: Cephes igam/igamc, as redistributed in ALGLIB specialfunctions.cs
Value
integrated value
Author(s)
Kyun-Seop Bae <k@acr.kr>
References
Galassi M, et al. GNU Scientific Library Reference Manual. 3rd ed. Network Theory, 2009. Moshier SL. Methods and Programs for Mathematical Functions. Ellis Horwood, 1989. Abramowitz M, Stegun IA. Handbook of Mathematical Functions. Dover, 1972.
Examples
gammp(2, 3) # P(2, 3)
pgamma(3, 2)
Quadrature approximation of incomplete gamma function
Description
Retained for backward compatibility. Forwards to gammp or gammq
Usage
gammpapprox(a, x, psig = 1)
Arguments
a |
shape constant, distribution parameter |
x |
to which it integrates |
psig |
1 for P(a, x), 0 for Q(a, x) = 1 - P(a, x) |
Details
This calls gammaln.
Retained for backward compatibility. The Cephes series and continued fraction converge over the whole range, so the separate large-a quadrature branch is no longer needed.
Value
integrated value
Author(s)
Kyun-Seop Bae <k@acr.kr>
References
Galassi M, et al. GNU Scientific Library Reference Manual. 3rd ed. Network Theory, 2009. Moshier SL. Methods and Programs for Mathematical Functions. Ellis Horwood, 1989. Abramowitz M, Stegun IA. Handbook of Mathematical Functions. Dover, 1972.
Examples
gammpapprox(2, 3, 1) # same as gammp(2, 3)
gammpapprox(2, 3, 0) # same as gammq(2, 3)
Incomplete gamma function
Description
Incomplete gamma function, Q(a, x) = 1 - P(a, x)
Usage
gammq(a, x)
Arguments
a |
shape constant, distribution parameter |
x |
to which it integrates |
Details
This calls gser or gammpapprox.
Ref: Cephes igam/igamc, as redistributed in ALGLIB specialfunctions.cs
Value
integrated value
Author(s)
Kyun-Seop Bae <k@acr.kr>
References
Galassi M, et al. GNU Scientific Library Reference Manual. 3rd ed. Network Theory, 2009. Moshier SL. Methods and Programs for Mathematical Functions. Ellis Horwood, 1989. Abramowitz M, Stegun IA. Handbook of Mathematical Functions. Dover, 1972.
Examples
gammq(2, 3) # Q(2, 3) = 1 - P(2, 3)
pgamma(3, 2, lower.tail=FALSE)
Continued fraction approximation of incomplete gamma function
Description
Continued fraction approximation of incomplete gamma function, Q(a, x)
Usage
gcf(a, x)
Arguments
a |
shape constant, distribution parameter |
x |
to which it integrates |
Details
This calls gammaln.
Ref: Abramowitz and Stegun 6.5.31; Cephes igamc, as redistributed in ALGLIB specialfunctions.cs
Value
integrated value
Author(s)
Kyun-Seop Bae <k@acr.kr>
References
Galassi M, et al. GNU Scientific Library Reference Manual. 3rd ed. Network Theory, 2009. Moshier SL. Methods and Programs for Mathematical Functions. Ellis Horwood, 1989. Abramowitz M, Stegun IA. Handbook of Mathematical Functions. Dover, 1972.
Examples
gcf(2, 5) # continued fraction branch, x > a
pgamma(5, 2, lower.tail=FALSE)
Series approximation of incomplete gamma function
Description
Series approximation of incomplete gamma function, P(a, x)
Usage
gser(a, x)
Arguments
a |
shape constant, distribution parameter |
x |
to which it integrates |
Details
This calls gammaln.
Ref: Abramowitz and Stegun 6.5.29; Cephes igam, as redistributed in ALGLIB specialfunctions.cs
Value
integrated value
Author(s)
Kyun-Seop Bae <k@acr.kr>
References
Galassi M, et al. GNU Scientific Library Reference Manual. 3rd ed. Network Theory, 2009. Moshier SL. Methods and Programs for Mathematical Functions. Ellis Horwood, 1989. Abramowitz M, Stegun IA. Handbook of Mathematical Functions. Dover, 1972.
Examples
gser(2, 1) # series branch, x <= a
pgamma(1, 2)
Inverse of gammap function
Description
Inverse of incomplete beta function with parameter a and b
Usage
invbetai(p, a, b)
Arguments
p |
integration value between 0 and 1 |
a |
shape constrant, distribution parameter |
b |
shape constrant, distribution parameter |
Details
This calls gammln and betai
Ref: bracketed Newton steps on betai, following gsl_cdf_beta_Pinv of the GNU Scientific Library
Value
inverse of incomplete beta function
Author(s)
Kyun-Seop Bae <k@acr.kr>
References
Galassi M, et al. GNU Scientific Library Reference Manual. 3rd ed. Network Theory, 2009. Moshier SL. Methods and Programs for Mathematical Functions. Ellis Horwood, 1989. Abramowitz M, Stegun IA. Handbook of Mathematical Functions. Dover, 1972.
Examples
invbetai(0.5, 2, 3)
qbeta(0.5, 2, 3)
Inverse of complementary error function
Description
Inverse of complementary error function.
Usage
inverfc(p)
Arguments
p |
a positive real integration value usually between 0 and 2 |
Details
This calls erfc.
Ref: Cephes ndtri, as redistributed in ALGLIB specialfunctions.cs (invnormalcdf)
Value
inverse of complementary error function value, p = erfc(x)
Author(s)
Kyun-Seop Bae <k@acr.kr>
References
Galassi M, et al. GNU Scientific Library Reference Manual. 3rd ed. Network Theory, 2009. Moshier SL. Methods and Programs for Mathematical Functions. Ellis Horwood, 1989. Abramowitz M, Stegun IA. Handbook of Mathematical Functions. Dover, 1972.
Examples
inverfc(0.05)
erfc(inverfc(0.05)) # back to 0.05
inverfc(1) # 0
Inverse of gammp function
Description
Inverse of gammp function
Usage
invgammp(p, a)
Arguments
p |
integration value between 0 and 1 |
a |
shape constrant, distribution parameter |
Details
This calls gammln and gammp
Ref: Wilson and Hilferty (1931) starting value refined by bracketed Newton steps, following gsl_cdf_gamma_Pinv of the GNU Scientific Library
Value
inverse of incomplete gamma function
Author(s)
Kyun-Seop Bae <k@acr.kr>
References
Galassi M, et al. GNU Scientific Library Reference Manual. 3rd ed. Network Theory, 2009. Moshier SL. Methods and Programs for Mathematical Functions. Ellis Horwood, 1989. Abramowitz M, Stegun IA. Handbook of Mathematical Functions. Dover, 1972.
Examples
invgammp(0.5, 3)
qgamma(0.5, 3)
Multiple Linear Regression
Description
Multiple linear regression.
Usage
mlr(y, x.raw, standardize=0, Plot=FALSE)
Arguments
y |
dependent part, a vector |
x.raw |
independent part, a matrix |
standardize |
standardize method, 0 means no standardize |
Plot |
plot or not |
Details
It shows various outputs.
Value
Variable |
variable names |
Estimate |
estimates |
SE |
standard error |
T |
t value |
p-value |
p-value |
Residual |
residuals |
R-student |
externally studentized residuals |
hat |
hat value |
Cook's D |
Cook's D |
Covratio |
Covratio |
DIFFITS |
DIFFITS |
DFBETAs |
DFBETAs |
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
set.seed(1)
n <- 30
X <- data.frame(a = rnorm(n, 10, 2), b = rnorm(n, -5, 3))
y <- 1 + 2*X$a - X$b + rnorm(n)
fit <- mlr(y, X)
fit[[1]] # estimates, SE, t, p
coef(summary(lm(y ~ a + b, data = X))) # base R, for comparison
mlr(y, X, standardize = 1)[[1]] # centred by column
Integration using Romberg integration
Description
Integrates with given fx, a, b, and n
Usage
romb(fx, a, b, N=4)
Arguments
fx |
real valued scalar function |
a |
from |
b |
to |
N |
degree; the larger, the precise |
Details
This gives approximate integration value using Romberg integration. Argument N should larger than 2.
Value
Integration value from a to b with function.
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
fx = function(x) exp(-x/100)
# exact value: 100 * (1 - exp(-0.24)) = 21.33721
romb(fx, 0, 24, 10)
Probability for Run Test
Description
p-value for run test
Usage
run.p(m, n, r)
Arguments
m |
count of fewer species (minimum value = 0) |
n |
count of more frequent species (minimum value = 1) |
r |
count of run (minimum value = 1) |
Details
It calculates p-value for run test, P(Run count <= r | m, n)
Value
probability of run count to be less than or equal to r with m and n. P(Run count <= r | m, n)
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
run.p(5, 5, 4) # P(run count <= 4 | m=5, n=5)
run.p(5, 5, 10)
Random number of uniform distribution [0, 1) by linear congruential method
Description
Random number generation distributed as Uniform[0, 1) by linear congruential method
Usage
runifLC(n = 1, Seed = 123457, a = 16807, m = 2147483647, k = 0, b = 10)
Arguments
n |
count of random numbers to generate |
Seed |
Seed number. If abs(Seed) is less than 1, Sys.time() is the seed. |
a |
number to multiplier |
m |
number to mod. It should be a prime number. |
k |
number to add |
b |
number to discard initially |
Details
R[i] = X[i]/(m + 1). X[i] = (a*X[i - 1] + c) mod m. Then, period is m - 1.
Value
Uniform[0, 1) random numbers of n
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
runifLC(8)
runifLC(8, 1)
runifLC(8, 2)
runifLC(8, 0) # random seed
Slow Fourier Transformation
Description
Fourier trasnformation using the definition, therefore slow.
Usage
sft(y)
Arguments
y |
a sequence of fixed time interval |
Details
This is slow but easy to understand.
Value
Fourier transformation result
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
sft(c(1, 2, 3, 4)) # slow Fourier transform
fft(c(1, 2, 3, 4)) # base R, for comparison
Integration using Simpson's 1/3 formula
Description
Integrates with given fx, a, b, and n
Usage
simps13(fx, a, b, n)
Arguments
fx |
real valued scalar function |
a |
from |
b |
to |
n |
split count |
Details
This gives approximate integration value using Simpson's 1/3 formula. Argument n should be even number.
Value
Integration value from a to b with function.
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
fx = function(x) exp(-x/100)
# exact value: 100 * (1 - exp(-0.24)) = 21.33721
simps13(fx, 0, 24, 10) # n must be even
simps13(fx, 0, 24, 30)
Integration using Simpson's 3/8 formula
Description
Integrates with given fx, a, b, and n
Usage
simps38(fx, a, b, n)
Arguments
fx |
real valued scalar function |
a |
from |
b |
to |
n |
split count |
Details
This gives approximate integration value using Simpson's 3/8 formula. Argument n should a multiple of 3.
Value
Integration value from a to b with function.
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
fx = function(x) exp(-x/100)
# exact value: 100 * (1 - exp(-0.24)) = 21.33721
simps38(fx, 0, 24, 12) # n must be a multiple of 3
simps38(fx, 0, 24, 30)
Factorial using Table
Description
This function returns factorial value from the stored table.
Usage
tableFactorial(n)
Arguments
n |
positive integer to be calculated |
Details
This function returns factorial value from the table known to be precise.
Value
factorial value
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
tableFactorial(0)
tableFactorial(170)
tableFactorial(171)
Integration using trapezoidal rule
Description
Integrates with given two sequences: x_i and y_i
Usage
trapez0(x, y)
Arguments
x |
sequence of x |
y |
sequence of y |
Details
This simplest implementation of trapezoidal rule. The length of two sequences should be same
Value
Integration value with given sequences.
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
fx = function(x) exp(-x/100)
x = c(0, 0.5, 1, 2, 3, 4, 6, 8, 12, 24)
y = fx(x)
trapez0(x,y)
Integration using trapezoidal rule
Description
Integrates with given fx, a, b, and n
Usage
trapez1(fx, a, b, n)
Arguments
fx |
real valued scalar function |
a |
from |
b |
to |
n |
split count |
Details
This gives approximate integration value using trapezoidal rule.
Value
Integration value from a to b with function.
Author(s)
Kyun-Seop Bae <k@acr.kr>
Examples
fx = function(x) exp(-x/100)
# exact value: 100 * (1 - exp(-0.24)) = 21.33721
trapez1(fx, 0, 24, 10)
trapez1(fx, 0, 24, 1000)