This commit is contained in:
Tom
2021-05-20 14:33:37 +02:00
commit ca06e3526a
32 changed files with 666 additions and 0 deletions

9
ue01/twosums/DESCRIPTION Normal file
View 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
View File

@@ -0,0 +1 @@
export("sum1", "sum2")

12
ue01/twosums/R/sum1.R Normal file
View 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
View 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)
}

View 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
View 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
View 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.

View 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
View 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];
}
}
}