init
This commit is contained in:
BIN
ue01/cpu_times.pdf
Normal file
BIN
ue01/cpu_times.pdf
Normal file
Binary file not shown.
11
ue01/sum1.R
Normal file
11
ue01/sum1.R
Normal file
@@ -0,0 +1,11 @@
|
||||
sum1 <- function(m) {
|
||||
res = 0
|
||||
|
||||
for(i in 1:dim(m)[1]) {
|
||||
for(j in 1:dim(m)[2]) {
|
||||
res <- res + m[i,j]
|
||||
}
|
||||
}
|
||||
|
||||
return(res)
|
||||
}
|
10
ue01/sum2.R
Normal file
10
ue01/sum2.R
Normal file
@@ -0,0 +1,10 @@
|
||||
sum2 <- function(m) {
|
||||
res = .C("sum2"
|
||||
,mtrx=as.double(m)
|
||||
,m=as.integer(dim(m)[1])
|
||||
,n=as.integer(dim(m)[2])
|
||||
,res=as.double(0)
|
||||
)
|
||||
|
||||
return(res$res)
|
||||
}
|
13
ue01/sum2.c
Normal file
13
ue01/sum2.c
Normal file
@@ -0,0 +1,13 @@
|
||||
#include <R.h>
|
||||
|
||||
void sum2(double* mtrx, int* m, int* n, double* res)
|
||||
{
|
||||
*res = 0;
|
||||
|
||||
for(int i=0; i < *n; i++)
|
||||
{
|
||||
for(int j=0; j < *m; j++) {
|
||||
*res += mtrx[j * (*n) + i];
|
||||
}
|
||||
}
|
||||
}
|
BIN
ue01/sum2.o
Normal file
BIN
ue01/sum2.o
Normal file
Binary file not shown.
BIN
ue01/sum2.so
Executable file
BIN
ue01/sum2.so
Executable file
Binary file not shown.
9
ue01/test1.R
Normal file
9
ue01/test1.R
Normal file
@@ -0,0 +1,9 @@
|
||||
# test1.R
|
||||
|
||||
x <- c(1,2,5,7)
|
||||
mx <- mean(x) # Mittelwert berechnen
|
||||
sx <- sd(x) # Standardabweichung berechnen
|
||||
|
||||
cat("x = ", x, "\n")
|
||||
cat("Mittelwert = ", mx, "\n")
|
||||
cat("Standardabweichung = ", sx, "\n")
|
20
ue01/time_sum.R
Normal file
20
ue01/time_sum.R
Normal file
@@ -0,0 +1,20 @@
|
||||
source("sum1.R")
|
||||
source("sum2.R")
|
||||
dyn.load("sum2.so")
|
||||
|
||||
comp_sum_funcs <- function(sizes){
|
||||
msizes = c()
|
||||
times_1 = c()
|
||||
times_2 = c()
|
||||
|
||||
for(i in sizes) {
|
||||
m <- matrix(rnorm(i^2), i)
|
||||
|
||||
times_1 = append(times_1, summary(system.time(sum1(m)))[1])
|
||||
times_2 = append(times_2, summary(system.time(sum2(m)))[1])
|
||||
msizes = append(msizes, i)
|
||||
}
|
||||
|
||||
return(data.frame(size=msizes, sum_1 = times_1, sum_2 = times_2))
|
||||
}
|
||||
|
9
ue01/twosums/DESCRIPTION
Normal file
9
ue01/twosums/DESCRIPTION
Normal file
@@ -0,0 +1,9 @@
|
||||
Package: twosums
|
||||
Type: Package
|
||||
Title: What the package does (short line)
|
||||
Version: 1.0
|
||||
Date: 2021-05-12
|
||||
Author: Who wrote it
|
||||
Maintainer: Who to complain to <yourfault@somewhere.net>
|
||||
Description: More about what it does (maybe more than one line)
|
||||
License: What license is it under?
|
1
ue01/twosums/NAMESPACE
Normal file
1
ue01/twosums/NAMESPACE
Normal file
@@ -0,0 +1 @@
|
||||
export("sum1", "sum2")
|
12
ue01/twosums/R/sum1.R
Normal file
12
ue01/twosums/R/sum1.R
Normal file
@@ -0,0 +1,12 @@
|
||||
sum1 <-
|
||||
function(m) {
|
||||
res = 0
|
||||
|
||||
for(i in 1:dim(m)[1]) {
|
||||
for(j in 1:dim(m)[2]) {
|
||||
res <- res + m[i,j]
|
||||
}
|
||||
}
|
||||
|
||||
return(res)
|
||||
}
|
11
ue01/twosums/R/sum2.R
Normal file
11
ue01/twosums/R/sum2.R
Normal file
@@ -0,0 +1,11 @@
|
||||
sum2 <-
|
||||
function(m) {
|
||||
res = .C("sum2"
|
||||
,mtrx=as.double(m)
|
||||
,m=as.integer(dim(m)[1])
|
||||
,n=as.integer(dim(m)[2])
|
||||
,res=as.double(0)
|
||||
)
|
||||
|
||||
return(res$res)
|
||||
}
|
10
ue01/twosums/Read-and-delete-me
Normal file
10
ue01/twosums/Read-and-delete-me
Normal file
@@ -0,0 +1,10 @@
|
||||
* Edit the help file skeletons in 'man', possibly combining help files
|
||||
for multiple functions.
|
||||
* Edit the exports in 'NAMESPACE', and add necessary imports.
|
||||
* Put any C/C++/Fortran code in 'src'.
|
||||
* If you have compiled code, add a useDynLib() directive to
|
||||
'NAMESPACE'.
|
||||
* Run R CMD build to build the package tarball.
|
||||
* Run R CMD check to check the package tarball.
|
||||
|
||||
Read "Writing R Extensions" for more information.
|
69
ue01/twosums/man/sum1.Rd
Normal file
69
ue01/twosums/man/sum1.Rd
Normal file
@@ -0,0 +1,69 @@
|
||||
\name{sum1}
|
||||
\alias{sum1}
|
||||
%- Also NEED an '\alias' for EACH other topic documented here.
|
||||
\title{
|
||||
%% ~~function to do ... ~~
|
||||
}
|
||||
\description{
|
||||
%% ~~ A concise (1-5 lines) description of what the function does. ~~
|
||||
}
|
||||
\usage{
|
||||
sum1(m)
|
||||
}
|
||||
%- maybe also 'usage' for other objects documented here.
|
||||
\arguments{
|
||||
\item{m}{
|
||||
%% ~~Describe \code{m} here~~
|
||||
}
|
||||
}
|
||||
\details{
|
||||
%% ~~ If necessary, more details than the description above ~~
|
||||
}
|
||||
\value{
|
||||
%% ~Describe the value returned
|
||||
%% If it is a LIST, use
|
||||
%% \item{comp1 }{Description of 'comp1'}
|
||||
%% \item{comp2 }{Description of 'comp2'}
|
||||
%% ...
|
||||
}
|
||||
\references{
|
||||
%% ~put references to the literature/web site here ~
|
||||
}
|
||||
\author{
|
||||
%% ~~who you are~~
|
||||
}
|
||||
\note{
|
||||
%% ~~further notes~~
|
||||
}
|
||||
|
||||
%% ~Make other sections like Warning with \section{Warning }{....} ~
|
||||
|
||||
\seealso{
|
||||
%% ~~objects to See Also as \code{\link{help}}, ~~~
|
||||
}
|
||||
\examples{
|
||||
##---- Should be DIRECTLY executable !! ----
|
||||
##-- ==> Define data, use random,
|
||||
##-- or do help(data=index) for the standard data sets.
|
||||
|
||||
## The function is currently defined as
|
||||
function (m)
|
||||
{
|
||||
res = 0
|
||||
for (i in 1:dim(m)[1]) {
|
||||
for (j in 1:dim(m)[2]) {
|
||||
res <- res + m[i, j]
|
||||
}
|
||||
}
|
||||
return(res)
|
||||
}
|
||||
}
|
||||
% Add one or more standard keywords, see file 'KEYWORDS' in the
|
||||
% R documentation directory (show via RShowDoc("KEYWORDS")):
|
||||
% \keyword{ ~kwd1 }
|
||||
% \keyword{ ~kwd2 }
|
||||
% Use only one keyword per line.
|
||||
% For non-standard keywords, use \concept instead of \keyword:
|
||||
% \concept{ ~cpt1 }
|
||||
% \concept{ ~cpt2 }
|
||||
% Use only one concept per line.
|
65
ue01/twosums/man/sum2.Rd
Normal file
65
ue01/twosums/man/sum2.Rd
Normal file
@@ -0,0 +1,65 @@
|
||||
\name{sum2}
|
||||
\alias{sum2}
|
||||
%- Also NEED an '\alias' for EACH other topic documented here.
|
||||
\title{
|
||||
%% ~~function to do ... ~~
|
||||
}
|
||||
\description{
|
||||
%% ~~ A concise (1-5 lines) description of what the function does. ~~
|
||||
}
|
||||
\usage{
|
||||
sum2(m)
|
||||
}
|
||||
%- maybe also 'usage' for other objects documented here.
|
||||
\arguments{
|
||||
\item{m}{
|
||||
%% ~~Describe \code{m} here~~
|
||||
}
|
||||
}
|
||||
\details{
|
||||
%% ~~ If necessary, more details than the description above ~~
|
||||
}
|
||||
\value{
|
||||
%% ~Describe the value returned
|
||||
%% If it is a LIST, use
|
||||
%% \item{comp1 }{Description of 'comp1'}
|
||||
%% \item{comp2 }{Description of 'comp2'}
|
||||
%% ...
|
||||
}
|
||||
\references{
|
||||
%% ~put references to the literature/web site here ~
|
||||
}
|
||||
\author{
|
||||
%% ~~who you are~~
|
||||
}
|
||||
\note{
|
||||
%% ~~further notes~~
|
||||
}
|
||||
|
||||
%% ~Make other sections like Warning with \section{Warning }{....} ~
|
||||
|
||||
\seealso{
|
||||
%% ~~objects to See Also as \code{\link{help}}, ~~~
|
||||
}
|
||||
\examples{
|
||||
##---- Should be DIRECTLY executable !! ----
|
||||
##-- ==> Define data, use random,
|
||||
##-- or do help(data=index) for the standard data sets.
|
||||
|
||||
## The function is currently defined as
|
||||
function (m)
|
||||
{
|
||||
res = .C("sum2", mtrx = as.double(m), m = as.integer(dim(m)[1]),
|
||||
n = as.integer(dim(m)[2]), res = as.double(0))
|
||||
return(res$res)
|
||||
}
|
||||
}
|
||||
% Add one or more standard keywords, see file 'KEYWORDS' in the
|
||||
% R documentation directory (show via RShowDoc("KEYWORDS")):
|
||||
% \keyword{ ~kwd1 }
|
||||
% \keyword{ ~kwd2 }
|
||||
% Use only one keyword per line.
|
||||
% For non-standard keywords, use \concept instead of \keyword:
|
||||
% \concept{ ~cpt1 }
|
||||
% \concept{ ~cpt2 }
|
||||
% Use only one concept per line.
|
36
ue01/twosums/man/twosums-package.Rd
Normal file
36
ue01/twosums/man/twosums-package.Rd
Normal file
@@ -0,0 +1,36 @@
|
||||
\name{twosums-package}
|
||||
\alias{twosums-package}
|
||||
\alias{twosums}
|
||||
\docType{package}
|
||||
\title{
|
||||
\packageTitle{twosums}
|
||||
}
|
||||
\description{
|
||||
\packageDescription{twosums}
|
||||
}
|
||||
\details{
|
||||
|
||||
The DESCRIPTION file:
|
||||
\packageDESCRIPTION{twosums}
|
||||
\packageIndices{twosums}
|
||||
~~ An overview of how to use the package, including the most important ~~
|
||||
~~ functions ~~
|
||||
}
|
||||
\author{
|
||||
\packageAuthor{twosums}
|
||||
|
||||
Maintainer: \packageMaintainer{twosums}
|
||||
}
|
||||
\references{
|
||||
~~ Literature or other references for background information ~~
|
||||
}
|
||||
~~ Optionally other standard keywords, one per line, from file KEYWORDS in ~~
|
||||
~~ the R documentation directory ~~
|
||||
\keyword{ package }
|
||||
\seealso{
|
||||
~~ Optional links to other man pages, e.g. ~~
|
||||
~~ \code{\link[<pkg>:<pkg>-package]{<pkg>}} ~~
|
||||
}
|
||||
\examples{
|
||||
~~ simple examples of the most important functions ~~
|
||||
}
|
13
ue01/twosums/src/sum2.c
Normal file
13
ue01/twosums/src/sum2.c
Normal file
@@ -0,0 +1,13 @@
|
||||
#include <R.h>
|
||||
|
||||
void sum2(double* mtrx, int* m, int* n, double* res)
|
||||
{
|
||||
*res = 0;
|
||||
|
||||
for(int i=0; i < *n; i++)
|
||||
{
|
||||
for(int j=0; j < *m; j++) {
|
||||
*res += mtrx[j * (*n) + i];
|
||||
}
|
||||
}
|
||||
}
|
BIN
ue01/ue01.zip
Normal file
BIN
ue01/ue01.zip
Normal file
Binary file not shown.
Reference in New Issue
Block a user