x<-rpois(1:10, lambda=40)
y<-rpois(1:10, lambda=10)
alpha<-.2
beta<-1.2
lAddition<-function(x, y){
z<-numeric(length(x));i<-1
repeat{
if((i-1)==length(x)){break}
z[i]<-x[i]+y[i]
i<-i+1
}
return(z)}
lAddition(rpois(1:10, lambda=70), rpois(1:10, lambda=20))
## [1] 96 84 89 89 97 91 84 75 101 95
lVAdd<-function(x, y){
vapply(1:length(x), function(i) x[i]+y[i], FUN.VALUE = numeric(1))}
lVAdd(rpois(1:10, lambda=70), rpois(1:10, lambda=20))
## [1] 97 88 83 88 94 83 100 100 86 89
lSubtraction<-function(x, y){
z<-numeric(length(x));i<-1
repeat{
if((i-1)==length(x)){break}
z[i]<-x[i]-y[i]
i<-i+1}
return(z)}
lSubtraction(rpois(1:10, lambda=70), rpois(1:10, lambda=20))
## [1] 51 57 42 61 29 50 41 53 39 53
lVSubtract<-function(x, y){
vapply(1:length(x), function(i) x[i]-y[i], FUN.VALUE = numeric(1))}
lVSubtract(rpois(1:10, lambda=70), rpois(1:10, lambda=20))
## [1] 51 48 40 53 39 40 50 56 39 57
lScaling<-function(x, alpha){
z<-numeric(length(x));i<-1
repeat{
if((i-1)==length(x)){break}
z[i]<-x[i]*alpha
i<-i+1}
return(z)}
lScaling(rpois(1:10, lambda=70), 2.2)
## [1] 158.4 136.4 149.6 162.8 154.0 173.8 147.4 143.0 173.8 173.8
lVScale<-function(x, alpha){
vapply(1:length(x), function(i) x[i]*alpha, FUN.VALUE = numeric(1))}
lVScale(rpois(1:10, lambda=70), 2.2)
## [1] 178.2 154.0 162.8 145.2 132.0 162.8 134.2 143.0 158.4 154.0
lAXPY<-function(x, y, alpha){
z<-numeric(length(x));i<-1
repeat{
if((i-1)==length(x)){break}
z[i]<-(x[i]*alpha)+y[i]
i<-i+1}
return(z)}
lAXPY(rpois(1:10, lambda=70),rpois(1:10, lambda=10), 2.2)
## [1] 145.0 152.8 144.6 168.4 171.6 201.2 147.2 139.8 182.2 184.2
lVAXPY<-function(x, y, alpha){
vapply(1:length(x), function(i) (x[i]*alpha)+y[i], FUN.VALUE = numeric(1))
}
lVAXPY(rpois(1:10, lambda=70),rpois(1:10, lambda=10), 2.2)
## [1] 186.4 178.4 170.0 149.8 156.4 145.0 164.0 181.2 166.2 143.2
lCombinations<-function(x, y, alpha=1, beta=1){
w<-0 # w is our running sum
for(j in seq(from=1, to=length(x))){
w<-w+((x[j]*alpha)+(y[j])*beta)
}
return(w)
}
lCombinations(x, y, alpha, beta)
## [1] 196.4
lVComb<-function(x, y, alpha=1, beta=1){
sum(vapply(1:length(x), function(j) ((x[j]*alpha)+(y[j])*beta), FUN.VALUE = numeric(1)))
}
lVComb(x, y, alpha, beta)
## [1] 196.4
Note that in this algorithm, \(\alpha\) is our running sum.
lDotProduct<-function(x, y){
alpha<-0 # alpha is our running sum
for(i in seq(from=1, to=length(x))){
alpha<-(x[i]*y[i])+alpha
}
return(alpha)
}
lDotProduct(x, y)
## [1] 3843
lLength<-function(x){
z<-0
for(i in seq(from=1, to=length(x))){
z<-(x[i])^2+z
}
return(sqrt(z))
}
lLength(c(1,2,5,0,1)) # sum 9, sq 31, sqrt 5.567764
## [1] 5.567764
sqrt(sum(c(1,5,6,1) * t(c(1,5,6,1))))
## [1] 7.937254
lLength(c(1,5,6,1)) == sqrt(sum(c(1,5,6,1) * t(c(1,5,6,1)))) & lLength(c(1,5,6,1)) == sqrt(lDotProduct(c(1,5,6,1), t(c(1,5,6,1))))
## [1] TRUE