From 4749acaf877d5569ebd3df680302f8c4232f1762 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Pelletier?= <franc00018@gmail.com>
Date: Sat, 1 Feb 2014 21:15:59 -0500
Subject: [PATCH] ajout du projet existant

---
 .project                          | 19 +++++++++++++++++
 .settings/de.walware.r.core.prefs |  2 ++
 DESCRIPTION                       |  9 ++++++++
 NAMESPACE                         |  0
 R/fft.density.R                   | 34 +++++++++++++++++++++++++++++++
 man/fft.density.Rd                | 33 ++++++++++++++++++++++++++++++
 6 files changed, 97 insertions(+)
 create mode 100644 .project
 create mode 100644 .settings/de.walware.r.core.prefs
 create mode 100644 DESCRIPTION
 create mode 100644 NAMESPACE
 create mode 100644 R/fft.density.R
 create mode 100644 man/fft.density.Rd

diff --git a/.project b/.project
new file mode 100644
index 0000000..dace9a3
--- /dev/null
+++ b/.project
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>FourierStuff</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>de.walware.statet.r.builders.RSupport</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>de.walware.statet.base.StatetNature</nature>
+		<nature>de.walware.statet.r.RNature</nature>
+		<nature>de.walware.statet.r.RPkgNature</nature>
+	</natures>
+</projectDescription>
diff --git a/.settings/de.walware.r.core.prefs b/.settings/de.walware.r.core.prefs
new file mode 100644
index 0000000..b677fbb
--- /dev/null
+++ b/.settings/de.walware.r.core.prefs
@@ -0,0 +1,2 @@
+RProjectBuild/Package.name=FourierStuff
+eclipse.preferences.version=1
diff --git a/DESCRIPTION b/DESCRIPTION
new file mode 100644
index 0000000..53e7d72
--- /dev/null
+++ b/DESCRIPTION
@@ -0,0 +1,9 @@
+Package: FourierStuff
+Title: Some probability stuff around Fourier transforms
+Version: 0.1
+Date: 2014-01-06
+Author: Francois Pelletier
+Maintainer: Francois Pelletier <francois@francoispelletier.org>
+Description: This is a package gathering different functions to work with the
+    characteristic function and Fourier transforms
+License: LGPL-3
diff --git a/NAMESPACE b/NAMESPACE
new file mode 100644
index 0000000..e69de29
diff --git a/R/fft.density.R b/R/fft.density.R
new file mode 100644
index 0000000..ca4e257
--- /dev/null
+++ b/R/fft.density.R
@@ -0,0 +1,34 @@
+# Get density from characteristic function
+# 
+# Author: François Pelletier
+###############################################################################
+
+#' Get density from characteristic function
+#' 
+#' @param char.fun Vectorized characteristic function
+#' @param n Amount of discretization points
+#' @param min Lower bound for density function
+#' @param max Upper bound for density function
+#' @return A data.frame object containing
+#' @return transform.grid: transform variate grid
+#' @return char.fun.t: characteristic function evaluated at t
+#' @return density.grid: density function grid
+#' @return density.value: density function evaluated at point x
+#' @author François Pelletier
+fft.density <- function(char.fun,n,min,max,...)
+{
+	index <- 0:(n-1)            	# Index
+	density.step <- (max-min)/n           	# Step for density function
+	density.grid <- min + index * density.step       	# Grid for density function
+	transform.step <- 2*pi / ( n * density.step) 	# Step for transform variate
+	lbound.char.fun <- -n/2 * transform.step         	# Evaluate characteristic function on range [c,d]
+	ubound.char.fun <-  n/2 * transform.step         	# Range centered at 0
+	transform.grid <- lbound.char.fun + index * transform.step         	# Grid for transform variate
+	char.fun.t <- char.fun(transform.grid,...) # Evaluate characteristifc function
+	tilted.char.fun.t <- exp( -1i * index * transform.step * min ) * char.fun.t # Tilt characteristic function
+	density.value <- Re(transform.step / (2*pi) * exp( - 1i * lbound.char.fun * density.grid ) * fft(tilted.char.fun.t)) #Use FFT to get density value, then untilt and normalize
+	data.frame(transform.grid,char.fun.t,density.grid,density.value)
+}
+
+
+
diff --git a/man/fft.density.Rd b/man/fft.density.Rd
new file mode 100644
index 0000000..f83c013
--- /dev/null
+++ b/man/fft.density.Rd
@@ -0,0 +1,33 @@
+\name{fft.density}
+\alias{fft.density}
+\title{Get density from characteristic function}
+\usage{
+fft.density(char.fun, n, min, max, ...)
+}
+\arguments{
+  \item{char.fun}{Vectorized characteristic function}
+
+  \item{n}{Amount of discretization points}
+
+  \item{min}{Lower bound for density function}
+
+  \item{max}{Upper bound for density function}
+}
+\value{
+A data.frame object containing
+
+transform.grid: transform variate grid
+
+char.fun.t: characteristic function evaluated at t
+
+density.grid: density function grid
+
+density.value: density function evaluated at point x
+}
+\description{
+Get density from characteristic function
+}
+\author{
+François Pelletier
+}
+