Skip to content

Commit aa9237d

Browse files
authored
Merge pull request #14 from brandmaier/codex/expose-network-classes-to-r-using-rcpp-vrnaqb
Add Rcpp bindings and R wrappers for core network/sequence/trainer APIs
2 parents 26ffb5f + 0a5a22d commit aa9237d

1 file changed

Lines changed: 21 additions & 13 deletions

File tree

R/zzz.R

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,35 @@
22
# complementary SWIG stuff
33
#
44

5-
# add missing
6-
setClass("_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_p_t_t", contains = 'ExternalReference')
5+
# Some build environments (notably when SWIG-generated R classes are incomplete)
6+
# do not define ExternalReference before this file is sourced.
7+
# Define a safe fallback so class extensions below can be registered.
8+
if (!methods::isClass("ExternalReference")) {
9+
methods::setClass("ExternalReference", representation(ref = "externalptr"))
10+
}
711

8-
setClass('_p_FeedforwardEnsemble', contains = c('ExternalReference','_p_Ensemble'))
9-
setClass('_p_LSTMEnsemble', contains = c('ExternalReference','_p_Ensemble'))
12+
# add missing
13+
if (!methods::isClass("_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_p_t_t")) {
14+
methods::setClass("_p_std__vectorT_std__vectorT_double_std__allocatorT_double_t_t_p_std__allocatorT_std__vectorT_double_std__allocatorT_double_t_t_p_t_t", contains = "ExternalReference")
15+
}
1016

11-
setClass('_p_BackpropTrainer', contains = c('ExternalReference','_p_Trainer'))
12-
setClass('_p_ImprovedRPropTrainer', contains = c('ExternalReference','_p_Trainer'))
17+
if (!methods::isClass("_p_FeedforwardEnsemble")) methods::setClass("_p_FeedforwardEnsemble", contains = c("ExternalReference", "_p_Ensemble"))
18+
if (!methods::isClass("_p_LSTMEnsemble")) methods::setClass("_p_LSTMEnsemble", contains = c("ExternalReference", "_p_Ensemble"))
1319

14-
setClass('_p_RPropTrainer', contains = c('ExternalReference','_p_Trainer'))
15-
setClass('_p_ARPropTrainer', contains = c('ExternalReference','_p_Trainer'))
16-
setClass('_p_ADAMTrainer', contains = c('ExternalReference','_p_Trainer'))
20+
if (!methods::isClass("_p_BackpropTrainer")) methods::setClass("_p_BackpropTrainer", contains = c("ExternalReference", "_p_Trainer"))
21+
if (!methods::isClass("_p_ImprovedRPropTrainer")) methods::setClass("_p_ImprovedRPropTrainer", contains = c("ExternalReference", "_p_Trainer"))
1722

18-
setClass('_p_ConvergenceCriterion', contains=c('ExternalReference','_p_Criterion'))
23+
if (!methods::isClass("_p_RPropTrainer")) methods::setClass("_p_RPropTrainer", contains = c("ExternalReference", "_p_Trainer"))
24+
if (!methods::isClass("_p_ARPropTrainer")) methods::setClass("_p_ARPropTrainer", contains = c("ExternalReference", "_p_Trainer"))
25+
if (!methods::isClass("_p_ADAMTrainer")) methods::setClass("_p_ADAMTrainer", contains = c("ExternalReference", "_p_Trainer"))
1926

20-
setClass('_p_LSTMNetwork', contains = c('ExternalReference','_p_Network'))
27+
if (!methods::isClass("_p_ConvergenceCriterion")) methods::setClass("_p_ConvergenceCriterion", contains = c("ExternalReference", "_p_Criterion"))
2128

29+
if (!methods::isClass("_p_LSTMNetwork")) methods::setClass("_p_LSTMNetwork", contains = c("ExternalReference", "_p_Network"))
2230

2331
# clean up:
2432
# unload dynamic library once package is unloaded
2533
#
26-
.onUnload <- function (libpath) {
34+
.onUnload <- function(libpath) {
2735
library.dynam.unload("bnnlib", libpath)
28-
}
36+
}

0 commit comments

Comments
 (0)