@@ -146,7 +146,7 @@ sigma_3: 2
146146Error : in 'pfilter': non-finite state variable: x1
147147>
148148> try(pfilter(pf,rprocess=onestep(
149- + function(x, t, params, delta.t, ...)stop("yikes!"))))
149+ + function(x, t, params, delta.t, ...)stop("yikes!"))))
150150Error : in 'pfilter': in 'rprocess': yikes!
151151> try(pfilter(pf,dmeasure=Csnippet("error(\"ouch!\");")))
152152Error : in 'pfilter': in 'dmeasure': ouch!
@@ -161,6 +161,27 @@ Error : in 'pfilter': in 'dmeasure': ouch!
161161> pf4 <- pfilter(pf,dmeasure=Csnippet("lik = (give_log) ? R_NegInf : 0;"),
162162+ filter.traj=TRUE)
163163>
164+ > stopifnot(
165+ + pf2 |> filter_mean() |> dim()==c(2,100),
166+ + pf2 |> filter_mean(vars="x1") |> dim()==c(1,100),
167+ + pf2 |> filter_mean(vars=c("x2","x1")) |> dimnames() |> getElement("name")==c("x2","x1"),
168+ + pf2 |> filter_mean(format="d") |> dim()==c(200,3),
169+ + pf2 |> filter_mean(vars="x2",format="d") |> dim()==c(100,3),
170+ + pf2 |> filter_mean(vars="x2",format="d") |> names()==c("name","time","value"),
171+ + pf2 |> pred_mean() |> dim()==c(2,100),
172+ + pf2 |> pred_mean(vars="x1") |> dim()==c(1,100),
173+ + pf2 |> pred_mean(vars=c("x2","x1")) |> dimnames() |> getElement("name")==c("x2","x1"),
174+ + pf2 |> pred_mean(format="d") |> dim()==c(200,3),
175+ + pf2 |> pred_mean(vars="x2",format="d") |> dim()==c(100,3),
176+ + pf2 |> pred_mean(vars="x2",format="d") |> names()==c("name","time","value"),
177+ + pf2 |> pred_var() |> dim()==c(2,100),
178+ + pf2 |> pred_var(vars="x1") |> dim()==c(1,100),
179+ + pf2 |> pred_var(vars=c("x2","x1")) |> dimnames() |> getElement("name")==c("x2","x1"),
180+ + pf2 |> pred_var(format="d") |> dim()==c(200,3),
181+ + pf2 |> pred_var(vars="x2",format="d") |> dim()==c(100,3),
182+ + pf2 |> pred_var(vars="x2",format="d") |> names()==c("name","time","value")
183+ + )
184+ >
164185> pf1 |> saved_states(format="data") |> names()
165186[1] "time" ".id" "name" "value"
166187> pf1 |> saved_states(format="data") |> dim()
@@ -234,6 +255,10 @@ Error : in 'saved_states': 'object' is a required argument.
234255Error : 'saved_states' is undefined for 'object' of class 'NULL'.
235256> try(saved_states("bob"))
236257Error : 'saved_states' is undefined for 'object' of class 'character'.
258+ > stopifnot(
259+ + filter_traj(pf1,vars="x2") |> dim()==c(1,1,101),
260+ + filter_traj(pf1,vars="x2",format="d") |> dim()==c(101,4)
261+ + )
237262>
238263> try(ou2 |> as.data.frame() |> pfilter(Np=1000))
239264Error : in 'pfilter': 'times' should either be a numeric vector of observation times or a single name identifying the column of data that represents the observation times.
@@ -245,10 +270,10 @@ Error : in 'pfilter': 'times' should either be a numeric vector of observation t
245270+ times="time",t0=0,Np=500,
246271+ params=list(x1_0=-3,x2_0=4),
247272+ rprocess=onestep(
248- + step.fun=function(x1,x2,delta.t,...) {
249- + setNames(rnorm(n=2,mean=c(x1,x2),sd=5*delta.t),c("x1","x2"))
250- + }
251- + ),
273+ + step.fun=function(x1,x2,delta.t,...) {
274+ + setNames(rnorm(n=2,mean=c(x1,x2),sd=5*delta.t),c("x1","x2"))
275+ + }
276+ + ),
252277+ dmeasure=function(x1,x2,y1,y2,...,log) {
253278+ ll <- sum(dnorm(x=c(y1,y2),mean=c(x1,x2),sd=5,log=TRUE))
254279+ if (log) ll else exp(ll)
0 commit comments