[chronojump] RDotNet working on Windows
- From: Xavier de Blas <xaviblas src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [chronojump] RDotNet working on Windows
- Date: Mon, 3 Mar 2014 01:19:25 +0000 (UTC)
commit ee96bfe64e9b93a641d55d8f2d67edec572ef6e6
Author: Windows Build <windows chronojump org>
Date: Mon Mar 3 02:15:29 2014 +0100
RDotNet working on Windows
Makefile.am | 2 +-
libcesarplayer/baconvideowidget-marshal.c | 494 +-
libcesarplayer/baconvideowidget-marshal.h | 88 +-
rdotnet/Makefile | 620 +++
rdotnet/Makefile.in | 620 +++
rdotnet/R.NET/BuiltinFunction.cs | 56 +-
rdotnet/R.NET/CharacterMatrix.cs | 203 +-
rdotnet/R.NET/CharacterVector.cs | 187 +-
rdotnet/R.NET/Closure.cs | 128 +-
rdotnet/R.NET/ComplexMatrix.cs | 196 +-
rdotnet/R.NET/ComplexVector.cs | 175 +-
rdotnet/R.NET/DataFrame.cs | 463 +-
rdotnet/R.NET/DataFrameColumnAttribute.cs | 74 +
rdotnet/R.NET/DataFrameRow.cs | 178 +-
rdotnet/R.NET/DataFrameRowAttribute.cs | 62 +
rdotnet/R.NET/Devices/CharacterDeviceAdapter.cs | 505 +-
rdotnet/R.NET/Devices/ConsoleDevice.cs | 276 +-
rdotnet/R.NET/Devices/ICharacterDevice.cs | 276 +-
rdotnet/R.NET/Devices/NullCharacterDevice.cs | 162 +-
.../R.NET/Diagnostics/DataFrameColumnDisplay.cs | 50 +
rdotnet/R.NET/Diagnostics/DataFrameDebugView.cs | 26 +
rdotnet/R.NET/Diagnostics/FactorDebugView.cs | 24 +
rdotnet/R.NET/Diagnostics/MatrixDebugView.cs | 25 +
rdotnet/R.NET/Diagnostics/VectorDebugView.cs | 25 +
rdotnet/R.NET/Dynamic/DataFrameDynamicMeta.cs | 56 +-
rdotnet/R.NET/Dynamic/ListDynamicMeta.cs | 56 +-
.../R.NET/Dynamic/SymbolicExpressionDynamicMeta.cs | 56 +-
rdotnet/R.NET/DynamicVector.cs | 462 +-
rdotnet/R.NET/Environment.cs | 185 +-
rdotnet/R.NET/Expression.cs | 110 +-
rdotnet/R.NET/ExpressionVector.cs | 120 +-
rdotnet/R.NET/Factor.cs | 108 +
rdotnet/R.NET/Function.cs | 42 +-
rdotnet/R.NET/GenericVector.cs | 191 +-
rdotnet/R.NET/IntegerMatrix.cs | 189 +-
rdotnet/R.NET/IntegerVector.cs | 248 +-
rdotnet/R.NET/InternalString.cs | 103 +-
rdotnet/R.NET/Internals/BusyType.cs | 30 +-
rdotnet/R.NET/Internals/ConsoleOutputType.cs | 22 +-
rdotnet/R.NET/Internals/Delegates.cs | 201 +-
rdotnet/R.NET/Internals/OutputMode.cs | 48 +-
rdotnet/R.NET/Internals/ParseStatus.cs | 78 +-
rdotnet/R.NET/Internals/SEXPREC.cs | 264 +-
rdotnet/R.NET/Internals/SEXPREC_HEADER.cs | 18 +-
rdotnet/R.NET/Internals/SaveActions.cs | 90 +-
rdotnet/R.NET/Internals/SymbolicExpressionType.cs | 368 +-
rdotnet/R.NET/Internals/Unix/Delegates.cs | 72 +-
rdotnet/R.NET/Internals/Unix/RStart.cs | 72 +-
rdotnet/R.NET/Internals/VECTOR_SEXPREC.cs | 98 +-
rdotnet/R.NET/Internals/Windows/Delegates.cs | 32 +-
rdotnet/R.NET/Internals/Windows/RStart.cs | 46 +-
rdotnet/R.NET/Internals/Windows/UiMode.cs | 14 +-
rdotnet/R.NET/Internals/YesNoCancel.cs | 38 +-
rdotnet/R.NET/Internals/sxpinfo.cs | 112 +-
rdotnet/R.NET/Language.cs | 68 +-
rdotnet/R.NET/LogicalMatrix.cs | 187 +-
rdotnet/R.NET/LogicalVector.cs | 175 +-
rdotnet/R.NET/Makefile | 843 ++++
rdotnet/R.NET/Makefile.am | 10 +-
rdotnet/R.NET/Makefile.in | 843 ++++
rdotnet/R.NET/Matrix.cs | 552 ++-
rdotnet/R.NET/NumericMatrix.cs | 205 +-
rdotnet/R.NET/NumericVector.cs | 253 +-
rdotnet/R.NET/Pairlist.cs | 80 +-
rdotnet/R.NET/ParseException.cs | 118 +-
rdotnet/R.NET/Properties/AssemblyInfo.cs | 37 +-
rdotnet/R.NET/ProtectedPointer.cs | 78 +-
rdotnet/R.NET/RDotNet.csproj | 21 +-
rdotnet/R.NET/REngine.cs | 1066 ++--
rdotnet/R.NET/REngineExtension.cs | 933 ++--
rdotnet/R.NET/RawMatrix.cs | 183 +-
rdotnet/R.NET/RawVector.cs | 242 +-
rdotnet/R.NET/SpecialFunction.cs | 56 +-
rdotnet/R.NET/StartupParameter.cs | 546 +-
rdotnet/R.NET/Symbol.cs | 136 +-
rdotnet/R.NET/SymbolicExpression.cs | 469 +-
rdotnet/R.NET/SymbolicExpressionExtension.cs | 1210 +++---
rdotnet/R.NET/Utility.cs | 117 +-
rdotnet/R.NET/Vector.cs | 435 +-
rdotnet/RDotNet.NativeLibrary/Makefile | 777 +++
rdotnet/RDotNet.NativeLibrary/Makefile.in | 777 +++
rdotnet/RDotNet.NativeLibrary/NativeUtility.cs | 88 +-
.../Properties/AssemblyInfo.cs | 37 +-
.../RDotNet.NativeLibrary.csproj | 13 +-
rdotnet/RDotNet.NativeLibrary/UnmanagedDll.cs | 385 +-
rdotnet/Rdll/i386/R.dll | Bin 0 -> 2928640 bytes
rdotnet/Rdll/i386/R.exe | Bin 0 -> 34816 bytes
rdotnet/Rdll/i386/RSetReg.exe | Bin 0 -> 20480 bytes
rdotnet/Rdll/i386/Rblas.dll | Bin 0 -> 239777 bytes
rdotnet/Rdll/i386/Rcmd.exe | Bin 0 -> 34304 bytes
rdotnet/Rdll/i386/Rgraphapp.dll | Bin 0 -> 348963 bytes
rdotnet/Rdll/i386/Rgui.exe | Bin 0 -> 17920 bytes
rdotnet/Rdll/i386/Riconv.dll | Bin 0 -> 102975 bytes
rdotnet/Rdll/i386/Rlapack.dll | Bin 0 -> 1914368 bytes
rdotnet/Rdll/i386/Rscript.exe | Bin 0 -> 21504 bytes
rdotnet/Rdll/i386/Rterm.exe | Bin 0 -> 18432 bytes
rdotnet/Rdll/i386/Rzlib.dll | Bin 0 -> 154917 bytes
rdotnet/Rdll/i386/open.exe | Bin 0 -> 12800 bytes
rdotnet/Rdll/x64/R.dll | Bin 0 -> 3056128 bytes
rdotnet/Rdll/x64/R.exe | Bin 0 -> 39424 bytes
rdotnet/Rdll/x64/RSetReg.exe | Bin 0 -> 23552 bytes
rdotnet/Rdll/x64/Rblas.dll | Bin 0 -> 343623 bytes
rdotnet/Rdll/x64/Rcmd.exe | Bin 0 -> 39424 bytes
rdotnet/Rdll/x64/Rgraphapp.dll | Bin 0 -> 377496 bytes
rdotnet/Rdll/x64/Rgui.exe | Bin 0 -> 22016 bytes
rdotnet/Rdll/x64/Riconv.dll | Bin 0 -> 131391 bytes
rdotnet/Rdll/x64/Rlapack.dll | Bin 0 -> 2120192 bytes
rdotnet/Rdll/x64/Rscript.exe | Bin 0 -> 25088 bytes
rdotnet/Rdll/x64/Rterm.exe | Bin 0 -> 22528 bytes
rdotnet/Rdll/x64/Rzlib.dll | Bin 0 -> 181309 bytes
rdotnet/Rdll/x64/open.exe | Bin 0 -> 16384 bytes
src/chronojump.cs | 35 +-
src/gui/encoder.cs | 16 +-
src/util.cs | 6 +-
win32/Makefile.am | 4 +
win32/deps/bin/R.exe | Bin 19456 -> 19456 bytes
win32/deps/bin/Rscript.exe | Bin 19456 -> 19456 bytes
win32/deps/bin/i386/R.dll | Bin 3491840 -> 2928640 bytes
win32/deps/bin/i386/R.exe | Bin 34816 -> 34816 bytes
win32/deps/bin/i386/RSetReg.exe | Bin 20480 -> 20480 bytes
win32/deps/bin/i386/Rblas.dll | Bin 238241 -> 239777 bytes
win32/deps/bin/i386/Rcmd.exe | Bin 34304 -> 34304 bytes
win32/deps/bin/i386/Rgraphapp.dll | Bin 348963 -> 348963 bytes
win32/deps/bin/i386/Rgui.exe | Bin 17920 -> 17920 bytes
win32/deps/bin/i386/Riconv.dll | Bin 102975 -> 102975 bytes
win32/deps/bin/i386/Rlapack.dll | Bin 1914368 -> 1914368 bytes
win32/deps/bin/i386/Rscript.exe | Bin 21504 -> 21504 bytes
win32/deps/bin/i386/Rterm.exe | Bin 18432 -> 18432 bytes
win32/deps/bin/i386/Rzlib.dll | Bin 154877 -> 154917 bytes
win32/deps/bin/i386/open.exe | Bin 12800 -> 12800 bytes
win32/deps/library/Cairo/DESCRIPTION | 26 +-
win32/deps/library/Cairo/MD5 | 38 +-
win32/deps/library/Cairo/Meta/Rd.rds | Bin 558 -> 558 bytes
win32/deps/library/Cairo/Meta/hsearch.rds | Bin 576 -> 576 bytes
win32/deps/library/Cairo/Meta/links.rds | Bin 232 -> 232 bytes
win32/deps/library/Cairo/Meta/nsInfo.rds | Bin 186 -> 186 bytes
win32/deps/library/Cairo/Meta/package.rds | Bin 1205 -> 1205 bytes
win32/deps/library/Cairo/NEWS | 29 +
win32/deps/library/Cairo/R/Cairo | 26 +-
win32/deps/library/Cairo/R/Cairo.rdb | Bin 7271 -> 6891 bytes
win32/deps/library/Cairo/R/Cairo.rdx | Bin 525 -> 512 bytes
win32/deps/library/Cairo/help/Cairo.rdb | Bin 24254 -> 24539 bytes
win32/deps/library/Cairo/help/Cairo.rdx | Bin 309 -> 310 bytes
win32/deps/library/Cairo/help/aliases.rds | Bin 181 -> 181 bytes
win32/deps/library/Cairo/help/paths.rds | Bin 167 -> 167 bytes
win32/deps/library/Cairo/html/00Index.html | 2 +-
win32/deps/library/Cairo/libs/i386/Cairo.dll | Bin 1009152 -> 1009152 bytes
win32/deps/library/Cairo/libs/i386/symbols.rds | Bin 2398 -> 2397 bytes
win32/deps/library/Cairo/libs/x64/Cairo.dll | Bin 1046016 -> 1046016 bytes
win32/deps/library/Cairo/libs/x64/symbols.rds | Bin 2373 -> 2371 bytes
win32/deps/library/EMD/DESCRIPTION | 19 -
win32/deps/library/EMD/INDEX | 22 -
win32/deps/library/EMD/MD5 | 31 -
win32/deps/library/EMD/Meta/Rd.rds | Bin 961 -> 0 bytes
win32/deps/library/EMD/Meta/data.rds | Bin 214 -> 0 bytes
win32/deps/library/EMD/Meta/hsearch.rds | Bin 910 -> 0 bytes
win32/deps/library/EMD/Meta/links.rds | Bin 405 -> 0 bytes
win32/deps/library/EMD/Meta/nsInfo.rds | Bin 215 -> 0 bytes
win32/deps/library/EMD/Meta/package.rds | Bin 855 -> 0 bytes
win32/deps/library/EMD/NAMESPACE | 10 -
win32/deps/library/EMD/R/EMD | 9 -
win32/deps/library/EMD/R/EMD.rdb | Bin 21138 -> 0 bytes
win32/deps/library/EMD/R/EMD.rdx | Bin 499 -> 0 bytes
win32/deps/library/EMD/data/beryllium.rda | Bin 1765 -> 0 bytes
win32/deps/library/EMD/data/datalist | 7 -
win32/deps/library/EMD/data/kospi200.rda | Bin 5036 -> 0 bytes
win32/deps/library/EMD/data/lena.rda | Bin 188871 -> 0 bytes
win32/deps/library/EMD/data/lennon.rda | Bin 38130 -> 0 bytes
win32/deps/library/EMD/data/solar.hs.rda | Bin 1436 -> 0 bytes
win32/deps/library/EMD/data/solar.lean.rda | Bin 2346 -> 0 bytes
win32/deps/library/EMD/data/sunspot.rda | Bin 1850 -> 0 bytes
win32/deps/library/EMD/help/AnIndex | 27 -
win32/deps/library/EMD/help/EMD.rdb | Bin 51544 -> 0 bytes
win32/deps/library/EMD/help/EMD.rdx | Bin 586 -> 0 bytes
win32/deps/library/EMD/help/aliases.rds | Bin 304 -> 0 bytes
win32/deps/library/EMD/help/paths.rds | Bin 260 -> 0 bytes
win32/deps/library/EMD/html/00Index.html | 67 -
win32/deps/library/EMD/html/R.css | 57 -
win32/deps/library/EMD/libs/i386/EMD.dll | Bin 20992 -> 0 bytes
win32/deps/library/EMD/libs/i386/symbols.rds | Bin 286 -> 0 bytes
win32/deps/library/EMD/libs/x64/EMD.dll | Bin 23040 -> 0 bytes
win32/deps/library/EMD/libs/x64/symbols.rds | Bin 284 -> 0 bytes
win32/deps/library/KernSmooth/DESCRIPTION | 22 -
win32/deps/library/KernSmooth/INDEX | 8 -
win32/deps/library/KernSmooth/LICENCE | 5 -
win32/deps/library/KernSmooth/Meta/Rd.rds | Bin 449 -> 0 bytes
win32/deps/library/KernSmooth/Meta/hsearch.rds | Bin 462 -> 0 bytes
win32/deps/library/KernSmooth/Meta/links.rds | Bin 165 -> 0 bytes
win32/deps/library/KernSmooth/Meta/nsInfo.rds | Bin 344 -> 0 bytes
win32/deps/library/KernSmooth/Meta/package.rds | Bin 852 -> 0 bytes
win32/deps/library/KernSmooth/NAMESPACE | 3 -
win32/deps/library/KernSmooth/R/KernSmooth | 9 -
win32/deps/library/KernSmooth/R/KernSmooth.rdb | Bin 33968 -> 0 bytes
win32/deps/library/KernSmooth/R/KernSmooth.rdx | Bin 433 -> 0 bytes
win32/deps/library/KernSmooth/help/AnIndex | 7 -
win32/deps/library/KernSmooth/help/KernSmooth.rdb | Bin 26530 -> 0 bytes
win32/deps/library/KernSmooth/help/KernSmooth.rdx | Bin 283 -> 0 bytes
win32/deps/library/KernSmooth/help/aliases.rds | Bin 102 -> 0 bytes
win32/deps/library/KernSmooth/help/paths.rds | Bin 154 -> 0 bytes
win32/deps/library/KernSmooth/html/00Index.html | 37 -
win32/deps/library/KernSmooth/html/R.css | 57 -
.../library/KernSmooth/libs/i386/KernSmooth.dll | Bin 25600 -> 0 bytes
.../KernSmooth/po/de/LC_MESSAGES/R-KernSmooth.mo | Bin 1276 -> 0 bytes
.../po/en quot/LC_MESSAGES/R-KernSmooth.mo | Bin 1170 -> 0 bytes
.../KernSmooth/po/pl/LC_MESSAGES/R-KernSmooth.mo | Bin 1446 -> 0 bytes
win32/deps/library/KernSmooth/tests/bkfe.R | 8 -
win32/deps/library/MASS/CITATION | 18 -
win32/deps/library/MASS/DESCRIPTION | 28 -
win32/deps/library/MASS/INDEX | 175 -
win32/deps/library/MASS/LICENCE | 49 -
win32/deps/library/MASS/Meta/Rd.rds | Bin 6435 -> 0 bytes
win32/deps/library/MASS/Meta/data.rds | Bin 2310 -> 0 bytes
win32/deps/library/MASS/Meta/hsearch.rds | Bin 5915 -> 0 bytes
win32/deps/library/MASS/Meta/links.rds | Bin 2468 -> 0 bytes
win32/deps/library/MASS/Meta/nsInfo.rds | Bin 1421 -> 0 bytes
win32/deps/library/MASS/Meta/package.rds | Bin 1034 -> 0 bytes
win32/deps/library/MASS/NAMESPACE | 174 -
win32/deps/library/MASS/NEWS | 189 -
win32/deps/library/MASS/R/MASS | 9 -
win32/deps/library/MASS/R/MASS.rdb | Bin 323730 -> 0 bytes
win32/deps/library/MASS/R/MASS.rdx | Bin 2893 -> 0 bytes
win32/deps/library/MASS/data/Rdata.rdb | Bin 140875 -> 0 bytes
win32/deps/library/MASS/data/Rdata.rds | Bin 766 -> 0 bytes
win32/deps/library/MASS/data/Rdata.rdx | Bin 1203 -> 0 bytes
win32/deps/library/MASS/help/AnIndex | 251 -
win32/deps/library/MASS/help/MASS.rdb | Bin 441807 -> 0 bytes
win32/deps/library/MASS/help/MASS.rdx | Bin 3253 -> 0 bytes
win32/deps/library/MASS/help/aliases.rds | Bin 1778 -> 0 bytes
win32/deps/library/MASS/help/paths.rds | Bin 1170 -> 0 bytes
win32/deps/library/MASS/html/00Index.html | 645 ---
win32/deps/library/MASS/html/R.css | 57 -
win32/deps/library/MASS/libs/i386/MASS.dll | Bin 29696 -> 0 bytes
.../deps/library/MASS/po/de/LC_MESSAGES/R-MASS.mo | Bin 17842 -> 0 bytes
.../library/MASS/po/en quot/LC_MESSAGES/R-MASS.mo | Bin 16844 -> 0 bytes
.../deps/library/MASS/po/fr/LC_MESSAGES/R-MASS.mo | Bin 17848 -> 0 bytes
.../deps/library/MASS/po/pl/LC_MESSAGES/R-MASS.mo | Bin 18323 -> 0 bytes
win32/deps/library/MASS/scripts/ch01.R | 114 -
win32/deps/library/MASS/scripts/ch02.R | 199 -
win32/deps/library/MASS/scripts/ch03.R | 185 -
win32/deps/library/MASS/scripts/ch04.R | 253 -
win32/deps/library/MASS/scripts/ch05.R | 283 --
win32/deps/library/MASS/scripts/ch06.R | 358 --
win32/deps/library/MASS/scripts/ch07.R | 184 -
win32/deps/library/MASS/scripts/ch08.R | 457 --
win32/deps/library/MASS/scripts/ch09.R | 104 -
win32/deps/library/MASS/scripts/ch10.R | 278 --
win32/deps/library/MASS/scripts/ch11.R | 223 -
win32/deps/library/MASS/scripts/ch12.R | 434 --
win32/deps/library/MASS/scripts/ch13.R | 285 --
win32/deps/library/MASS/scripts/ch14.R | 258 -
win32/deps/library/MASS/scripts/ch15.R | 188 -
win32/deps/library/MASS/scripts/ch16.R | 168 -
win32/deps/library/MASS/tests/BankWages.rda | Bin 1985 -> 0 bytes
.../library/MASS/tests/Examples/MASS-Ex.Rout.save | 5231 --------------------
win32/deps/library/MASS/tests/confint.R | 26 -
win32/deps/library/MASS/tests/fitdistr.R | 30 -
win32/deps/library/MASS/tests/fitdistr.Rout.save | 76 -
win32/deps/library/MASS/tests/glm.nb.R | 49 -
win32/deps/library/MASS/tests/hubers.R | 5 -
win32/deps/library/MASS/tests/lme.R | 16 -
win32/deps/library/MASS/tests/polr.R | 48 -
win32/deps/library/MASS/tests/profile.R | 10 -
win32/deps/library/MASS/tests/regression.R | 9 -
win32/deps/library/MASS/tests/regression.Rout.save | 47 -
win32/deps/library/MASS/tests/rlm.R | 91 -
win32/deps/library/MASS/tests/scripts.R | 36 -
win32/deps/library/Matrix/Copyrights | 58 -
win32/deps/library/Matrix/DESCRIPTION | 28 -
win32/deps/library/Matrix/Doxyfile | 1720 -------
win32/deps/library/Matrix/INDEX | 152 -
win32/deps/library/Matrix/Meta/Rd.rds | Bin 13215 -> 0 bytes
win32/deps/library/Matrix/Meta/data.rds | Bin 205 -> 0 bytes
win32/deps/library/Matrix/Meta/hsearch.rds | Bin 13733 -> 0 bytes
win32/deps/library/Matrix/Meta/links.rds | Bin 11118 -> 0 bytes
win32/deps/library/Matrix/Meta/nsInfo.rds | Bin 1530 -> 0 bytes
win32/deps/library/Matrix/Meta/package.rds | Bin 1118 -> 0 bytes
win32/deps/library/Matrix/Meta/vignette.rds | Bin 380 -> 0 bytes
win32/deps/library/Matrix/NAMESPACE | 317 --
win32/deps/library/Matrix/R/Matrix | 9 -
win32/deps/library/Matrix/R/Matrix.rdb | Bin 1923241 -> 0 bytes
win32/deps/library/Matrix/R/Matrix.rdx | Bin 11141 -> 0 bytes
win32/deps/library/Matrix/data/CAex.R | 18 -
win32/deps/library/Matrix/data/KNex.R | 11 -
win32/deps/library/Matrix/data/USCounties.R | 17 -
win32/deps/library/Matrix/doc/Announce.txt | 83 -
win32/deps/library/Matrix/doc/Comparisons.R | 164 -
win32/deps/library/Matrix/doc/Comparisons.Rnw | 257 -
win32/deps/library/Matrix/doc/Comparisons.pdf | Bin 76267 -> 0 bytes
win32/deps/library/Matrix/doc/Design-issues.R | 46 -
win32/deps/library/Matrix/doc/Design-issues.Rnw | 170 -
win32/deps/library/Matrix/doc/Design-issues.pdf | Bin 59895 -> 0 bytes
win32/deps/library/Matrix/doc/Intro2Matrix.R | 99 -
win32/deps/library/Matrix/doc/Intro2Matrix.Rnw | 450 --
win32/deps/library/Matrix/doc/Intro2Matrix.pdf | Bin 128938 -> 0 bytes
win32/deps/library/Matrix/doc/Introduction.R | 8 -
win32/deps/library/Matrix/doc/Introduction.Rnw | 169 -
win32/deps/library/Matrix/doc/Introduction.pdf | Bin 70547 -> 0 bytes
win32/deps/library/Matrix/doc/Matrix.bib | 483 --
win32/deps/library/Matrix/doc/SuiteSparse/AMD.txt | 213 -
.../library/Matrix/doc/SuiteSparse/CHOLMOD.txt | 81 -
.../deps/library/Matrix/doc/SuiteSparse/COLAMD.txt | 118 -
win32/deps/library/Matrix/doc/SuiteSparse/SPQR.txt | 56 -
.../Matrix/doc/SuiteSparse/SuiteSparse_config.txt | 44 -
.../library/Matrix/doc/SuiteSparse/UserGuides.txt | 20 -
win32/deps/library/Matrix/doc/index.html | 47 -
win32/deps/library/Matrix/doc/sparseModels.R | 157 -
win32/deps/library/Matrix/doc/sparseModels.Rnw | 295 --
win32/deps/library/Matrix/doc/sparseModels.pdf | Bin 98855 -> 0 bytes
win32/deps/library/Matrix/external/CAex_slots.rda | Bin 1672 -> 0 bytes
win32/deps/library/Matrix/external/KNex_slots.rda | Bin 56448 -> 0 bytes
.../library/Matrix/external/USCounties_slots.rda | Bin 30347 -> 0 bytes
win32/deps/library/Matrix/external/lund_a.mtx | 1300 -----
win32/deps/library/Matrix/external/lund_a.rsa | 356 --
win32/deps/library/Matrix/external/pores_1.mtx | 182 -
win32/deps/library/Matrix/external/test3comp.rda | Bin 4497 -> 0 bytes
win32/deps/library/Matrix/external/utm300.rua | 1295 -----
win32/deps/library/Matrix/external/wrong.mtx | 4 -
win32/deps/library/Matrix/help/AnIndex | 1991 --------
win32/deps/library/Matrix/help/Matrix.rdb | Bin 471121 -> 0 bytes
win32/deps/library/Matrix/help/Matrix.rdx | Bin 2354 -> 0 bytes
win32/deps/library/Matrix/help/aliases.rds | Bin 12034 -> 0 bytes
win32/deps/library/Matrix/help/paths.rds | Bin 861 -> 0 bytes
win32/deps/library/Matrix/html/00Index.html | 1411 ------
win32/deps/library/Matrix/html/R.css | 57 -
win32/deps/library/Matrix/include/Matrix.h | 90 -
win32/deps/library/Matrix/include/Matrix_stubs.c | 667 ---
win32/deps/library/Matrix/include/cholmod.h | 979 ----
win32/deps/library/Matrix/libs/i386/Matrix.dll | Bin 684544 -> 0 bytes
.../library/Matrix/po/de/LC_MESSAGES/Matrix.mo | Bin 23301 -> 0 bytes
.../library/Matrix/po/de/LC_MESSAGES/R-Matrix.mo | Bin 22982 -> 0 bytes
.../Matrix/po/en quot/LC_MESSAGES/Matrix.mo | Bin 22282 -> 0 bytes
.../Matrix/po/en quot/LC_MESSAGES/R-Matrix.mo | Bin 24228 -> 0 bytes
.../library/Matrix/po/pl/LC_MESSAGES/Matrix.mo | Bin 24212 -> 0 bytes
.../library/Matrix/po/pl/LC_MESSAGES/R-Matrix.mo | Bin 26518 -> 0 bytes
win32/deps/library/Matrix/test-tools-1.R | 200 -
win32/deps/library/Matrix/test-tools-Matrix.R | 633 ---
win32/deps/library/Matrix/test-tools.R | 10 -
win32/deps/library/Matrix/tests/Class+Meth.R | 348 --
win32/deps/library/Matrix/tests/Simple.R | 837 ----
win32/deps/library/Matrix/tests/abIndex-tsts.R | 121 -
win32/deps/library/Matrix/tests/base-matrix-fun.R | 45 -
win32/deps/library/Matrix/tests/bind.R | 131 -
win32/deps/library/Matrix/tests/bind.Rout.save | 385 --
win32/deps/library/Matrix/tests/dg_Matrix.R | 95 -
win32/deps/library/Matrix/tests/dpo-test.R | 171 -
win32/deps/library/Matrix/tests/dtpMatrix.R | 63 -
win32/deps/library/Matrix/tests/factorizing.R | 399 --
win32/deps/library/Matrix/tests/group-methods.R | 272 -
win32/deps/library/Matrix/tests/indexing.R | 839 ----
win32/deps/library/Matrix/tests/indexing.Rout.save | 1634 ------
win32/deps/library/Matrix/tests/matprod.R | 435 --
win32/deps/library/Matrix/tests/matr-exp.R | 79 -
win32/deps/library/Matrix/tests/other-pkgs.R | 139 -
win32/deps/library/Matrix/tests/spModel.matrix.R | 190 -
win32/deps/library/Matrix/tests/validObj.R | 177 -
win32/deps/library/Matrix/tests/write-read.R | 57 -
win32/deps/library/akima/DESCRIPTION | 19 -
win32/deps/library/akima/INDEX | 8 -
win32/deps/library/akima/LICENSE | 26 -
win32/deps/library/akima/MD5 | 25 -
win32/deps/library/akima/Meta/Rd.rds | Bin 432 -> 0 bytes
win32/deps/library/akima/Meta/data.rds | Bin 120 -> 0 bytes
win32/deps/library/akima/Meta/hsearch.rds | Bin 455 -> 0 bytes
win32/deps/library/akima/Meta/links.rds | Bin 169 -> 0 bytes
win32/deps/library/akima/Meta/nsInfo.rds | Bin 234 -> 0 bytes
win32/deps/library/akima/Meta/package.rds | Bin 768 -> 0 bytes
win32/deps/library/akima/NAMESPACE | 2 -
win32/deps/library/akima/R/akima | 9 -
win32/deps/library/akima/R/akima.rdb | Bin 7882 -> 0 bytes
win32/deps/library/akima/R/akima.rdx | Bin 339 -> 0 bytes
win32/deps/library/akima/data/akima.rda | Bin 660 -> 0 bytes
win32/deps/library/akima/help/AnIndex | 9 -
win32/deps/library/akima/help/akima.rdb | Bin 25737 -> 0 bytes
win32/deps/library/akima/help/akima.rdx | Bin 247 -> 0 bytes
win32/deps/library/akima/help/aliases.rds | Bin 126 -> 0 bytes
win32/deps/library/akima/help/paths.rds | Bin 128 -> 0 bytes
win32/deps/library/akima/html/00Index.html | 41 -
win32/deps/library/akima/html/R.css | 57 -
win32/deps/library/akima/libs/i386/akima.dll | Bin 305152 -> 0 bytes
win32/deps/library/akima/libs/i386/symbols.rds | Bin 1100 -> 0 bytes
win32/deps/library/akima/libs/x64/akima.dll | Bin 292352 -> 0 bytes
win32/deps/library/akima/libs/x64/symbols.rds | Bin 1112 -> 0 bytes
win32/deps/library/base/CITATION | 3 +-
win32/deps/library/base/DESCRIPTION | 6 +-
win32/deps/library/base/INDEX | 11 +-
win32/deps/library/base/Meta/Rd.rds | Bin 20020 -> 20223 bytes
win32/deps/library/base/Meta/demo.rds | Bin 244 -> 244 bytes
win32/deps/library/base/Meta/hsearch.rds | Bin 20612 -> 20830 bytes
win32/deps/library/base/Meta/links.rds | Bin 11724 -> 11924 bytes
win32/deps/library/base/Meta/package.rds | Bin 464 -> 470 bytes
win32/deps/library/base/R/Rprofile | 12 +
win32/deps/library/base/R/base | 45 +-
win32/deps/library/base/R/base.rdb | Bin 729357 -> 721071 bytes
win32/deps/library/base/R/base.rdx | Bin 12444 -> 12384 bytes
win32/deps/library/base/demo/error.catching.R | 13 +-
win32/deps/library/base/demo/is.things.R | 2 +-
win32/deps/library/base/help/AnIndex | 55 +-
win32/deps/library/base/help/aliases.rds | Bin 10955 -> 11149 bytes
win32/deps/library/base/help/base.rdb | Bin 1853302 -> 1875156 bytes
win32/deps/library/base/help/base.rdx | Bin 8590 -> 8603 bytes
win32/deps/library/base/help/paths.rds | Bin 2894 -> 2907 bytes
win32/deps/library/base/html/00Index.html | 76 +-
.../deps/library/base/po/da/LC_MESSAGES/R-base.mo | Bin 30956 -> 0 bytes
.../deps/library/base/po/de/LC_MESSAGES/R-base.mo | Bin 56538 -> 0 bytes
.../library/base/po/en quot/LC_MESSAGES/R-base.mo | Bin 54616 -> 0 bytes
.../deps/library/base/po/fr/LC_MESSAGES/R-base.mo | Bin 59345 -> 0 bytes
.../deps/library/base/po/it/LC_MESSAGES/R-base.mo | Bin 29168 -> 0 bytes
.../deps/library/base/po/ja/LC_MESSAGES/R-base.mo | Bin 66795 -> 0 bytes
.../deps/library/base/po/ko/LC_MESSAGES/R-base.mo | Bin 62254 -> 0 bytes
.../deps/library/base/po/nn/LC_MESSAGES/R-base.mo | Bin 55876 -> 0 bytes
.../deps/library/base/po/pl/LC_MESSAGES/R-base.mo | Bin 59276 -> 0 bytes
.../library/base/po/pt_BR/LC_MESSAGES/R-base.mo | Bin 45775 -> 0 bytes
.../deps/library/base/po/ru/LC_MESSAGES/R-base.mo | Bin 55858 -> 0 bytes
.../deps/library/base/po/tr/LC_MESSAGES/R-base.mo | Bin 882 -> 0 bytes
.../library/base/po/zh_CN/LC_MESSAGES/R-base.mo | Bin 49375 -> 0 bytes
win32/deps/library/boot/CITATION | 33 -
win32/deps/library/boot/DESCRIPTION | 25 -
win32/deps/library/boot/INDEX | 76 -
win32/deps/library/boot/Meta/Rd.rds | Bin 3407 -> 0 bytes
win32/deps/library/boot/Meta/data.rds | Bin 1322 -> 0 bytes
win32/deps/library/boot/Meta/hsearch.rds | Bin 3089 -> 0 bytes
win32/deps/library/boot/Meta/links.rds | Bin 1164 -> 0 bytes
win32/deps/library/boot/Meta/nsInfo.rds | Bin 493 -> 0 bytes
win32/deps/library/boot/Meta/package.rds | Bin 1003 -> 0 bytes
win32/deps/library/boot/NAMESPACE | 19 -
win32/deps/library/boot/R/boot | 9 -
win32/deps/library/boot/R/boot.rdb | Bin 156279 -> 0 bytes
win32/deps/library/boot/R/boot.rdx | Bin 1290 -> 0 bytes
win32/deps/library/boot/data/Rdata.rdb | Bin 52441 -> 0 bytes
win32/deps/library/boot/data/Rdata.rds | Bin 469 -> 0 bytes
win32/deps/library/boot/data/Rdata.rdx | Bin 749 -> 0 bytes
win32/deps/library/boot/help/AnIndex | 101 -
win32/deps/library/boot/help/aliases.rds | Bin 744 -> 0 bytes
win32/deps/library/boot/help/boot.rdb | Bin 316922 -> 0 bytes
win32/deps/library/boot/help/boot.rdx | Bin 1967 -> 0 bytes
win32/deps/library/boot/help/paths.rds | Bin 730 -> 0 bytes
win32/deps/library/boot/html/00Index.html | 221 -
win32/deps/library/boot/html/R.css | 57 -
.../deps/library/boot/po/de/LC_MESSAGES/R-boot.mo | Bin 8552 -> 0 bytes
.../library/boot/po/en quot/LC_MESSAGES/R-boot.mo | Bin 8187 -> 0 bytes
.../deps/library/boot/po/fr/LC_MESSAGES/R-boot.mo | Bin 8639 -> 0 bytes
.../deps/library/boot/po/pl/LC_MESSAGES/R-boot.mo | Bin 7329 -> 0 bytes
.../deps/library/boot/po/ru/LC_MESSAGES/R-boot.mo | Bin 6520 -> 0 bytes
.../library/boot/tests/Examples/boot-Ex.Rout.save | 2029 --------
win32/deps/library/class/CITATION | 18 -
win32/deps/library/class/DESCRIPTION | 18 -
win32/deps/library/class/INDEX | 16 -
win32/deps/library/class/LICENCE | 43 -
win32/deps/library/class/Meta/Rd.rds | Bin 667 -> 0 bytes
win32/deps/library/class/Meta/hsearch.rds | Bin 640 -> 0 bytes
win32/deps/library/class/Meta/links.rds | Bin 270 -> 0 bytes
win32/deps/library/class/Meta/nsInfo.rds | Bin 387 -> 0 bytes
win32/deps/library/class/Meta/package.rds | Bin 745 -> 0 bytes
win32/deps/library/class/NAMESPACE | 10 -
win32/deps/library/class/NEWS | 14 -
win32/deps/library/class/R/class | 9 -
win32/deps/library/class/R/class.rdb | Bin 22898 -> 0 bytes
win32/deps/library/class/R/class.rdx | Bin 480 -> 0 bytes
win32/deps/library/class/help/AnIndex | 17 -
win32/deps/library/class/help/aliases.rds | Bin 176 -> 0 bytes
win32/deps/library/class/help/class.rdb | Bin 39440 -> 0 bytes
win32/deps/library/class/help/class.rdx | Bin 437 -> 0 bytes
win32/deps/library/class/help/paths.rds | Bin 213 -> 0 bytes
win32/deps/library/class/html/00Index.html | 58 -
win32/deps/library/class/html/R.css | 57 -
win32/deps/library/class/libs/i386/class.dll | Bin 17920 -> 0 bytes
.../library/class/po/de/LC_MESSAGES/R-class.mo | Bin 1920 -> 0 bytes
.../class/po/en quot/LC_MESSAGES/R-class.mo | Bin 1736 -> 0 bytes
.../library/class/po/fr/LC_MESSAGES/R-class.mo | Bin 1891 -> 0 bytes
.../library/class/po/pl/LC_MESSAGES/R-class.mo | Bin 2040 -> 0 bytes
.../class/tests/Examples/class-Ex.Rout.save | 580 ---
win32/deps/library/cluster/CITATION | 27 -
win32/deps/library/cluster/DESCRIPTION | 22 -
win32/deps/library/cluster/INDEX | 65 -
win32/deps/library/cluster/Meta/Rd.rds | Bin 2236 -> 0 bytes
win32/deps/library/cluster/Meta/data.rds | Bin 344 -> 0 bytes
win32/deps/library/cluster/Meta/hsearch.rds | Bin 2143 -> 0 bytes
win32/deps/library/cluster/Meta/links.rds | Bin 945 -> 0 bytes
win32/deps/library/cluster/Meta/nsInfo.rds | Bin 692 -> 0 bytes
win32/deps/library/cluster/Meta/package.rds | Bin 869 -> 0 bytes
win32/deps/library/cluster/NAMESPACE | 76 -
win32/deps/library/cluster/R/cluster | 9 -
win32/deps/library/cluster/R/cluster.rdb | Bin 119608 -> 0 bytes
win32/deps/library/cluster/R/cluster.rdx | Bin 1208 -> 0 bytes
win32/deps/library/cluster/data/Rdata.rdb | Bin 43277 -> 0 bytes
win32/deps/library/cluster/data/Rdata.rds | Bin 166 -> 0 bytes
win32/deps/library/cluster/data/Rdata.rdx | Bin 268 -> 0 bytes
win32/deps/library/cluster/help/AnIndex | 83 -
win32/deps/library/cluster/help/aliases.rds | Bin 666 -> 0 bytes
win32/deps/library/cluster/help/cluster.rdb | Bin 228260 -> 0 bytes
win32/deps/library/cluster/help/cluster.rdx | Bin 1307 -> 0 bytes
win32/deps/library/cluster/help/paths.rds | Bin 530 -> 0 bytes
win32/deps/library/cluster/html/00Index.html | 187 -
win32/deps/library/cluster/html/R.css | 57 -
win32/deps/library/cluster/libs/i386/cluster.dll | Bin 59904 -> 0 bytes
.../library/cluster/po/de/LC_MESSAGES/R-cluster.mo | Bin 10744 -> 0 bytes
.../cluster/po/en quot/LC_MESSAGES/R-cluster.mo | Bin 10590 -> 0 bytes
.../library/cluster/po/pl/LC_MESSAGES/R-cluster.mo | Bin 11053 -> 0 bytes
win32/deps/library/cluster/tests/agnes-ex.R | 35 -
.../deps/library/cluster/tests/agnes-ex.Rout.save | 610 ---
win32/deps/library/cluster/tests/clara-NAs.R | 46 -
.../deps/library/cluster/tests/clara-NAs.Rout.save | 635 ---
win32/deps/library/cluster/tests/clara-ex.R | 23 -
win32/deps/library/cluster/tests/clara.R | 107 -
win32/deps/library/cluster/tests/clara.Rout.save | 1491 ------
win32/deps/library/cluster/tests/clusplot-out.R | 29 -
.../library/cluster/tests/clusplot-out.Rout.save | 121 -
win32/deps/library/cluster/tests/daisy-ex.R | 110 -
.../deps/library/cluster/tests/daisy-ex.Rout.save | 927 ----
win32/deps/library/cluster/tests/diana-boots.R | 31 -
win32/deps/library/cluster/tests/diana-ex.R | 31 -
.../deps/library/cluster/tests/diana-ex.Rout.save | 545 --
win32/deps/library/cluster/tests/ellipsoid-ex.R | 27 -
.../library/cluster/tests/ellipsoid-ex.Rout.save | 207 -
win32/deps/library/cluster/tests/fanny-ex.R | 72 -
win32/deps/library/cluster/tests/mona.R | 23 -
win32/deps/library/cluster/tests/mona.Rout.save | 118 -
win32/deps/library/cluster/tests/pam.R | 165 -
win32/deps/library/cluster/tests/pam.Rout.save | 1343 -----
.../library/cluster/tests/silhouette-default.R | 83 -
.../cluster/tests/silhouette-default.Rout.save | 616 ---
win32/deps/library/cluster/tests/sweep-ex.R | 69 -
win32/deps/library/codetools/DESCRIPTION | 13 -
win32/deps/library/codetools/INDEX | 5 -
win32/deps/library/codetools/Meta/Rd.rds | Bin 528 -> 0 bytes
win32/deps/library/codetools/Meta/hsearch.rds | Bin 571 -> 0 bytes
win32/deps/library/codetools/Meta/links.rds | Bin 301 -> 0 bytes
win32/deps/library/codetools/Meta/nsInfo.rds | Bin 341 -> 0 bytes
win32/deps/library/codetools/Meta/package.rds | Bin 587 -> 0 bytes
win32/deps/library/codetools/NAMESPACE | 18 -
win32/deps/library/codetools/R/codetools | 9 -
win32/deps/library/codetools/R/codetools.rdb | Bin 54615 -> 0 bytes
win32/deps/library/codetools/R/codetools.rdx | Bin 1509 -> 0 bytes
win32/deps/library/codetools/help/AnIndex | 20 -
win32/deps/library/codetools/help/aliases.rds | Bin 266 -> 0 bytes
win32/deps/library/codetools/help/codetools.rdb | Bin 9580 -> 0 bytes
win32/deps/library/codetools/help/codetools.rdx | Bin 235 -> 0 bytes
win32/deps/library/codetools/help/paths.rds | Bin 147 -> 0 bytes
win32/deps/library/codetools/html/00Index.html | 63 -
win32/deps/library/codetools/html/R.css | 57 -
win32/deps/library/codetools/tests/tests.R | 90 -
win32/deps/library/compiler/DESCRIPTION | 9 -
win32/deps/library/compiler/INDEX | 1 -
win32/deps/library/compiler/Meta/Rd.rds | Bin 300 -> 0 bytes
win32/deps/library/compiler/Meta/hsearch.rds | Bin 369 -> 0 bytes
win32/deps/library/compiler/Meta/links.rds | Bin 207 -> 0 bytes
win32/deps/library/compiler/Meta/nsInfo.rds | Bin 250 -> 0 bytes
win32/deps/library/compiler/Meta/package.rds | Bin 477 -> 0 bytes
win32/deps/library/compiler/NAMESPACE | 4 -
win32/deps/library/compiler/R/compiler | 9 -
win32/deps/library/compiler/R/compiler.rdb | Bin 112850 -> 0 bytes
win32/deps/library/compiler/R/compiler.rdx | Bin 2989 -> 0 bytes
win32/deps/library/compiler/help/AnIndex | 9 -
win32/deps/library/compiler/help/aliases.rds | Bin 143 -> 0 bytes
win32/deps/library/compiler/help/compiler.rdb | Bin 6867 -> 0 bytes
win32/deps/library/compiler/help/compiler.rdx | Bin 148 -> 0 bytes
win32/deps/library/compiler/help/paths.rds | Bin 100 -> 0 bytes
win32/deps/library/compiler/html/00Index.html | 41 -
win32/deps/library/compiler/html/R.css | 57 -
.../compiler/po/da/LC_MESSAGES/R-compiler.mo | Bin 3490 -> 0 bytes
.../compiler/po/de/LC_MESSAGES/R-compiler.mo | Bin 3616 -> 0 bytes
.../compiler/po/en quot/LC_MESSAGES/R-compiler.mo | Bin 3426 -> 0 bytes
.../compiler/po/fr/LC_MESSAGES/R-compiler.mo | Bin 3948 -> 0 bytes
.../compiler/po/ja/LC_MESSAGES/R-compiler.mo | Bin 4282 -> 0 bytes
.../compiler/po/ko/LC_MESSAGES/R-compiler.mo | Bin 3902 -> 0 bytes
.../compiler/po/pl/LC_MESSAGES/R-compiler.mo | Bin 3889 -> 0 bytes
.../compiler/po/pt_BR/LC_MESSAGES/R-compiler.mo | Bin 3824 -> 0 bytes
.../compiler/po/ru/LC_MESSAGES/R-compiler.mo | Bin 5000 -> 0 bytes
.../compiler/po/zh_CN/LC_MESSAGES/R-compiler.mo | Bin 3327 -> 0 bytes
win32/deps/library/compiler/tests/assign.R | 148 -
win32/deps/library/compiler/tests/basics.R | 101 -
win32/deps/library/compiler/tests/const.R | 65 -
win32/deps/library/compiler/tests/envir.R | 90 -
win32/deps/library/compiler/tests/jit.R | 16 -
win32/deps/library/compiler/tests/loop.R | 26 -
win32/deps/library/compiler/tests/switch.R | 86 -
win32/deps/library/datasets/DESCRIPTION | 6 +-
win32/deps/library/datasets/INDEX | 1 +
win32/deps/library/datasets/Meta/Rd.rds | Bin 3593 -> 3638 bytes
win32/deps/library/datasets/Meta/data.rds | Bin 2641 -> 2665 bytes
win32/deps/library/datasets/Meta/hsearch.rds | Bin 3197 -> 3227 bytes
win32/deps/library/datasets/Meta/links.rds | Bin 1343 -> 1352 bytes
win32/deps/library/datasets/Meta/nsInfo.rds | Bin 179 -> 179 bytes
win32/deps/library/datasets/Meta/package.rds | Bin 465 -> 469 bytes
win32/deps/library/datasets/data/Rdata.rdb | Bin 111904 -> 112228 bytes
win32/deps/library/datasets/data/Rdata.rds | Bin 1043 -> 1049 bytes
win32/deps/library/datasets/data/Rdata.rdx | Bin 1509 -> 1520 bytes
win32/deps/library/datasets/help/AnIndex | 1 +
win32/deps/library/datasets/help/aliases.rds | Bin 885 -> 889 bytes
win32/deps/library/datasets/help/datasets.rdb | Bin 191772 -> 194122 bytes
win32/deps/library/datasets/help/datasets.rdx | Bin 1999 -> 2031 bytes
win32/deps/library/datasets/help/paths.rds | Bin 818 -> 822 bytes
win32/deps/library/datasets/html/00Index.html | 4 +-
win32/deps/library/fields/DESCRIPTION | 33 -
win32/deps/library/fields/INDEX | 122 -
win32/deps/library/fields/LICENSE | 11 -
win32/deps/library/fields/MD5 | 37 -
win32/deps/library/fields/Meta/Rd.rds | Bin 4959 -> 0 bytes
win32/deps/library/fields/Meta/data.rds | Bin 639 -> 0 bytes
win32/deps/library/fields/Meta/hsearch.rds | Bin 4834 -> 0 bytes
win32/deps/library/fields/Meta/links.rds | Bin 2476 -> 0 bytes
win32/deps/library/fields/Meta/nsInfo.rds | Bin 367 -> 0 bytes
win32/deps/library/fields/Meta/package.rds | Bin 1267 -> 0 bytes
win32/deps/library/fields/NAMESPACE | 12 -
win32/deps/library/fields/R/fields | 9 -
win32/deps/library/fields/R/fields.rdb | Bin 131217 -> 0 bytes
win32/deps/library/fields/R/fields.rdx | Bin 2972 -> 0 bytes
win32/deps/library/fields/data/CO2.rda | Bin 455372 -> 0 bytes
win32/deps/library/fields/data/COmonthlyMet.rda | Bin 681966 -> 0 bytes
.../library/fields/data/NorthAmericanRainfall.rda | Bin 74279 -> 0 bytes
win32/deps/library/fields/data/PRISMelevation.rda | Bin 667593 -> 0 bytes
win32/deps/library/fields/data/RCMexample.rda | Bin 161424 -> 0 bytes
win32/deps/library/fields/data/RMelevation.rda | Bin 94458 -> 0 bytes
win32/deps/library/fields/data/US.dat.rda | Bin 44988 -> 0 bytes
win32/deps/library/fields/data/WorldBankCO2.rda | Bin 3214 -> 0 bytes
win32/deps/library/fields/data/datalist | 11 -
win32/deps/library/fields/data/lennon.rda | Bin 38012 -> 0 bytes
win32/deps/library/fields/data/ozone2.rda | Bin 22876 -> 0 bytes
win32/deps/library/fields/data/rat.diet.rda | Bin 579 -> 0 bytes
win32/deps/library/fields/data/world.dat.rda | Bin 15254 -> 0 bytes
win32/deps/library/fields/help/AnIndex | 274 -
win32/deps/library/fields/help/aliases.rds | Bin 2255 -> 0 bytes
win32/deps/library/fields/help/fields.rdb | Bin 356112 -> 0 bytes
win32/deps/library/fields/help/fields.rdx | Bin 1911 -> 0 bytes
win32/deps/library/fields/help/paths.rds | Bin 734 -> 0 bytes
win32/deps/library/fields/html/00Index.html | 557 ---
win32/deps/library/fields/html/R.css | 57 -
win32/deps/library/fields/libs/i386/fields.dll | Bin 39424 -> 0 bytes
win32/deps/library/fields/libs/i386/symbols.rds | Bin 878 -> 0 bytes
win32/deps/library/fields/libs/x64/fields.dll | Bin 46592 -> 0 bytes
win32/deps/library/fields/libs/x64/symbols.rds | Bin 867 -> 0 bytes
win32/deps/library/foreign/DESCRIPTION | 46 -
win32/deps/library/foreign/INDEX | 18 -
win32/deps/library/foreign/LICENCE | 7 -
win32/deps/library/foreign/Meta/Rd.rds | Bin 739 -> 0 bytes
win32/deps/library/foreign/Meta/hsearch.rds | Bin 716 -> 0 bytes
win32/deps/library/foreign/Meta/links.rds | Bin 287 -> 0 bytes
win32/deps/library/foreign/Meta/nsInfo.rds | Bin 392 -> 0 bytes
win32/deps/library/foreign/Meta/package.rds | Bin 1176 -> 0 bytes
win32/deps/library/foreign/NAMESPACE | 10 -
win32/deps/library/foreign/R/foreign | 9 -
win32/deps/library/foreign/R/foreign.rdb | Bin 66577 -> 0 bytes
win32/deps/library/foreign/R/foreign.rdx | Bin 672 -> 0 bytes
win32/deps/library/foreign/files/HillRace.SYD | Bin 2070 -> 0 bytes
win32/deps/library/foreign/files/Iris.syd | Bin 6462 -> 0 bytes
win32/deps/library/foreign/files/sids.dbf | Bin 17282 -> 0 bytes
win32/deps/library/foreign/help/AnIndex | 17 -
win32/deps/library/foreign/help/aliases.rds | Bin 194 -> 0 bytes
win32/deps/library/foreign/help/foreign.rdb | Bin 49842 -> 0 bytes
win32/deps/library/foreign/help/foreign.rdx | Bin 468 -> 0 bytes
win32/deps/library/foreign/help/paths.rds | Bin 228 -> 0 bytes
win32/deps/library/foreign/html/00Index.html | 59 -
win32/deps/library/foreign/html/R.css | 57 -
win32/deps/library/foreign/libs/i386/foreign.dll | Bin 120832 -> 0 bytes
.../library/foreign/po/de/LC_MESSAGES/R-foreign.mo | Bin 4986 -> 0 bytes
.../library/foreign/po/de/LC_MESSAGES/foreign.mo | Bin 21879 -> 0 bytes
.../foreign/po/en quot/LC_MESSAGES/R-foreign.mo | Bin 4615 -> 0 bytes
.../foreign/po/en quot/LC_MESSAGES/foreign.mo | Bin 20384 -> 0 bytes
.../library/foreign/po/fr/LC_MESSAGES/R-foreign.mo | Bin 5260 -> 0 bytes
.../library/foreign/po/fr/LC_MESSAGES/foreign.mo | Bin 23301 -> 0 bytes
.../library/foreign/po/pl/LC_MESSAGES/R-foreign.mo | Bin 5189 -> 0 bytes
.../library/foreign/po/pl/LC_MESSAGES/foreign.mo | Bin 22061 -> 0 bytes
win32/deps/library/foreign/tests/Alfalfa.xpt | Bin 3520 -> 0 bytes
win32/deps/library/foreign/tests/S3.R | 9 -
win32/deps/library/foreign/tests/S3.Rout.save | 59 -
win32/deps/library/foreign/tests/arff.R | 5 -
win32/deps/library/foreign/tests/arff.Rout.save | 36 -
win32/deps/library/foreign/tests/auto8.dta | Bin 5781 -> 0 bytes
win32/deps/library/foreign/tests/compressed.dta | Bin 38646 -> 0 bytes
.../deps/library/foreign/tests/contact-lenses.arff | 85 -
win32/deps/library/foreign/tests/create-dumpdata.S | 5 -
win32/deps/library/foreign/tests/datefactor.dta | Bin 1205 -> 0 bytes
win32/deps/library/foreign/tests/download.R | 9 -
win32/deps/library/foreign/tests/dumpdata | 60 -
win32/deps/library/foreign/tests/electric.por | 123 -
win32/deps/library/foreign/tests/electric.sav | Bin 12388 -> 0 bytes
win32/deps/library/foreign/tests/ex1-51.mtp | 15 -
win32/deps/library/foreign/tests/minitab.R | 7 -
win32/deps/library/foreign/tests/minitab.Rout.save | 37 -
win32/deps/library/foreign/tests/mySobj | Bin 293 -> 0 bytes
win32/deps/library/foreign/tests/octave.R | 5 -
win32/deps/library/foreign/tests/octave.Rout.save | 61 -
win32/deps/library/foreign/tests/octave.dat | 122 -
win32/deps/library/foreign/tests/octave.m | 22 -
win32/deps/library/foreign/tests/pbc.por | 340 --
win32/deps/library/foreign/tests/pbc.sav | Bin 35232 -> 0 bytes
win32/deps/library/foreign/tests/pbc.sys | Bin 42040 -> 0 bytes
win32/deps/library/foreign/tests/pbcold.sav | Bin 35232 -> 0 bytes
win32/deps/library/foreign/tests/pc5.dta | Bin 65013 -> 0 bytes
win32/deps/library/foreign/tests/sample100.por | 106 -
win32/deps/library/foreign/tests/sample100.sav | Bin 11260 -> 0 bytes
win32/deps/library/foreign/tests/sas.R | 11 -
win32/deps/library/foreign/tests/spss.R | 52 -
win32/deps/library/foreign/tests/spss.Rout.save | 327 --
win32/deps/library/foreign/tests/spss_long.sav | Bin 497 -> 0 bytes
win32/deps/library/foreign/tests/stata.R | 33 -
win32/deps/library/foreign/tests/stata.Rout.save | 308 --
win32/deps/library/foreign/tests/stata7se.dta | Bin 603 -> 0 bytes
win32/deps/library/foreign/tests/stata8mac.dta | Bin 603 -> 0 bytes
win32/deps/library/foreign/tests/sun6.dta | Bin 37242 -> 0 bytes
win32/deps/library/foreign/tests/test.xpt | Bin 1280 -> 0 bytes
win32/deps/library/foreign/tests/tsdumpdata | 455 --
win32/deps/library/foreign/tests/xport.R | 9 -
win32/deps/library/foreign/tests/xport.Rout.save | 115 -
win32/deps/library/grDevices/DESCRIPTION | 6 +-
win32/deps/library/grDevices/Meta/Rd.rds | Bin 3089 -> 3088 bytes
win32/deps/library/grDevices/Meta/hsearch.rds | Bin 3033 -> 3033 bytes
win32/deps/library/grDevices/Meta/links.rds | Bin 1534 -> 1533 bytes
win32/deps/library/grDevices/Meta/nsInfo.rds | Bin 1221 -> 1126 bytes
win32/deps/library/grDevices/Meta/package.rds | Bin 521 -> 528 bytes
win32/deps/library/grDevices/NAMESPACE | 25 +-
win32/deps/library/grDevices/R/grDevices | 26 +-
win32/deps/library/grDevices/R/grDevices.rdb | Bin 154510 -> 151415 bytes
win32/deps/library/grDevices/R/grDevices.rdx | Bin 2501 -> 2504 bytes
.../deps/library/grDevices/afm/CM_boldx_10.afm.gz | Bin 3053 -> 3053 bytes
.../grDevices/afm/CM_boldx_italic_10.afm.gz | Bin 3149 -> 3149 bytes
.../deps/library/grDevices/afm/CM_italic_10.afm.gz | Bin 3048 -> 3048 bytes
.../library/grDevices/afm/CM_regular_10.afm.gz | Bin 2953 -> 2953 bytes
.../deps/library/grDevices/afm/CM_symbol_10.afm.gz | Bin 2254 -> 2254 bytes
.../deps/library/grDevices/afm/Courier-Bold.afm.gz | Bin 3984 -> 3984 bytes
.../grDevices/afm/Courier-BoldOblique.afm.gz | Bin 4112 -> 4112 bytes
.../library/grDevices/afm/Courier-Oblique.afm.gz | Bin 4102 -> 4102 bytes
win32/deps/library/grDevices/afm/Courier.afm.gz | Bin 3973 -> 3973 bytes
.../library/grDevices/afm/Helvetica-Bold.afm.gz | Bin 13003 -> 13003 bytes
.../grDevices/afm/Helvetica-BoldOblique.afm.gz | Bin 13213 -> 13213 bytes
.../library/grDevices/afm/Helvetica-Oblique.afm.gz | Bin 13825 -> 13825 bytes
win32/deps/library/grDevices/afm/Helvetica.afm.gz | Bin 13638 -> 13638 bytes
win32/deps/library/grDevices/afm/Symbol.afm.gz | Bin 3443 -> 3443 bytes
win32/deps/library/grDevices/afm/Times-Bold.afm.gz | Bin 12329 -> 12329 bytes
.../library/grDevices/afm/Times-BoldItalic.afm.gz | Bin 11711 -> 11711 bytes
.../deps/library/grDevices/afm/Times-Italic.afm.gz | Bin 12658 -> 12658 bytes
.../deps/library/grDevices/afm/Times-Roman.afm.gz | Bin 11845 -> 11845 bytes
.../deps/library/grDevices/afm/ZapfDingbats.afm.gz | Bin 2544 -> 2544 bytes
win32/deps/library/grDevices/afm/a010013l.afm.gz | Bin 10225 -> 10225 bytes
win32/deps/library/grDevices/afm/a010015l.afm.gz | Bin 10048 -> 10048 bytes
win32/deps/library/grDevices/afm/a010033l.afm.gz | Bin 10273 -> 10273 bytes
win32/deps/library/grDevices/afm/a010035l.afm.gz | Bin 10190 -> 10190 bytes
win32/deps/library/grDevices/afm/agd_____.afm.gz | Bin 4903 -> 4903 bytes
win32/deps/library/grDevices/afm/agdo____.afm.gz | Bin 4978 -> 4978 bytes
win32/deps/library/grDevices/afm/agw_____.afm.gz | Bin 5059 -> 5059 bytes
win32/deps/library/grDevices/afm/agwo____.afm.gz | Bin 5139 -> 5139 bytes
win32/deps/library/grDevices/afm/b018012l.afm.gz | Bin 10253 -> 10253 bytes
win32/deps/library/grDevices/afm/b018015l.afm.gz | Bin 10087 -> 10087 bytes
win32/deps/library/grDevices/afm/b018032l.afm.gz | Bin 10361 -> 10361 bytes
win32/deps/library/grDevices/afm/b018035l.afm.gz | Bin 10359 -> 10359 bytes
win32/deps/library/grDevices/afm/bkd_____.afm.gz | Bin 4254 -> 4254 bytes
win32/deps/library/grDevices/afm/bkdi____.afm.gz | Bin 4369 -> 4369 bytes
win32/deps/library/grDevices/afm/bkl_____.afm.gz | Bin 4257 -> 4257 bytes
win32/deps/library/grDevices/afm/bkli____.afm.gz | Bin 4331 -> 4331 bytes
win32/deps/library/grDevices/afm/c059013l.afm.gz | Bin 10343 -> 10343 bytes
win32/deps/library/grDevices/afm/c059016l.afm.gz | Bin 10247 -> 10247 bytes
win32/deps/library/grDevices/afm/c059033l.afm.gz | Bin 10540 -> 10540 bytes
win32/deps/library/grDevices/afm/c059036l.afm.gz | Bin 10474 -> 10474 bytes
win32/deps/library/grDevices/afm/cmbxti10.afm.gz | Bin 2937 -> 2937 bytes
win32/deps/library/grDevices/afm/cmti10.afm.gz | Bin 2915 -> 2915 bytes
win32/deps/library/grDevices/afm/cob_____.afm.gz | Bin 3973 -> 3973 bytes
win32/deps/library/grDevices/afm/cobo____.afm.gz | Bin 4084 -> 4084 bytes
win32/deps/library/grDevices/afm/com_____.afm.gz | Bin 3972 -> 3972 bytes
win32/deps/library/grDevices/afm/coo_____.afm.gz | Bin 4092 -> 4092 bytes
win32/deps/library/grDevices/afm/hv______.afm.gz | Bin 4826 -> 4826 bytes
win32/deps/library/grDevices/afm/hvb_____.afm.gz | Bin 4691 -> 4691 bytes
win32/deps/library/grDevices/afm/hvbo____.afm.gz | Bin 4833 -> 4833 bytes
win32/deps/library/grDevices/afm/hvn_____.afm.gz | Bin 4810 -> 4810 bytes
win32/deps/library/grDevices/afm/hvnb____.afm.gz | Bin 4675 -> 4675 bytes
win32/deps/library/grDevices/afm/hvnbo___.afm.gz | Bin 4826 -> 4826 bytes
win32/deps/library/grDevices/afm/hvno____.afm.gz | Bin 4963 -> 4963 bytes
win32/deps/library/grDevices/afm/hvo_____.afm.gz | Bin 4977 -> 4977 bytes
win32/deps/library/grDevices/afm/n019003l.afm.gz | Bin 10217 -> 10217 bytes
win32/deps/library/grDevices/afm/n019004l.afm.gz | Bin 10045 -> 10045 bytes
win32/deps/library/grDevices/afm/n019023l.afm.gz | Bin 10484 -> 10484 bytes
win32/deps/library/grDevices/afm/n019024l.afm.gz | Bin 10323 -> 10323 bytes
win32/deps/library/grDevices/afm/n019043l.afm.gz | Bin 10095 -> 10095 bytes
win32/deps/library/grDevices/afm/n019044l.afm.gz | Bin 9785 -> 9785 bytes
win32/deps/library/grDevices/afm/n019063l.afm.gz | Bin 10284 -> 10284 bytes
win32/deps/library/grDevices/afm/n019064l.afm.gz | Bin 10166 -> 10166 bytes
win32/deps/library/grDevices/afm/n021003l.afm.gz | Bin 10539 -> 10539 bytes
win32/deps/library/grDevices/afm/n021004l.afm.gz | Bin 10355 -> 10355 bytes
win32/deps/library/grDevices/afm/n021023l.afm.gz | Bin 10545 -> 10545 bytes
win32/deps/library/grDevices/afm/n021024l.afm.gz | Bin 10525 -> 10525 bytes
win32/deps/library/grDevices/afm/n022003l.afm.gz | Bin 5477 -> 5477 bytes
win32/deps/library/grDevices/afm/n022004l.afm.gz | Bin 5574 -> 5574 bytes
win32/deps/library/grDevices/afm/n022023l.afm.gz | Bin 5872 -> 5872 bytes
win32/deps/library/grDevices/afm/n022024l.afm.gz | Bin 5854 -> 5854 bytes
win32/deps/library/grDevices/afm/ncb_____.afm.gz | Bin 4281 -> 4281 bytes
win32/deps/library/grDevices/afm/ncbi____.afm.gz | Bin 4921 -> 4921 bytes
win32/deps/library/grDevices/afm/nci_____.afm.gz | Bin 4519 -> 4519 bytes
win32/deps/library/grDevices/afm/ncr_____.afm.gz | Bin 4453 -> 4453 bytes
win32/deps/library/grDevices/afm/p052003l.afm.gz | Bin 10421 -> 10421 bytes
win32/deps/library/grDevices/afm/p052004l.afm.gz | Bin 10230 -> 10230 bytes
win32/deps/library/grDevices/afm/p052023l.afm.gz | Bin 10524 -> 10524 bytes
win32/deps/library/grDevices/afm/p052024l.afm.gz | Bin 10281 -> 10281 bytes
win32/deps/library/grDevices/afm/pob_____.afm.gz | Bin 4395 -> 4395 bytes
win32/deps/library/grDevices/afm/pobi____.afm.gz | Bin 4432 -> 4432 bytes
win32/deps/library/grDevices/afm/poi_____.afm.gz | Bin 4454 -> 4454 bytes
win32/deps/library/grDevices/afm/por_____.afm.gz | Bin 4486 -> 4486 bytes
win32/deps/library/grDevices/afm/s050000l.afm.gz | Bin 3383 -> 3383 bytes
win32/deps/library/grDevices/afm/sy______.afm.gz | Bin 3398 -> 3398 bytes
win32/deps/library/grDevices/afm/tib_____.afm.gz | Bin 5005 -> 5005 bytes
win32/deps/library/grDevices/afm/tibi____.afm.gz | Bin 5102 -> 5102 bytes
win32/deps/library/grDevices/afm/tii_____.afm.gz | Bin 5107 -> 5107 bytes
win32/deps/library/grDevices/afm/tir_____.afm.gz | Bin 4983 -> 4983 bytes
win32/deps/library/grDevices/help/aliases.rds | Bin 1291 -> 1291 bytes
win32/deps/library/grDevices/help/grDevices.rdb | Bin 310263 -> 311200 bytes
win32/deps/library/grDevices/help/grDevices.rdx | Bin 1596 -> 1596 bytes
win32/deps/library/grDevices/help/paths.rds | Bin 646 -> 643 bytes
win32/deps/library/grDevices/html/00Index.html | 3 +-
win32/deps/library/grDevices/libs/i386/Rbitmap.dll | Bin 536576 -> 539648 bytes
.../deps/library/grDevices/libs/i386/grDevices.dll | Bin 239616 -> 304128 bytes
.../deps/library/grDevices/libs/i386/winCairo.dll | Bin 993280 -> 992768 bytes
.../grDevices/po/da/LC_MESSAGES/R-grDevices.mo | Bin 12591 -> 0 bytes
.../grDevices/po/da/LC_MESSAGES/grDevices.mo | Bin 13555 -> 0 bytes
.../grDevices/po/de/LC_MESSAGES/R-grDevices.mo | Bin 13006 -> 0 bytes
.../grDevices/po/de/LC_MESSAGES/grDevices.mo | Bin 14960 -> 0 bytes
.../po/en quot/LC_MESSAGES/R-grDevices.mo | Bin 12352 -> 0 bytes
.../grDevices/po/en quot/LC_MESSAGES/grDevices.mo | Bin 13930 -> 0 bytes
.../grDevices/po/en_GB/LC_MESSAGES/R-grDevices.mo | Bin 506 -> 0 bytes
.../grDevices/po/en_GB/LC_MESSAGES/grDevices.mo | Bin 847 -> 0 bytes
.../grDevices/po/fr/LC_MESSAGES/R-grDevices.mo | Bin 13623 -> 0 bytes
.../grDevices/po/fr/LC_MESSAGES/grDevices.mo | Bin 15459 -> 0 bytes
.../grDevices/po/it/LC_MESSAGES/R-grDevices.mo | Bin 7454 -> 0 bytes
.../grDevices/po/it/LC_MESSAGES/grDevices.mo | Bin 7834 -> 0 bytes
.../grDevices/po/ja/LC_MESSAGES/R-grDevices.mo | Bin 15081 -> 0 bytes
.../grDevices/po/ja/LC_MESSAGES/grDevices.mo | Bin 17700 -> 0 bytes
.../grDevices/po/ko/LC_MESSAGES/R-grDevices.mo | Bin 14623 -> 0 bytes
.../grDevices/po/ko/LC_MESSAGES/grDevices.mo | Bin 16637 -> 0 bytes
.../grDevices/po/pl/LC_MESSAGES/R-grDevices.mo | Bin 13806 -> 0 bytes
.../grDevices/po/pl/LC_MESSAGES/grDevices.mo | Bin 15395 -> 0 bytes
.../grDevices/po/pt_BR/LC_MESSAGES/R-grDevices.mo | Bin 12083 -> 0 bytes
.../grDevices/po/pt_BR/LC_MESSAGES/grDevices.mo | Bin 2888 -> 0 bytes
.../grDevices/po/ru/LC_MESSAGES/R-grDevices.mo | Bin 13215 -> 0 bytes
.../grDevices/po/ru/LC_MESSAGES/grDevices.mo | Bin 14500 -> 0 bytes
.../grDevices/po/zh_CN/LC_MESSAGES/R-grDevices.mo | Bin 11631 -> 0 bytes
.../grDevices/po/zh_CN/LC_MESSAGES/grDevices.mo | Bin 13271 -> 0 bytes
.../library/grDevices/tests/ps-tests.Rout.save | 11 +-
.../library/grDevices/tests/xfig-tests.Rout.save | 9 +-
win32/deps/library/graphics/DESCRIPTION | 6 +-
win32/deps/library/graphics/Meta/Rd.rds | Bin 3161 -> 3165 bytes
win32/deps/library/graphics/Meta/demo.rds | Bin 261 -> 260 bytes
win32/deps/library/graphics/Meta/hsearch.rds | Bin 3125 -> 3131 bytes
win32/deps/library/graphics/Meta/links.rds | Bin 1310 -> 1309 bytes
win32/deps/library/graphics/Meta/nsInfo.rds | Bin 869 -> 1142 bytes
win32/deps/library/graphics/Meta/package.rds | Bin 511 -> 535 bytes
win32/deps/library/graphics/NAMESPACE | 38 +-
win32/deps/library/graphics/R/graphics | 26 +-
win32/deps/library/graphics/R/graphics.rdb | Bin 246572 -> 249220 bytes
win32/deps/library/graphics/R/graphics.rdx | Bin 1770 -> 1782 bytes
win32/deps/library/graphics/demo/plotmath.R | 7 +-
win32/deps/library/graphics/help/aliases.rds | Bin 988 -> 988 bytes
win32/deps/library/graphics/help/graphics.rdb | Bin 451705 -> 454831 bytes
win32/deps/library/graphics/help/graphics.rdx | Bin 1642 -> 1647 bytes
win32/deps/library/graphics/help/paths.rds | Bin 608 -> 603 bytes
win32/deps/library/graphics/html/00Index.html | 2 +-
.../graphics/po/da/LC_MESSAGES/R-graphics.mo | Bin 1255 -> 0 bytes
.../graphics/po/de/LC_MESSAGES/R-graphics.mo | Bin 14924 -> 0 bytes
.../graphics/po/en quot/LC_MESSAGES/R-graphics.mo | Bin 14366 -> 0 bytes
.../graphics/po/fr/LC_MESSAGES/R-graphics.mo | Bin 15267 -> 0 bytes
.../graphics/po/it/LC_MESSAGES/R-graphics.mo | Bin 10368 -> 0 bytes
.../graphics/po/ja/LC_MESSAGES/R-graphics.mo | Bin 17179 -> 0 bytes
.../graphics/po/ko/LC_MESSAGES/R-graphics.mo | Bin 16882 -> 0 bytes
.../graphics/po/pl/LC_MESSAGES/R-graphics.mo | Bin 15486 -> 0 bytes
.../graphics/po/pt_BR/LC_MESSAGES/R-graphics.mo | Bin 13893 -> 0 bytes
.../graphics/po/ru/LC_MESSAGES/R-graphics.mo | Bin 15030 -> 0 bytes
.../graphics/po/zh_CN/LC_MESSAGES/R-graphics.mo | Bin 13422 -> 0 bytes
win32/deps/library/grid/DESCRIPTION | 12 -
win32/deps/library/grid/INDEX | 91 -
win32/deps/library/grid/Meta/Rd.rds | Bin 3246 -> 0 bytes
win32/deps/library/grid/Meta/hsearch.rds | Bin 3159 -> 0 bytes
win32/deps/library/grid/Meta/links.rds | Bin 1732 -> 0 bytes
win32/deps/library/grid/Meta/nsInfo.rds | Bin 1847 -> 0 bytes
win32/deps/library/grid/Meta/package.rds | Bin 597 -> 0 bytes
win32/deps/library/grid/Meta/vignette.rds | Bin 603 -> 0 bytes
win32/deps/library/grid/NAMESPACE | 368 --
win32/deps/library/grid/R/grid | 9 -
win32/deps/library/grid/R/grid.rdb | Bin 346827 -> 0 bytes
win32/deps/library/grid/R/grid.rdx | Bin 8002 -> 0 bytes
win32/deps/library/grid/doc/changes.txt | 1374 -----
win32/deps/library/grid/doc/displaylist.R | 130 -
win32/deps/library/grid/doc/displaylist.Rnw | 243 -
win32/deps/library/grid/doc/displaylist.pdf | Bin 157254 -> 0 bytes
win32/deps/library/grid/doc/frame.R | 148 -
win32/deps/library/grid/doc/frame.Rnw | 384 --
win32/deps/library/grid/doc/frame.pdf | Bin 155783 -> 0 bytes
win32/deps/library/grid/doc/grid.R | 329 --
win32/deps/library/grid/doc/grid.Rnw | 751 ---
win32/deps/library/grid/doc/grid.pdf | Bin 251352 -> 0 bytes
win32/deps/library/grid/doc/grobs.R | 313 --
win32/deps/library/grid/doc/grobs.Rnw | 482 --
win32/deps/library/grid/doc/grobs.pdf | Bin 107015 -> 0 bytes
win32/deps/library/grid/doc/index.html | 87 -
win32/deps/library/grid/doc/interactive.R | 90 -
win32/deps/library/grid/doc/interactive.Rnw | 132 -
win32/deps/library/grid/doc/interactive.pdf | Bin 90763 -> 0 bytes
win32/deps/library/grid/doc/locndimn.R | 72 -
win32/deps/library/grid/doc/locndimn.Rnw | 117 -
win32/deps/library/grid/doc/locndimn.pdf | Bin 89405 -> 0 bytes
win32/deps/library/grid/doc/moveline.R | 30 -
win32/deps/library/grid/doc/moveline.Rnw | 64 -
win32/deps/library/grid/doc/moveline.pdf | Bin 87188 -> 0 bytes
win32/deps/library/grid/doc/nonfinite.R | 73 -
win32/deps/library/grid/doc/nonfinite.Rnw | 135 -
win32/deps/library/grid/doc/nonfinite.pdf | Bin 79443 -> 0 bytes
win32/deps/library/grid/doc/plotexample.R | 465 --
win32/deps/library/grid/doc/plotexample.Rnw | 582 ---
win32/deps/library/grid/doc/plotexample.pdf | Bin 223488 -> 0 bytes
win32/deps/library/grid/doc/rotated.R | 188 -
win32/deps/library/grid/doc/rotated.Rnw | 156 -
win32/deps/library/grid/doc/rotated.pdf | Bin 121860 -> 0 bytes
win32/deps/library/grid/doc/saveload.R | 40 -
win32/deps/library/grid/doc/saveload.Rnw | 110 -
win32/deps/library/grid/doc/saveload.pdf | Bin 133777 -> 0 bytes
win32/deps/library/grid/doc/sharing.R | 140 -
win32/deps/library/grid/doc/sharing.Rnw | 110 -
win32/deps/library/grid/doc/sharing.pdf | Bin 70754 -> 0 bytes
win32/deps/library/grid/doc/viewports.R | 288 --
win32/deps/library/grid/doc/viewports.Rnw | 332 --
win32/deps/library/grid/doc/viewports.pdf | Bin 162850 -> 0 bytes
win32/deps/library/grid/help/AnIndex | 186 -
win32/deps/library/grid/help/aliases.rds | Bin 1385 -> 0 bytes
win32/deps/library/grid/help/grid.rdb | Bin 248821 -> 0 bytes
win32/deps/library/grid/help/grid.rdx | Bin 1890 -> 0 bytes
win32/deps/library/grid/help/paths.rds | Bin 725 -> 0 bytes
win32/deps/library/grid/html/00Index.html | 504 --
win32/deps/library/grid/html/R.css | 57 -
win32/deps/library/grid/libs/i386/grid.dll | Bin 135680 -> 0 bytes
.../deps/library/grid/po/da/LC_MESSAGES/R-grid.mo | Bin 2664 -> 0 bytes
win32/deps/library/grid/po/da/LC_MESSAGES/grid.mo | Bin 2397 -> 0 bytes
.../deps/library/grid/po/de/LC_MESSAGES/R-grid.mo | Bin 16996 -> 0 bytes
win32/deps/library/grid/po/de/LC_MESSAGES/grid.mo | Bin 2487 -> 0 bytes
.../library/grid/po/en quot/LC_MESSAGES/R-grid.mo | Bin 16420 -> 0 bytes
.../library/grid/po/en quot/LC_MESSAGES/grid.mo | Bin 2284 -> 0 bytes
.../deps/library/grid/po/fr/LC_MESSAGES/R-grid.mo | Bin 17214 -> 0 bytes
win32/deps/library/grid/po/fr/LC_MESSAGES/grid.mo | Bin 2528 -> 0 bytes
win32/deps/library/grid/po/it/LC_MESSAGES/grid.mo | Bin 1775 -> 0 bytes
.../deps/library/grid/po/ja/LC_MESSAGES/R-grid.mo | Bin 19899 -> 0 bytes
win32/deps/library/grid/po/ja/LC_MESSAGES/grid.mo | Bin 2874 -> 0 bytes
.../deps/library/grid/po/ko/LC_MESSAGES/R-grid.mo | Bin 18913 -> 0 bytes
win32/deps/library/grid/po/ko/LC_MESSAGES/grid.mo | Bin 2876 -> 0 bytes
.../deps/library/grid/po/pl/LC_MESSAGES/R-grid.mo | Bin 17543 -> 0 bytes
win32/deps/library/grid/po/pl/LC_MESSAGES/grid.mo | Bin 2711 -> 0 bytes
.../library/grid/po/pt_BR/LC_MESSAGES/R-grid.mo | Bin 16197 -> 0 bytes
.../deps/library/grid/po/pt_BR/LC_MESSAGES/grid.mo | Bin 2634 -> 0 bytes
.../deps/library/grid/po/ru/LC_MESSAGES/R-grid.mo | Bin 16563 -> 0 bytes
win32/deps/library/grid/po/ru/LC_MESSAGES/grid.mo | Bin 2519 -> 0 bytes
.../library/grid/po/zh_CN/LC_MESSAGES/R-grid.mo | Bin 15473 -> 0 bytes
.../deps/library/grid/po/zh_CN/LC_MESSAGES/grid.mo | Bin 2331 -> 0 bytes
win32/deps/library/grid/tests/bugs.R | 30 -
win32/deps/library/grid/tests/reg.R | 433 --
win32/deps/library/grid/tests/testls.R | 158 -
win32/deps/library/grid/tests/testls.Rout.save | 340 --
win32/deps/library/grid/tests/units.R | 135 -
win32/deps/library/lattice/CITATION | 17 -
win32/deps/library/lattice/DESCRIPTION | 25 -
win32/deps/library/lattice/INDEX | 70 -
win32/deps/library/lattice/LICENSE | 16 -
win32/deps/library/lattice/Meta/Rd.rds | Bin 3521 -> 0 bytes
win32/deps/library/lattice/Meta/data.rds | Bin 252 -> 0 bytes
win32/deps/library/lattice/Meta/demo.rds | Bin 160 -> 0 bytes
win32/deps/library/lattice/Meta/hsearch.rds | Bin 3582 -> 0 bytes
win32/deps/library/lattice/Meta/links.rds | Bin 1938 -> 0 bytes
win32/deps/library/lattice/Meta/nsInfo.rds | Bin 1751 -> 0 bytes
win32/deps/library/lattice/Meta/package.rds | Bin 983 -> 0 bytes
win32/deps/library/lattice/NAMESPACE | 309 --
win32/deps/library/lattice/NEWS | 1103 -----
win32/deps/library/lattice/R/lattice | 9 -
win32/deps/library/lattice/R/lattice.rdb | Bin 504538 -> 0 bytes
win32/deps/library/lattice/R/lattice.rdx | Bin 3999 -> 0 bytes
win32/deps/library/lattice/data/Rdata.rdb | Bin 4076 -> 0 bytes
win32/deps/library/lattice/data/Rdata.rds | Bin 125 -> 0 bytes
win32/deps/library/lattice/data/Rdata.rdx | Bin 203 -> 0 bytes
win32/deps/library/lattice/demo/intervals.R | 93 -
win32/deps/library/lattice/demo/labels.R | 46 -
win32/deps/library/lattice/demo/lattice.R | 164 -
win32/deps/library/lattice/demo/panel.R | 121 -
win32/deps/library/lattice/help/AnIndex | 221 -
win32/deps/library/lattice/help/aliases.rds | Bin 1756 -> 0 bytes
win32/deps/library/lattice/help/lattice.rdb | Bin 450617 -> 0 bytes
win32/deps/library/lattice/help/lattice.rdx | Bin 1562 -> 0 bytes
win32/deps/library/lattice/help/paths.rds | Bin 639 -> 0 bytes
win32/deps/library/lattice/html/00Index.html | 591 ---
win32/deps/library/lattice/html/R.css | 57 -
win32/deps/library/lattice/libs/i386/lattice.dll | Bin 20480 -> 0 bytes
.../library/lattice/po/de/LC_MESSAGES/R-lattice.mo | Bin 13307 -> 0 bytes
.../lattice/po/en quot/LC_MESSAGES/R-lattice.mo | Bin 9746 -> 0 bytes
.../library/lattice/po/fr/LC_MESSAGES/R-lattice.mo | Bin 7959 -> 0 bytes
win32/deps/library/lattice/tests/MASSch04.R | 179 -
win32/deps/library/lattice/tests/dates.R | 25 -
win32/deps/library/lattice/tests/dotplotscoping.R | 13 -
win32/deps/library/lattice/tests/levelplot.R | 115 -
win32/deps/library/lattice/tests/scales.R | 174 -
win32/deps/library/lattice/tests/temp.R | 141 -
win32/deps/library/lattice/tests/test.R | 137 -
win32/deps/library/lattice/tests/wireframe.R | 113 -
win32/deps/library/locfit/DESCRIPTION | 16 -
win32/deps/library/locfit/INDEX | 121 -
win32/deps/library/locfit/MD5 | 50 -
win32/deps/library/locfit/Meta/Rd.rds | Bin 3431 -> 0 bytes
win32/deps/library/locfit/Meta/data.rds | Bin 665 -> 0 bytes
win32/deps/library/locfit/Meta/hsearch.rds | Bin 2966 -> 0 bytes
win32/deps/library/locfit/Meta/links.rds | Bin 1216 -> 0 bytes
win32/deps/library/locfit/Meta/nsInfo.rds | Bin 735 -> 0 bytes
win32/deps/library/locfit/Meta/package.rds | Bin 689 -> 0 bytes
win32/deps/library/locfit/NAMESPACE | 48 -
win32/deps/library/locfit/NEWS | 18 -
win32/deps/library/locfit/R/locfit | 9 -
win32/deps/library/locfit/R/locfit.rdb | Bin 40301 -> 0 bytes
win32/deps/library/locfit/R/locfit.rdx | Bin 1236 -> 0 bytes
win32/deps/library/locfit/data/ais.rda | Bin 5958 -> 0 bytes
win32/deps/library/locfit/data/bad.rda | Bin 1818 -> 0 bytes
win32/deps/library/locfit/data/border.rda | Bin 2632 -> 0 bytes
win32/deps/library/locfit/data/chemdiab.tab.gz | Bin 1639 -> 0 bytes
win32/deps/library/locfit/data/claw54.rda | Bin 508 -> 0 bytes
win32/deps/library/locfit/data/cldem.tab.gz | Bin 623 -> 0 bytes
win32/deps/library/locfit/data/cltest.rda | Bin 3884 -> 0 bytes
win32/deps/library/locfit/data/cltrain.rda | Bin 3881 -> 0 bytes
win32/deps/library/locfit/data/co2.rda | Bin 2448 -> 0 bytes
win32/deps/library/locfit/data/diab.tab.gz | Bin 312 -> 0 bytes
win32/deps/library/locfit/data/ethanol.rda | Bin 1259 -> 0 bytes
win32/deps/library/locfit/data/geyser.rda | Bin 390 -> 0 bytes
win32/deps/library/locfit/data/geyser.round.tab.gz | Bin 305 -> 0 bytes
win32/deps/library/locfit/data/heart.rda | Bin 1457 -> 0 bytes
win32/deps/library/locfit/data/insect.tab.gz | Bin 68 -> 0 bytes
win32/deps/library/locfit/data/iris.rda | Bin 1068 -> 0 bytes
win32/deps/library/locfit/data/kangaroo.rda | Bin 4405 -> 0 bytes
win32/deps/library/locfit/data/livmet.rda | Bin 6936 -> 0 bytes
win32/deps/library/locfit/data/mcyc.tab.gz | Bin 1029 -> 0 bytes
win32/deps/library/locfit/data/mine.rda | Bin 604 -> 0 bytes
win32/deps/library/locfit/data/mmsamp.tab.gz | Bin 419 -> 0 bytes
win32/deps/library/locfit/data/morths.rda | Bin 526 -> 0 bytes
win32/deps/library/locfit/data/penny.tab.gz | Bin 296 -> 0 bytes
win32/deps/library/locfit/data/spencer.rda | Bin 502 -> 0 bytes
win32/deps/library/locfit/data/stamp.rda | Bin 908 -> 0 bytes
win32/deps/library/locfit/data/trimod.tab.gz | Bin 2575 -> 0 bytes
win32/deps/library/locfit/help/AnIndex | 110 -
win32/deps/library/locfit/help/aliases.rds | Bin 680 -> 0 bytes
win32/deps/library/locfit/help/locfit.rdb | Bin 207855 -> 0 bytes
win32/deps/library/locfit/help/locfit.rdx | Bin 2198 -> 0 bytes
win32/deps/library/locfit/help/paths.rds | Bin 754 -> 0 bytes
win32/deps/library/locfit/html/00Index.html | 347 --
win32/deps/library/locfit/html/R.css | 57 -
win32/deps/library/locfit/libs/i386/locfit.dll | Bin 234496 -> 0 bytes
win32/deps/library/locfit/libs/i386/symbols.rds | Bin 6456 -> 0 bytes
win32/deps/library/locfit/libs/x64/locfit.dll | Bin 232448 -> 0 bytes
win32/deps/library/locfit/libs/x64/symbols.rds | Bin 6426 -> 0 bytes
win32/deps/library/methods/DESCRIPTION | 6 +-
win32/deps/library/methods/INDEX | 1 +
win32/deps/library/methods/Meta/Rd.rds | Bin 5499 -> 5500 bytes
win32/deps/library/methods/Meta/hsearch.rds | Bin 5575 -> 5575 bytes
win32/deps/library/methods/Meta/links.rds | Bin 3898 -> 3912 bytes
win32/deps/library/methods/Meta/nsInfo.rds | Bin 1700 -> 1740 bytes
win32/deps/library/methods/Meta/package.rds | Bin 631 -> 636 bytes
win32/deps/library/methods/NAMESPACE | 10 +-
win32/deps/library/methods/R/methods | 26 +-
win32/deps/library/methods/R/methods.rdb | Bin 1076889 -> 1082457 bytes
win32/deps/library/methods/R/methods.rdx | Bin 13552 -> 13555 bytes
win32/deps/library/methods/help/AnIndex | 12 +-
win32/deps/library/methods/help/aliases.rds | Bin 4004 -> 4001 bytes
win32/deps/library/methods/help/methods.rdb | Bin 476158 -> 480512 bytes
win32/deps/library/methods/help/methods.rdx | Bin 1838 -> 1857 bytes
win32/deps/library/methods/help/paths.rds | Bin 779 -> 782 bytes
win32/deps/library/methods/html/00Index.html | 12 +-
win32/deps/library/methods/libs/i386/methods.dll | Bin 35840 -> 34816 bytes
.../library/methods/po/da/LC_MESSAGES/R-methods.mo | Bin 3178 -> 0 bytes
.../library/methods/po/da/LC_MESSAGES/methods.mo | Bin 5891 -> 0 bytes
.../library/methods/po/de/LC_MESSAGES/R-methods.mo | Bin 70618 -> 0 bytes
.../library/methods/po/de/LC_MESSAGES/methods.mo | Bin 6219 -> 0 bytes
.../methods/po/en quot/LC_MESSAGES/R-methods.mo | Bin 66548 -> 0 bytes
.../methods/po/en quot/LC_MESSAGES/methods.mo | Bin 5908 -> 0 bytes
.../library/methods/po/fr/LC_MESSAGES/R-methods.mo | Bin 73672 -> 0 bytes
.../library/methods/po/fr/LC_MESSAGES/methods.mo | Bin 6643 -> 0 bytes
.../library/methods/po/ja/LC_MESSAGES/R-methods.mo | Bin 81510 -> 0 bytes
.../library/methods/po/ja/LC_MESSAGES/methods.mo | Bin 7131 -> 0 bytes
.../library/methods/po/ko/LC_MESSAGES/R-methods.mo | Bin 72400 -> 0 bytes
.../library/methods/po/ko/LC_MESSAGES/methods.mo | Bin 6917 -> 0 bytes
.../library/methods/po/pl/LC_MESSAGES/R-methods.mo | Bin 69598 -> 0 bytes
.../library/methods/po/pl/LC_MESSAGES/methods.mo | Bin 6246 -> 0 bytes
.../methods/po/pt_BR/LC_MESSAGES/R-methods.mo | Bin 9875 -> 0 bytes
.../methods/po/pt_BR/LC_MESSAGES/methods.mo | Bin 6366 -> 0 bytes
.../library/methods/po/ru/LC_MESSAGES/R-methods.mo | Bin 67565 -> 0 bytes
.../library/methods/po/ru/LC_MESSAGES/methods.mo | Bin 6021 -> 0 bytes
.../methods/po/zh_CN/LC_MESSAGES/R-methods.mo | Bin 49243 -> 0 bytes
.../methods/po/zh_CN/LC_MESSAGES/methods.mo | Bin 5598 -> 0 bytes
win32/deps/library/methods/tests/basicRefClass.R | 76 +-
win32/deps/library/methods/tests/duplicateClass.R | 8 +
win32/deps/library/methods/tests/mixinInitialize.R | 14 +
win32/deps/library/methods/tests/namesAndSlots.R | 3 +
win32/deps/library/mgcv/CITATION | 70 -
win32/deps/library/mgcv/DESCRIPTION | 19 -
win32/deps/library/mgcv/INDEX | 87 -
win32/deps/library/mgcv/Meta/Rd.rds | Bin 4310 -> 0 bytes
win32/deps/library/mgcv/Meta/data.rds | Bin 121 -> 0 bytes
win32/deps/library/mgcv/Meta/hsearch.rds | Bin 4267 -> 0 bytes
win32/deps/library/mgcv/Meta/links.rds | Bin 1789 -> 0 bytes
win32/deps/library/mgcv/Meta/nsInfo.rds | Bin 1502 -> 0 bytes
win32/deps/library/mgcv/Meta/package.rds | Bin 896 -> 0 bytes
win32/deps/library/mgcv/NAMESPACE | 136 -
win32/deps/library/mgcv/R/mgcv | 9 -
win32/deps/library/mgcv/R/mgcv.rdb | Bin 710851 -> 0 bytes
win32/deps/library/mgcv/R/mgcv.rdx | Bin 3621 -> 0 bytes
win32/deps/library/mgcv/data/columb.polys.rda | Bin 8262 -> 0 bytes
win32/deps/library/mgcv/data/columb.rda | Bin 2889 -> 0 bytes
win32/deps/library/mgcv/help/AnIndex | 165 -
win32/deps/library/mgcv/help/aliases.rds | Bin 1374 -> 0 bytes
win32/deps/library/mgcv/help/mgcv.rdb | Bin 525293 -> 0 bytes
win32/deps/library/mgcv/help/mgcv.rdx | Bin 2263 -> 0 bytes
win32/deps/library/mgcv/help/paths.rds | Bin 872 -> 0 bytes
win32/deps/library/mgcv/html/00Index.html | 467 --
win32/deps/library/mgcv/html/R.css | 57 -
win32/deps/library/mgcv/libs/i386/mgcv.dll | Bin 216576 -> 0 bytes
win32/deps/library/nlme/CITATION | 21 -
win32/deps/library/nlme/DESCRIPTION | 28 -
win32/deps/library/nlme/INDEX | 303 --
win32/deps/library/nlme/LICENCE | 7 -
win32/deps/library/nlme/Meta/Rd.rds | Bin 8585 -> 0 bytes
win32/deps/library/nlme/Meta/data.rds | Bin 1059 -> 0 bytes
win32/deps/library/nlme/Meta/hsearch.rds | Bin 8259 -> 0 bytes
win32/deps/library/nlme/Meta/links.rds | Bin 4630 -> 0 bytes
win32/deps/library/nlme/Meta/nsInfo.rds | Bin 1937 -> 0 bytes
win32/deps/library/nlme/Meta/package.rds | Bin 935 -> 0 bytes
win32/deps/library/nlme/NAMESPACE | 481 --
win32/deps/library/nlme/R/nlme | 9 -
win32/deps/library/nlme/R/nlme.rdb | Bin 732450 -> 0 bytes
win32/deps/library/nlme/R/nlme.rdx | Bin 6207 -> 0 bytes
win32/deps/library/nlme/data/Rdata.rdb | Bin 157230 -> 0 bytes
win32/deps/library/nlme/data/Rdata.rds | Bin 457 -> 0 bytes
win32/deps/library/nlme/data/Rdata.rdx | Bin 824 -> 0 bytes
win32/deps/library/nlme/help/AnIndex | 540 --
win32/deps/library/nlme/help/aliases.rds | Bin 3325 -> 0 bytes
win32/deps/library/nlme/help/nlme.rdb | Bin 911546 -> 0 bytes
win32/deps/library/nlme/help/nlme.rdx | Bin 5750 -> 0 bytes
win32/deps/library/nlme/help/paths.rds | Bin 2004 -> 0 bytes
win32/deps/library/nlme/html/00Index.html | 1230 -----
win32/deps/library/nlme/html/R.css | 57 -
win32/deps/library/nlme/libs/i386/nlme.dll | Bin 68608 -> 0 bytes
win32/deps/library/nlme/mlbook/README | 4 -
win32/deps/library/nlme/mlbook/ch04.R | 26 -
win32/deps/library/nlme/mlbook/ch05.R | 15 -
.../deps/library/nlme/po/de/LC_MESSAGES/R-nlme.mo | Bin 42667 -> 0 bytes
win32/deps/library/nlme/po/de/LC_MESSAGES/nlme.mo | Bin 1715 -> 0 bytes
.../library/nlme/po/en quot/LC_MESSAGES/R-nlme.mo | Bin 40211 -> 0 bytes
.../library/nlme/po/en quot/LC_MESSAGES/nlme.mo | Bin 1584 -> 0 bytes
.../deps/library/nlme/po/fr/LC_MESSAGES/R-nlme.mo | Bin 43909 -> 0 bytes
win32/deps/library/nlme/po/fr/LC_MESSAGES/nlme.mo | Bin 1748 -> 0 bytes
.../deps/library/nlme/po/pl/LC_MESSAGES/R-nlme.mo | Bin 43293 -> 0 bytes
win32/deps/library/nlme/po/pl/LC_MESSAGES/nlme.mo | Bin 1862 -> 0 bytes
win32/deps/library/nlme/scripts/ch01.R | 141 -
win32/deps/library/nlme/scripts/ch02.R | 68 -
win32/deps/library/nlme/scripts/ch03.R | 116 -
win32/deps/library/nlme/scripts/ch04.R | 202 -
win32/deps/library/nlme/scripts/ch05.R | 193 -
win32/deps/library/nlme/scripts/ch06.R | 99 -
win32/deps/library/nlme/scripts/ch08.R | 293 --
win32/deps/library/nlme/scripts/sims.rda | Bin 105883 -> 0 bytes
win32/deps/library/nlme/tests/anova.gls.R | 22 -
win32/deps/library/nlme/tests/augPred_lab.R | 14 -
win32/deps/library/nlme/tests/augPredmissing.R | 7 -
win32/deps/library/nlme/tests/coef.R | 14 -
win32/deps/library/nlme/tests/contrMat.R | 40 -
win32/deps/library/nlme/tests/data.frame.R | 4 -
win32/deps/library/nlme/tests/deparse.R | 171 -
win32/deps/library/nlme/tests/getData.R | 8 -
win32/deps/library/nlme/tests/gls.R | 24 -
win32/deps/library/nlme/tests/lmList.R | 11 -
win32/deps/library/nlme/tests/lme.R | 37 -
win32/deps/library/nlme/tests/lme.Rout.save | 146 -
win32/deps/library/nlme/tests/missing.R | 26 -
win32/deps/library/nlme/tests/missing.Rout.save | 791 ---
win32/deps/library/nlme/tests/nlme.R | 7 -
win32/deps/library/nlme/tests/nlme.Rout.save | 61 -
win32/deps/library/nlme/tests/predict.lme.R | 8 -
win32/deps/library/nlme/tests/ss2.rda | Bin 4809 -> 0 bytes
win32/deps/library/nlme/tests/update.R | 8 -
win32/deps/library/nlme/tests/updateLme.R | 12 -
win32/deps/library/nlme/tests/varIdent.R | 7 -
win32/deps/library/nnet/CITATION | 18 -
win32/deps/library/nnet/DESCRIPTION | 19 -
win32/deps/library/nnet/INDEX | 6 -
win32/deps/library/nnet/LICENCE | 43 -
win32/deps/library/nnet/Meta/Rd.rds | Bin 616 -> 0 bytes
win32/deps/library/nnet/Meta/hsearch.rds | Bin 658 -> 0 bytes
win32/deps/library/nnet/Meta/links.rds | Bin 327 -> 0 bytes
win32/deps/library/nnet/Meta/nsInfo.rds | Bin 490 -> 0 bytes
win32/deps/library/nnet/Meta/package.rds | Bin 808 -> 0 bytes
win32/deps/library/nnet/NAMESPACE | 39 -
win32/deps/library/nnet/NEWS | 26 -
win32/deps/library/nnet/R/nnet | 9 -
win32/deps/library/nnet/R/nnet.rdb | Bin 49662 -> 0 bytes
win32/deps/library/nnet/R/nnet.rdx | Bin 669 -> 0 bytes
win32/deps/library/nnet/help/AnIndex | 27 -
win32/deps/library/nnet/help/aliases.rds | Bin 297 -> 0 bytes
win32/deps/library/nnet/help/nnet.rdb | Bin 20757 -> 0 bytes
win32/deps/library/nnet/help/nnet.rdx | Bin 283 -> 0 bytes
win32/deps/library/nnet/help/paths.rds | Bin 166 -> 0 bytes
win32/deps/library/nnet/html/00Index.html | 78 -
win32/deps/library/nnet/html/R.css | 57 -
win32/deps/library/nnet/libs/i386/nnet.dll | Bin 23552 -> 0 bytes
.../deps/library/nnet/po/de/LC_MESSAGES/R-nnet.mo | Bin 2972 -> 0 bytes
.../library/nnet/po/en quot/LC_MESSAGES/R-nnet.mo | Bin 2669 -> 0 bytes
.../deps/library/nnet/po/fr/LC_MESSAGES/R-nnet.mo | Bin 3077 -> 0 bytes
.../deps/library/nnet/po/pl/LC_MESSAGES/R-nnet.mo | Bin 3097 -> 0 bytes
win32/deps/library/parallel/DESCRIPTION | 12 -
win32/deps/library/parallel/INDEX | 8 -
win32/deps/library/parallel/Meta/Rd.rds | Bin 688 -> 0 bytes
win32/deps/library/parallel/Meta/hsearch.rds | Bin 707 -> 0 bytes
win32/deps/library/parallel/Meta/links.rds | Bin 369 -> 0 bytes
win32/deps/library/parallel/Meta/nsInfo.rds | Bin 594 -> 0 bytes
win32/deps/library/parallel/Meta/package.rds | Bin 565 -> 0 bytes
win32/deps/library/parallel/Meta/vignette.rds | Bin 202 -> 0 bytes
win32/deps/library/parallel/NAMESPACE | 44 -
win32/deps/library/parallel/R/parallel | 9 -
win32/deps/library/parallel/R/parallel.rdb | Bin 45249 -> 0 bytes
win32/deps/library/parallel/R/parallel.rdx | Bin 1398 -> 0 bytes
win32/deps/library/parallel/doc/index.html | 27 -
win32/deps/library/parallel/doc/parallel.R | 224 -
win32/deps/library/parallel/doc/parallel.Rnw | 803 ---
win32/deps/library/parallel/doc/parallel.pdf | Bin 291079 -> 0 bytes
win32/deps/library/parallel/help/AnIndex | 31 -
win32/deps/library/parallel/help/aliases.rds | Bin 332 -> 0 bytes
win32/deps/library/parallel/help/parallel.rdb | Bin 32556 -> 0 bytes
win32/deps/library/parallel/help/parallel.rdx | Bin 328 -> 0 bytes
win32/deps/library/parallel/help/paths.rds | Bin 194 -> 0 bytes
win32/deps/library/parallel/html/00Index.html | 86 -
win32/deps/library/parallel/html/R.css | 57 -
win32/deps/library/parallel/libs/i386/parallel.dll | Bin 17408 -> 0 bytes
.../parallel/po/da/LC_MESSAGES/R-parallel.mo | Bin 2981 -> 0 bytes
.../library/parallel/po/da/LC_MESSAGES/parallel.mo | Bin 1704 -> 0 bytes
.../parallel/po/de/LC_MESSAGES/R-parallel.mo | Bin 3576 -> 0 bytes
.../library/parallel/po/de/LC_MESSAGES/parallel.mo | Bin 1731 -> 0 bytes
.../parallel/po/en quot/LC_MESSAGES/R-parallel.mo | Bin 3396 -> 0 bytes
.../parallel/po/en quot/LC_MESSAGES/parallel.mo | Bin 1630 -> 0 bytes
.../parallel/po/fr/LC_MESSAGES/R-parallel.mo | Bin 3795 -> 0 bytes
.../library/parallel/po/fr/LC_MESSAGES/parallel.mo | Bin 1869 -> 0 bytes
.../parallel/po/ko/LC_MESSAGES/R-parallel.mo | Bin 4047 -> 0 bytes
.../library/parallel/po/ko/LC_MESSAGES/parallel.mo | Bin 2029 -> 0 bytes
.../parallel/po/pl/LC_MESSAGES/R-parallel.mo | Bin 3846 -> 0 bytes
.../library/parallel/po/pl/LC_MESSAGES/parallel.mo | Bin 1926 -> 0 bytes
.../parallel/po/ru/LC_MESSAGES/R-parallel.mo | Bin 3673 -> 0 bytes
.../library/parallel/po/ru/LC_MESSAGES/parallel.mo | Bin 1797 -> 0 bytes
.../parallel/po/zh_CN/LC_MESSAGES/R-parallel.mo | Bin 3267 -> 0 bytes
.../parallel/po/zh_CN/LC_MESSAGES/parallel.mo | Bin 1598 -> 0 bytes
win32/deps/library/parallel/tests/Master.R | 36 -
win32/deps/library/parallel/tests/multicore1.RR | 10 -
win32/deps/library/parallel/tests/multicore2.RR | 14 -
.../library/parallel/tests/multicore2.Rout.save | 49 -
win32/deps/library/parallel/tests/multicore3.RR | 7 -
win32/deps/library/parallel/tests/snow1.RR | 40 -
win32/deps/library/parallel/tests/snow2.RR | 19 -
win32/deps/library/parallel/tests/snow2.Rout.save | 54 -
win32/deps/library/rpart/DESCRIPTION | 26 -
win32/deps/library/rpart/INDEX | 33 -
win32/deps/library/rpart/Meta/Rd.rds | Bin 1143 -> 0 bytes
win32/deps/library/rpart/Meta/data.rds | Bin 234 -> 0 bytes
win32/deps/library/rpart/Meta/hsearch.rds | Bin 1090 -> 0 bytes
win32/deps/library/rpart/Meta/links.rds | Bin 427 -> 0 bytes
win32/deps/library/rpart/Meta/nsInfo.rds | Bin 457 -> 0 bytes
win32/deps/library/rpart/Meta/package.rds | Bin 953 -> 0 bytes
win32/deps/library/rpart/NAMESPACE | 26 -
win32/deps/library/rpart/R/rpart | 9 -
win32/deps/library/rpart/R/rpart.rdb | Bin 95794 -> 0 bytes
win32/deps/library/rpart/R/rpart.rdx | Bin 784 -> 0 bytes
win32/deps/library/rpart/data/Rdata.rdb | Bin 4715 -> 0 bytes
win32/deps/library/rpart/data/Rdata.rds | Bin 117 -> 0 bytes
win32/deps/library/rpart/data/Rdata.rdx | Bin 195 -> 0 bytes
win32/deps/library/rpart/help/AnIndex | 30 -
win32/deps/library/rpart/help/aliases.rds | Bin 288 -> 0 bytes
win32/deps/library/rpart/help/paths.rds | Bin 317 -> 0 bytes
win32/deps/library/rpart/help/rpart.rdb | Bin 78392 -> 0 bytes
win32/deps/library/rpart/help/rpart.rdx | Bin 699 -> 0 bytes
win32/deps/library/rpart/html/00Index.html | 79 -
win32/deps/library/rpart/html/R.css | 57 -
win32/deps/library/rpart/libs/i386/rpart.dll | Bin 50688 -> 0 bytes
.../library/rpart/po/de/LC_MESSAGES/R-rpart.mo | Bin 6929 -> 0 bytes
.../deps/library/rpart/po/de/LC_MESSAGES/rpart.mo | Bin 1436 -> 0 bytes
.../rpart/po/en quot/LC_MESSAGES/R-rpart.mo | Bin 6419 -> 0 bytes
.../library/rpart/po/en quot/LC_MESSAGES/rpart.mo | Bin 1318 -> 0 bytes
.../library/rpart/po/fr/LC_MESSAGES/R-rpart.mo | Bin 6973 -> 0 bytes
.../deps/library/rpart/po/fr/LC_MESSAGES/rpart.mo | Bin 1414 -> 0 bytes
.../library/rpart/po/pl/LC_MESSAGES/R-rpart.mo | Bin 6636 -> 0 bytes
.../deps/library/rpart/po/pl/LC_MESSAGES/rpart.mo | Bin 1539 -> 0 bytes
.../library/rpart/po/ru/LC_MESSAGES/R-rpart.mo | Bin 6457 -> 0 bytes
.../deps/library/rpart/po/ru/LC_MESSAGES/rpart.mo | Bin 1439 -> 0 bytes
.../rpart/tests/Examples/rpart-Ex.Rout.save | 971 ----
win32/deps/library/rpart/tests/backticks.R | 7 -
win32/deps/library/rpart/tests/data.stagec | 146 -
win32/deps/library/rpart/tests/rpartco.R | 6 -
win32/deps/library/rpart/tests/surv_test.R | 9 -
win32/deps/library/rpart/tests/testall.R | 330 --
win32/deps/library/rpart/tests/testall.Rout.save | 1506 ------
win32/deps/library/rpart/tests/usersplits.R | 167 -
.../deps/library/rpart/tests/usersplits.Rout.save | 193 -
win32/deps/library/spam/0NEWS | 404 --
win32/deps/library/spam/CITATION | 19 -
win32/deps/library/spam/DESCRIPTION | 22 -
win32/deps/library/spam/INDEX | 53 -
win32/deps/library/spam/LICENSE | 38 -
win32/deps/library/spam/MD5 | 38 -
win32/deps/library/spam/Meta/Rd.rds | Bin 3971 -> 0 bytes
win32/deps/library/spam/Meta/data.rds | Bin 229 -> 0 bytes
win32/deps/library/spam/Meta/demo.rds | Bin 295 -> 0 bytes
win32/deps/library/spam/Meta/hsearch.rds | Bin 4073 -> 0 bytes
win32/deps/library/spam/Meta/links.rds | Bin 2709 -> 0 bytes
win32/deps/library/spam/Meta/nsInfo.rds | Bin 1090 -> 0 bytes
win32/deps/library/spam/Meta/package.rds | Bin 924 -> 0 bytes
win32/deps/library/spam/NAMESPACE | 220 -
win32/deps/library/spam/NEWS | 232 -
win32/deps/library/spam/R/spam | 9 -
win32/deps/library/spam/R/spam.rdb | Bin 369813 -> 0 bytes
win32/deps/library/spam/R/spam.rdx | Bin 4730 -> 0 bytes
win32/deps/library/spam/data/Rdata.rdb | Bin 319762 -> 0 bytes
win32/deps/library/spam/data/Rdata.rds | Bin 127 -> 0 bytes
win32/deps/library/spam/data/Rdata.rdx | Bin 209 -> 0 bytes
.../deps/library/spam/demo/article-jss-example1.R | 214 -
.../deps/library/spam/demo/article-jss-example2.R | 232 -
win32/deps/library/spam/demo/article-jss.R | 359 --
win32/deps/library/spam/demo/cholesky.R | 157 -
win32/deps/library/spam/demo/spam.R | 73 -
win32/deps/library/spam/demo/timing.R | 78 -
win32/deps/library/spam/demodata/germany.adjacency | 545 --
win32/deps/library/spam/help/AnIndex | 391 --
win32/deps/library/spam/help/aliases.rds | Bin 2688 -> 0 bytes
win32/deps/library/spam/help/paths.rds | Bin 491 -> 0 bytes
win32/deps/library/spam/help/spam.rdb | Bin 159575 -> 0 bytes
win32/deps/library/spam/help/spam.rdx | Bin 1263 -> 0 bytes
win32/deps/library/spam/html/00Index.html | 718 ---
win32/deps/library/spam/html/R.css | 57 -
win32/deps/library/spam/libs/i386/spam.dll | Bin 69632 -> 0 bytes
win32/deps/library/spam/libs/i386/symbols.rds | Bin 1557 -> 0 bytes
win32/deps/library/spam/libs/x64/spam.dll | Bin 81408 -> 0 bytes
win32/deps/library/spam/libs/x64/symbols.rds | Bin 1551 -> 0 bytes
win32/deps/library/spatial/CITATION | 18 -
win32/deps/library/spatial/DESCRIPTION | 20 -
win32/deps/library/spatial/INDEX | 26 -
win32/deps/library/spatial/LICENCE | 46 -
win32/deps/library/spatial/Meta/Rd.rds | Bin 928 -> 0 bytes
win32/deps/library/spatial/Meta/hsearch.rds | Bin 889 -> 0 bytes
win32/deps/library/spatial/Meta/links.rds | Bin 378 -> 0 bytes
win32/deps/library/spatial/Meta/nsInfo.rds | Bin 554 -> 0 bytes
win32/deps/library/spatial/Meta/package.rds | Bin 799 -> 0 bytes
win32/deps/library/spatial/NAMESPACE | 25 -
win32/deps/library/spatial/NEWS | 13 -
win32/deps/library/spatial/PP.files | 50 -
win32/deps/library/spatial/R/spatial | 9 -
win32/deps/library/spatial/R/spatial.rdb | Bin 36844 -> 0 bytes
win32/deps/library/spatial/R/spatial.rdx | Bin 696 -> 0 bytes
win32/deps/library/spatial/help/AnIndex | 25 -
win32/deps/library/spatial/help/aliases.rds | Bin 252 -> 0 bytes
win32/deps/library/spatial/help/paths.rds | Bin 276 -> 0 bytes
win32/deps/library/spatial/help/spatial.rdb | Bin 46796 -> 0 bytes
win32/deps/library/spatial/help/spatial.rdx | Bin 583 -> 0 bytes
win32/deps/library/spatial/html/00Index.html | 74 -
win32/deps/library/spatial/html/R.css | 57 -
win32/deps/library/spatial/libs/i386/spatial.dll | Bin 28672 -> 0 bytes
.../library/spatial/po/de/LC_MESSAGES/R-spatial.mo | Bin 1518 -> 0 bytes
.../spatial/po/en quot/LC_MESSAGES/R-spatial.mo | Bin 1380 -> 0 bytes
.../library/spatial/po/fr/LC_MESSAGES/R-spatial.mo | Bin 1547 -> 0 bytes
.../library/spatial/po/pl/LC_MESSAGES/R-spatial.mo | Bin 1674 -> 0 bytes
win32/deps/library/spatial/ppdata/agter.dat | 43 -
win32/deps/library/spatial/ppdata/caveolae.dat | 437 --
win32/deps/library/spatial/ppdata/cells.dat | 45 -
win32/deps/library/spatial/ppdata/davis.dat | 50 -
win32/deps/library/spatial/ppdata/drumlin.dat | 235 -
win32/deps/library/spatial/ppdata/eagles.dat | 18 -
win32/deps/library/spatial/ppdata/fig1b.dat | 317 --
win32/deps/library/spatial/ppdata/fig1c.dat | 372 --
win32/deps/library/spatial/ppdata/fig2a.dat | 142 -
win32/deps/library/spatial/ppdata/fig2b.dat | 304 --
win32/deps/library/spatial/ppdata/fig3a.dat | 76 -
win32/deps/library/spatial/ppdata/fig3b.dat | 70 -
win32/deps/library/spatial/ppdata/fig3c.dat | 83 -
win32/deps/library/spatial/ppdata/grocery.dat | 83 -
win32/deps/library/spatial/ppdata/hccells.dat | 45 -
win32/deps/library/spatial/ppdata/nztrees.dat | 90 -
win32/deps/library/spatial/ppdata/pairfn.dat | 45 -
win32/deps/library/spatial/ppdata/pereg.dat | 23 -
win32/deps/library/spatial/ppdata/pines.dat | 75 -
win32/deps/library/spatial/ppdata/redwood.dat | 65 -
win32/deps/library/spatial/ppdata/schools.dat | 43 -
win32/deps/library/spatial/ppdata/stowns1.dat | 73 -
win32/deps/library/spatial/ppdata/tokyo.dat | 235 -
win32/deps/library/spatial/ppdata/towns.dat | 72 -
.../spatial/tests/Examples/spatial-Ex.Rout.save | 514 --
win32/deps/library/splines/DESCRIPTION | 6 +-
win32/deps/library/splines/Meta/Rd.rds | Bin 724 -> 724 bytes
win32/deps/library/splines/Meta/hsearch.rds | Bin 720 -> 720 bytes
win32/deps/library/splines/Meta/links.rds | Bin 323 -> 323 bytes
win32/deps/library/splines/Meta/nsInfo.rds | Bin 567 -> 564 bytes
win32/deps/library/splines/Meta/package.rds | Bin 588 -> 596 bytes
win32/deps/library/splines/R/splines | 26 +-
win32/deps/library/splines/R/splines.rdb | Bin 39921 -> 40021 bytes
win32/deps/library/splines/R/splines.rdx | Bin 797 -> 795 bytes
win32/deps/library/splines/help/aliases.rds | Bin 229 -> 229 bytes
win32/deps/library/splines/help/paths.rds | Bin 222 -> 222 bytes
win32/deps/library/splines/help/splines.rdb | Bin 37096 -> 37352 bytes
win32/deps/library/splines/help/splines.rdx | Bin 447 -> 457 bytes
win32/deps/library/splines/html/00Index.html | 2 +-
win32/deps/library/splines/libs/i386/splines.dll | Bin 16384 -> 16384 bytes
.../library/splines/po/da/LC_MESSAGES/R-splines.mo | Bin 2495 -> 0 bytes
.../library/splines/po/da/LC_MESSAGES/splines.mo | Bin 560 -> 0 bytes
.../library/splines/po/de/LC_MESSAGES/R-splines.mo | Bin 2689 -> 0 bytes
.../library/splines/po/de/LC_MESSAGES/splines.mo | Bin 559 -> 0 bytes
.../splines/po/en quot/LC_MESSAGES/R-splines.mo | Bin 2572 -> 0 bytes
.../splines/po/en quot/LC_MESSAGES/splines.mo | Bin 510 -> 0 bytes
.../library/splines/po/fr/LC_MESSAGES/R-splines.mo | Bin 2778 -> 0 bytes
.../library/splines/po/fr/LC_MESSAGES/splines.mo | Bin 582 -> 0 bytes
.../library/splines/po/ja/LC_MESSAGES/R-splines.mo | Bin 3233 -> 0 bytes
.../library/splines/po/ja/LC_MESSAGES/splines.mo | Bin 527 -> 0 bytes
.../library/splines/po/ko/LC_MESSAGES/R-splines.mo | Bin 3104 -> 0 bytes
.../library/splines/po/ko/LC_MESSAGES/splines.mo | Bin 666 -> 0 bytes
.../library/splines/po/pl/LC_MESSAGES/R-splines.mo | Bin 2847 -> 0 bytes
.../library/splines/po/pl/LC_MESSAGES/splines.mo | Bin 686 -> 0 bytes
.../splines/po/pt_BR/LC_MESSAGES/R-splines.mo | Bin 2628 -> 0 bytes
.../splines/po/pt_BR/LC_MESSAGES/splines.mo | Bin 629 -> 0 bytes
.../library/splines/po/ru/LC_MESSAGES/R-splines.mo | Bin 2750 -> 0 bytes
.../library/splines/po/ru/LC_MESSAGES/splines.mo | Bin 603 -> 0 bytes
.../splines/po/zh_CN/LC_MESSAGES/R-splines.mo | Bin 2292 -> 0 bytes
.../splines/po/zh_CN/LC_MESSAGES/splines.mo | Bin 496 -> 0 bytes
win32/deps/library/stats/DESCRIPTION | 6 +-
win32/deps/library/stats/Meta/Rd.rds | Bin 12828 -> 12799 bytes
win32/deps/library/stats/Meta/demo.rds | Bin 266 -> 266 bytes
win32/deps/library/stats/Meta/hsearch.rds | Bin 12897 -> 12872 bytes
win32/deps/library/stats/Meta/links.rds | Bin 6451 -> 6453 bytes
win32/deps/library/stats/Meta/nsInfo.rds | Bin 4257 -> 4285 bytes
win32/deps/library/stats/Meta/package.rds | Bin 490 -> 497 bytes
win32/deps/library/stats/NAMESPACE | 41 +-
win32/deps/library/stats/R/stats | 26 +-
win32/deps/library/stats/R/stats.rdb | Bin 1248066 -> 1246173 bytes
win32/deps/library/stats/R/stats.rdx | Bin 10629 -> 10583 bytes
win32/deps/library/stats/help/AnIndex | 6 +-
win32/deps/library/stats/help/aliases.rds | Bin 5364 -> 5363 bytes
win32/deps/library/stats/help/paths.rds | Bin 2317 -> 2309 bytes
win32/deps/library/stats/help/stats.rdb | Bin 1405408 -> 1421968 bytes
win32/deps/library/stats/help/stats.rdx | Bin 6496 -> 6501 bytes
win32/deps/library/stats/html/00Index.html | 10 +-
win32/deps/library/stats/libs/i386/stats.dll | Bin 417280 -> 582144 bytes
.../library/stats/po/da/LC_MESSAGES/R-stats.mo | Bin 5296 -> 0 bytes
.../deps/library/stats/po/da/LC_MESSAGES/stats.mo | Bin 6484 -> 0 bytes
.../library/stats/po/de/LC_MESSAGES/R-stats.mo | Bin 84095 -> 0 bytes
.../deps/library/stats/po/de/LC_MESSAGES/stats.mo | Bin 6974 -> 0 bytes
.../stats/po/en quot/LC_MESSAGES/R-stats.mo | Bin 81434 -> 0 bytes
.../library/stats/po/en quot/LC_MESSAGES/stats.mo | Bin 6644 -> 0 bytes
.../library/stats/po/fr/LC_MESSAGES/R-stats.mo | Bin 86777 -> 0 bytes
.../deps/library/stats/po/fr/LC_MESSAGES/stats.mo | Bin 7108 -> 0 bytes
.../library/stats/po/it/LC_MESSAGES/R-stats.mo | Bin 60627 -> 0 bytes
.../deps/library/stats/po/it/LC_MESSAGES/stats.mo | Bin 3197 -> 0 bytes
.../library/stats/po/ja/LC_MESSAGES/R-stats.mo | Bin 97532 -> 0 bytes
.../deps/library/stats/po/ja/LC_MESSAGES/stats.mo | Bin 7981 -> 0 bytes
.../library/stats/po/ko/LC_MESSAGES/R-stats.mo | Bin 96100 -> 0 bytes
.../deps/library/stats/po/ko/LC_MESSAGES/stats.mo | Bin 7880 -> 0 bytes
.../library/stats/po/pl/LC_MESSAGES/R-stats.mo | Bin 87528 -> 0 bytes
.../deps/library/stats/po/pl/LC_MESSAGES/stats.mo | Bin 7253 -> 0 bytes
.../library/stats/po/pt_BR/LC_MESSAGES/R-stats.mo | Bin 58125 -> 0 bytes
.../library/stats/po/pt_BR/LC_MESSAGES/stats.mo | Bin 6692 -> 0 bytes
.../library/stats/po/ru/LC_MESSAGES/R-stats.mo | Bin 83360 -> 0 bytes
.../deps/library/stats/po/ru/LC_MESSAGES/stats.mo | Bin 6990 -> 0 bytes
.../library/stats/po/tr/LC_MESSAGES/R-stats.mo | Bin 39906 -> 0 bytes
.../library/stats/po/zh_CN/LC_MESSAGES/R-stats.mo | Bin 74953 -> 0 bytes
.../library/stats/po/zh_CN/LC_MESSAGES/stats.mo | Bin 6109 -> 0 bytes
win32/deps/library/stats/tests/ks-test.Rout.save | 40 +-
win32/deps/library/stats/tests/nls.R | 5 +-
win32/deps/library/stats/tests/nls.Rout.save | 107 +-
win32/deps/library/stats/tests/simulate.Rout.save | 8 +-
win32/deps/library/stats/tests/ts-tests.R | 2 +-
win32/deps/library/stats4/DESCRIPTION | 10 -
win32/deps/library/stats4/INDEX | 22 -
win32/deps/library/stats4/Meta/Rd.rds | Bin 790 -> 0 bytes
win32/deps/library/stats4/Meta/hsearch.rds | Bin 816 -> 0 bytes
win32/deps/library/stats4/Meta/links.rds | Bin 419 -> 0 bytes
win32/deps/library/stats4/Meta/nsInfo.rds | Bin 328 -> 0 bytes
win32/deps/library/stats4/Meta/package.rds | Bin 543 -> 0 bytes
win32/deps/library/stats4/NAMESPACE | 13 -
win32/deps/library/stats4/R/stats4 | 9 -
win32/deps/library/stats4/R/stats4.rdb | Bin 94834 -> 0 bytes
win32/deps/library/stats4/R/stats4.rdx | Bin 1035 -> 0 bytes
win32/deps/library/stats4/help/AnIndex | 36 -
win32/deps/library/stats4/help/aliases.rds | Bin 349 -> 0 bytes
win32/deps/library/stats4/help/paths.rds | Bin 226 -> 0 bytes
win32/deps/library/stats4/help/stats4.rdb | Bin 30377 -> 0 bytes
win32/deps/library/stats4/help/stats4.rdx | Bin 460 -> 0 bytes
win32/deps/library/stats4/html/00Index.html | 73 -
win32/deps/library/stats4/html/R.css | 57 -
.../library/stats4/po/da/LC_MESSAGES/R-stats4.mo | Bin 1287 -> 0 bytes
.../library/stats4/po/de/LC_MESSAGES/R-stats4.mo | Bin 1294 -> 0 bytes
.../stats4/po/en quot/LC_MESSAGES/R-stats4.mo | Bin 1208 -> 0 bytes
.../library/stats4/po/fr/LC_MESSAGES/R-stats4.mo | Bin 1395 -> 0 bytes
.../library/stats4/po/it/LC_MESSAGES/R-stats4.mo | Bin 1269 -> 0 bytes
.../library/stats4/po/ja/LC_MESSAGES/R-stats4.mo | Bin 1475 -> 0 bytes
.../library/stats4/po/ko/LC_MESSAGES/R-stats4.mo | Bin 1476 -> 0 bytes
.../library/stats4/po/pl/LC_MESSAGES/R-stats4.mo | Bin 1491 -> 0 bytes
.../stats4/po/pt_BR/LC_MESSAGES/R-stats4.mo | Bin 1354 -> 0 bytes
.../library/stats4/po/ru/LC_MESSAGES/R-stats4.mo | Bin 1447 -> 0 bytes
.../library/stats4/po/tr/LC_MESSAGES/R-stats4.mo | Bin 1275 -> 0 bytes
.../stats4/po/zh_CN/LC_MESSAGES/R-stats4.mo | Bin 1199 -> 0 bytes
win32/deps/library/stats4/tests/confint.R | 23 -
win32/deps/library/survival/CITATION | 15 -
win32/deps/library/survival/DESCRIPTION | 19 -
win32/deps/library/survival/INDEX | 88 -
win32/deps/library/survival/Meta/Rd.rds | Bin 3411 -> 0 bytes
win32/deps/library/survival/Meta/data.rds | Bin 654 -> 0 bytes
win32/deps/library/survival/Meta/hsearch.rds | Bin 3250 -> 0 bytes
win32/deps/library/survival/Meta/links.rds | Bin 1618 -> 0 bytes
win32/deps/library/survival/Meta/nsInfo.rds | Bin 930 -> 0 bytes
win32/deps/library/survival/Meta/package.rds | Bin 860 -> 0 bytes
win32/deps/library/survival/Meta/vignette.rds | Bin 213 -> 0 bytes
win32/deps/library/survival/NAMESPACE | 100 -
win32/deps/library/survival/NEWS.Rd | 702 ---
win32/deps/library/survival/R/survival | 9 -
win32/deps/library/survival/R/survival.rdb | Bin 516941 -> 0 bytes
win32/deps/library/survival/R/survival.rdx | Bin 2454 -> 0 bytes
win32/deps/library/survival/data/Rdata.rdb | Bin 1415335 -> 0 bytes
win32/deps/library/survival/data/Rdata.rds | Bin 281 -> 0 bytes
win32/deps/library/survival/data/Rdata.rdx | Bin 572 -> 0 bytes
win32/deps/library/survival/doc/index.html | 27 -
win32/deps/library/survival/doc/timedep.R | 121 -
win32/deps/library/survival/doc/timedep.Rnw | 419 --
win32/deps/library/survival/doc/timedep.pdf | Bin 125002 -> 0 bytes
win32/deps/library/survival/doc/validate.pdf | Bin 144741 -> 0 bytes
win32/deps/library/survival/help/AnIndex | 170 -
win32/deps/library/survival/help/aliases.rds | Bin 1287 -> 0 bytes
win32/deps/library/survival/help/paths.rds | Bin 709 -> 0 bytes
win32/deps/library/survival/help/survival.rdb | Bin 280357 -> 0 bytes
win32/deps/library/survival/help/survival.rdx | Bin 1798 -> 0 bytes
win32/deps/library/survival/html/00Index.html | 463 --
win32/deps/library/survival/html/R.css | 57 -
win32/deps/library/survival/libs/i386/survival.dll | Bin 120320 -> 0 bytes
win32/deps/library/survival/tests/aareg.R | 210 -
win32/deps/library/survival/tests/aareg.Rout.save | 381 --
win32/deps/library/survival/tests/anova.R | 31 -
win32/deps/library/survival/tests/anova.Rout.save | 57 -
win32/deps/library/survival/tests/bladder.R | 37 -
.../deps/library/survival/tests/bladder.Rout.save | 154 -
win32/deps/library/survival/tests/book1.R | 106 -
win32/deps/library/survival/tests/book1.Rout.save | 222 -
win32/deps/library/survival/tests/book2.R | 105 -
win32/deps/library/survival/tests/book2.Rout.save | 214 -
win32/deps/library/survival/tests/book3.R | 109 -
win32/deps/library/survival/tests/book3.Rout.save | 254 -
win32/deps/library/survival/tests/book4.R | 101 -
win32/deps/library/survival/tests/book4.Rout.save | 242 -
win32/deps/library/survival/tests/book5.R | 124 -
win32/deps/library/survival/tests/book5.Rout.save | 206 -
win32/deps/library/survival/tests/book6.R | 114 -
win32/deps/library/survival/tests/book6.Rout.save | 190 -
win32/deps/library/survival/tests/book7.R | 55 -
win32/deps/library/survival/tests/book7.Rout.save | 90 -
win32/deps/library/survival/tests/cancer.R | 34 -
win32/deps/library/survival/tests/cancer.Rout.save | 224 -
win32/deps/library/survival/tests/clogit.R | 28 -
win32/deps/library/survival/tests/clogit.Rout.save | 58 -
win32/deps/library/survival/tests/concordance.R | 109 -
.../library/survival/tests/concordance.Rout.save | 153 -
win32/deps/library/survival/tests/counting.R | 47 -
.../deps/library/survival/tests/counting.Rout.save | 76 -
win32/deps/library/survival/tests/coxsurv.R | 80 -
.../deps/library/survival/tests/coxsurv.Rout.save | 119 -
win32/deps/library/survival/tests/coxsurv2.R | 58 -
.../deps/library/survival/tests/coxsurv2.Rout.save | 85 -
win32/deps/library/survival/tests/coxsurv3.R | 98 -
.../deps/library/survival/tests/coxsurv3.Rout.save | 127 -
win32/deps/library/survival/tests/coxsurv4.R | 49 -
.../deps/library/survival/tests/coxsurv4.Rout.save | 75 -
win32/deps/library/survival/tests/data.capacitor | 125 -
win32/deps/library/survival/tests/data.cracks | 9 -
win32/deps/library/survival/tests/data.donnell | 210 -
win32/deps/library/survival/tests/data.fluid | 41 -
win32/deps/library/survival/tests/data.interval | 30 -
win32/deps/library/survival/tests/data.motor | 40 -
win32/deps/library/survival/tests/data.peterson | 20 -
win32/deps/library/survival/tests/data.rat2 | 253 -
win32/deps/library/survival/tests/data.smoke | 33 -
win32/deps/library/survival/tests/data.turbine | 23 -
win32/deps/library/survival/tests/data.valve | 89 -
win32/deps/library/survival/tests/detail.R | 69 -
win32/deps/library/survival/tests/detail.Rout.save | 89 -
win32/deps/library/survival/tests/difftest.R | 56 -
.../deps/library/survival/tests/difftest.Rout.save | 96 -
win32/deps/library/survival/tests/doaml.R | 64 -
win32/deps/library/survival/tests/doaml.Rout.save | 185 -
win32/deps/library/survival/tests/doweight.R | 240 -
.../deps/library/survival/tests/doweight.Rout.save | 429 --
win32/deps/library/survival/tests/expected.R | 286 --
.../deps/library/survival/tests/expected.Rout.save | 329 --
win32/deps/library/survival/tests/expected2.R | 16 -
.../library/survival/tests/expected2.Rout.save | 36 -
win32/deps/library/survival/tests/factor.R | 33 -
win32/deps/library/survival/tests/factor.Rout.save | 56 -
win32/deps/library/survival/tests/factor2.R | 26 -
.../deps/library/survival/tests/factor2.Rout.save | 52 -
win32/deps/library/survival/tests/fr_cancer.R | 27 -
.../library/survival/tests/fr_cancer.Rout.save | 120 -
win32/deps/library/survival/tests/fr_colon.R | 58 -
.../deps/library/survival/tests/fr_colon.Rout.save | 317 --
win32/deps/library/survival/tests/fr_kidney.R | 70 -
.../library/survival/tests/fr_kidney.Rout.save | 302 --
win32/deps/library/survival/tests/fr_lung.R | 29 -
.../deps/library/survival/tests/fr_lung.Rout.save | 51 -
win32/deps/library/survival/tests/fr_ovarian.R | 21 -
.../library/survival/tests/fr_ovarian.Rout.save | 74 -
win32/deps/library/survival/tests/fr_rat1.R | 24 -
.../deps/library/survival/tests/fr_rat1.Rout.save | 109 -
win32/deps/library/survival/tests/fr_rat2.R | 65 -
.../deps/library/survival/tests/fr_rat2.Rout.save | 156 -
win32/deps/library/survival/tests/fr_resid.R | 94 -
.../deps/library/survival/tests/fr_resid.Rout.save | 358 --
win32/deps/library/survival/tests/fr_simple.R | 62 -
.../library/survival/tests/fr_simple.Rout.save | 87 -
win32/deps/library/survival/tests/frailty.R | 22 -
.../deps/library/survival/tests/frailty.Rout.save | 44 -
win32/deps/library/survival/tests/frank.R | 23 -
win32/deps/library/survival/tests/frank.Rout.save | 45 -
win32/deps/library/survival/tests/gray1.rda | Bin 3055 -> 0 bytes
win32/deps/library/survival/tests/infcox.R | 35 -
win32/deps/library/survival/tests/infcox.Rout.save | 61 -
win32/deps/library/survival/tests/jasa.R | 89 -
win32/deps/library/survival/tests/jasa.Rout.save | 289 --
win32/deps/library/survival/tests/model.matrix.R | 31 -
.../library/survival/tests/model.matrix.Rout.save | 53 -
win32/deps/library/survival/tests/mrtest.R | 28 -
win32/deps/library/survival/tests/mrtest.Rout.save | 48 -
win32/deps/library/survival/tests/nested.R | 16 -
win32/deps/library/survival/tests/nested.Rout.save | 37 -
win32/deps/library/survival/tests/ovarian.R | 61 -
.../deps/library/survival/tests/ovarian.Rout.save | 319 --
win32/deps/library/survival/tests/prednew.R | 73 -
.../deps/library/survival/tests/prednew.Rout.save | 115 -
win32/deps/library/survival/tests/pspline.R | 34 -
.../deps/library/survival/tests/pspline.Rout.save | 60 -
win32/deps/library/survival/tests/pyear.R | 211 -
win32/deps/library/survival/tests/pyear.Rout.save | 669 ---
win32/deps/library/survival/tests/r_capacitor.R | 18 -
.../library/survival/tests/r_capacitor.Rout.save | 88 -
win32/deps/library/survival/tests/r_donnell.R | 60 -
.../library/survival/tests/r_donnell.Rout.save | 114 -
win32/deps/library/survival/tests/r_lung.R | 49 -
win32/deps/library/survival/tests/r_lung.Rout.save | 165 -
win32/deps/library/survival/tests/r_peterson.R | 44 -
.../library/survival/tests/r_peterson.Rout.save | 117 -
win32/deps/library/survival/tests/r_resid.R | 109 -
.../deps/library/survival/tests/r_resid.Rout.save | 348 --
win32/deps/library/survival/tests/r_sas.R | 259 -
win32/deps/library/survival/tests/r_sas.Rout.save | 438 --
win32/deps/library/survival/tests/r_scale.R | 30 -
.../deps/library/survival/tests/r_scale.Rout.save | 55 -
win32/deps/library/survival/tests/r_stanford.R | 71 -
.../library/survival/tests/r_stanford.Rout.save | 111 -
win32/deps/library/survival/tests/r_strata.R | 60 -
.../deps/library/survival/tests/r_strata.Rout.save | 148 -
win32/deps/library/survival/tests/r_tdist.R | 41 -
.../deps/library/survival/tests/r_tdist.Rout.save | 200 -
win32/deps/library/survival/tests/r_user.R | 29 -
win32/deps/library/survival/tests/r_user.Rout.save | 53 -
win32/deps/library/survival/tests/ratetable.R | 63 -
.../library/survival/tests/ratetable.Rout.save | 164 -
win32/deps/library/survival/tests/rounding.R | 14 -
.../deps/library/survival/tests/rounding.Rout.save | 34 -
win32/deps/library/survival/tests/singtest.R | 22 -
.../deps/library/survival/tests/singtest.Rout.save | 50 -
win32/deps/library/survival/tests/strata2.R | 17 -
.../deps/library/survival/tests/strata2.Rout.save | 45 -
win32/deps/library/survival/tests/stratatest.R | 43 -
.../library/survival/tests/stratatest.Rout.save | 68 -
.../deps/library/survival/tests/summary_survfit.R | 5 -
.../survival/tests/summary_survfit.Rout.save | 54 -
win32/deps/library/survival/tests/surv.R | 23 -
win32/deps/library/survival/tests/surv.Rout.save | 59 -
win32/deps/library/survival/tests/survfit2.R | 13 -
.../deps/library/survival/tests/survfit2.Rout.save | 33 -
win32/deps/library/survival/tests/survreg2.R | 62 -
.../deps/library/survival/tests/survreg2.Rout.save | 87 -
win32/deps/library/survival/tests/survtest.R | 60 -
.../deps/library/survival/tests/survtest.Rout.save | 99 -
win32/deps/library/survival/tests/testci.R | 67 -
win32/deps/library/survival/tests/testci.Rout.save | 91 -
win32/deps/library/survival/tests/testci2.R | 52 -
.../deps/library/survival/tests/testci2.Rout.save | 72 -
win32/deps/library/survival/tests/testnull.R | 19 -
.../deps/library/survival/tests/testnull.Rout.save | 42 -
win32/deps/library/survival/tests/testreg.R | 79 -
.../deps/library/survival/tests/testreg.Rout.save | 301 --
win32/deps/library/survival/tests/tiedtime.R | 23 -
.../deps/library/survival/tests/tiedtime.Rout.save | 44 -
win32/deps/library/survival/tests/ties.rda | Bin 6060 -> 0 bytes
win32/deps/library/survival/tests/tt.R | 38 -
win32/deps/library/survival/tests/turnbull.R | 156 -
.../deps/library/survival/tests/turnbull.Rout.save | 194 -
win32/deps/library/tcltk/DESCRIPTION | 9 -
win32/deps/library/tcltk/INDEX | 13 -
win32/deps/library/tcltk/Meta/Rd.rds | Bin 2336 -> 0 bytes
win32/deps/library/tcltk/Meta/demo.rds | Bin 266 -> 0 bytes
win32/deps/library/tcltk/Meta/hsearch.rds | Bin 2399 -> 0 bytes
win32/deps/library/tcltk/Meta/links.rds | Bin 2034 -> 0 bytes
win32/deps/library/tcltk/Meta/nsInfo.rds | Bin 464 -> 0 bytes
win32/deps/library/tcltk/Meta/package.rds | Bin 490 -> 0 bytes
win32/deps/library/tcltk/NAMESPACE | 36 -
win32/deps/library/tcltk/R/tcltk | 9 -
win32/deps/library/tcltk/R/tcltk.rdb | Bin 77227 -> 0 bytes
win32/deps/library/tcltk/R/tcltk.rdx | Bin 3483 -> 0 bytes
win32/deps/library/tcltk/demo/tkcanvas.R | 151 -
win32/deps/library/tcltk/demo/tkdensity.R | 104 -
win32/deps/library/tcltk/demo/tkfaq.R | 32 -
win32/deps/library/tcltk/demo/tkttest.R | 89 -
win32/deps/library/tcltk/exec/Tk-frontend.R | 25 -
win32/deps/library/tcltk/exec/console.tcl | 79 -
win32/deps/library/tcltk/exec/hierarchy.tcl | 1271 -----
win32/deps/library/tcltk/exec/pkgIndex.tcl | 50 -
win32/deps/library/tcltk/exec/progressbar.tcl | 2435 ---------
win32/deps/library/tcltk/exec/util-dump.tcl | 660 ---
win32/deps/library/tcltk/exec/util-expand.tcl | 207 -
win32/deps/library/tcltk/exec/util-number.tcl | 101 -
win32/deps/library/tcltk/exec/util-string.tcl | 149 -
win32/deps/library/tcltk/exec/util-tk.tcl | 244 -
win32/deps/library/tcltk/exec/util.tcl | 895 ----
win32/deps/library/tcltk/exec/widget.tcl | 975 ----
win32/deps/library/tcltk/help/AnIndex | 298 --
win32/deps/library/tcltk/help/aliases.rds | Bin 2030 -> 0 bytes
win32/deps/library/tcltk/help/paths.rds | Bin 254 -> 0 bytes
win32/deps/library/tcltk/help/tcltk.rdb | Bin 50332 -> 0 bytes
win32/deps/library/tcltk/help/tcltk.rdx | Bin 491 -> 0 bytes
win32/deps/library/tcltk/html/00Index.html | 664 ---
win32/deps/library/tcltk/html/R.css | 57 -
win32/deps/library/tcltk/libs/i386/tcltk.dll | Bin 25600 -> 0 bytes
.../library/tcltk/po/da/LC_MESSAGES/R-tcltk.mo | Bin 2388 -> 0 bytes
.../deps/library/tcltk/po/da/LC_MESSAGES/tcltk.mo | Bin 1353 -> 0 bytes
.../library/tcltk/po/de/LC_MESSAGES/R-tcltk.mo | Bin 2370 -> 0 bytes
.../deps/library/tcltk/po/de/LC_MESSAGES/tcltk.mo | Bin 1394 -> 0 bytes
.../tcltk/po/en quot/LC_MESSAGES/R-tcltk.mo | Bin 2284 -> 0 bytes
.../library/tcltk/po/en quot/LC_MESSAGES/tcltk.mo | Bin 1288 -> 0 bytes
.../library/tcltk/po/fr/LC_MESSAGES/R-tcltk.mo | Bin 2522 -> 0 bytes
.../deps/library/tcltk/po/fr/LC_MESSAGES/tcltk.mo | Bin 1474 -> 0 bytes
.../library/tcltk/po/it/LC_MESSAGES/R-tcltk.mo | Bin 916 -> 0 bytes
.../library/tcltk/po/ja/LC_MESSAGES/R-tcltk.mo | Bin 2861 -> 0 bytes
.../deps/library/tcltk/po/ja/LC_MESSAGES/tcltk.mo | Bin 1533 -> 0 bytes
.../library/tcltk/po/ko/LC_MESSAGES/R-tcltk.mo | Bin 2769 -> 0 bytes
.../deps/library/tcltk/po/ko/LC_MESSAGES/tcltk.mo | Bin 1516 -> 0 bytes
.../library/tcltk/po/pl/LC_MESSAGES/R-tcltk.mo | Bin 2592 -> 0 bytes
.../deps/library/tcltk/po/pl/LC_MESSAGES/tcltk.mo | Bin 1519 -> 0 bytes
.../library/tcltk/po/pt_BR/LC_MESSAGES/R-tcltk.mo | Bin 2534 -> 0 bytes
.../library/tcltk/po/pt_BR/LC_MESSAGES/tcltk.mo | Bin 1440 -> 0 bytes
.../library/tcltk/po/ru/LC_MESSAGES/R-tcltk.mo | Bin 2468 -> 0 bytes
.../deps/library/tcltk/po/ru/LC_MESSAGES/tcltk.mo | Bin 1442 -> 0 bytes
.../library/tcltk/po/zh_CN/LC_MESSAGES/R-tcltk.mo | Bin 2239 -> 0 bytes
.../library/tcltk/po/zh_CN/LC_MESSAGES/tcltk.mo | Bin 1285 -> 0 bytes
win32/deps/library/tools/DESCRIPTION | 9 -
win32/deps/library/tools/INDEX | 56 -
win32/deps/library/tools/Meta/Rd.rds | Bin 2586 -> 0 bytes
win32/deps/library/tools/Meta/hsearch.rds | Bin 2540 -> 0 bytes
win32/deps/library/tools/Meta/links.rds | Bin 1299 -> 0 bytes
win32/deps/library/tools/Meta/nsInfo.rds | Bin 1375 -> 0 bytes
win32/deps/library/tools/Meta/package.rds | Bin 495 -> 0 bytes
win32/deps/library/tools/NAMESPACE | 132 -
win32/deps/library/tools/R/tools | 9 -
win32/deps/library/tools/R/tools.rdb | Bin 1089871 -> 0 bytes
win32/deps/library/tools/R/tools.rdx | Bin 8703 -> 0 bytes
win32/deps/library/tools/help/AnIndex | 111 -
win32/deps/library/tools/help/aliases.rds | Bin 1054 -> 0 bytes
win32/deps/library/tools/help/paths.rds | Bin 599 -> 0 bytes
win32/deps/library/tools/help/tools.rdb | Bin 168932 -> 0 bytes
win32/deps/library/tools/help/tools.rdx | Bin 1345 -> 0 bytes
win32/deps/library/tools/html/00Index.html | 363 --
win32/deps/library/tools/html/R.css | 57 -
win32/deps/library/tools/libs/i386/tools.dll | Bin 23040 -> 0 bytes
.../library/tools/po/da/LC_MESSAGES/R-tools.mo | Bin 7100 -> 0 bytes
.../deps/library/tools/po/da/LC_MESSAGES/tools.mo | Bin 977 -> 0 bytes
.../library/tools/po/de/LC_MESSAGES/R-tools.mo | Bin 37421 -> 0 bytes
.../deps/library/tools/po/de/LC_MESSAGES/tools.mo | Bin 985 -> 0 bytes
.../tools/po/en quot/LC_MESSAGES/R-tools.mo | Bin 35950 -> 0 bytes
.../library/tools/po/en quot/LC_MESSAGES/tools.mo | Bin 914 -> 0 bytes
.../library/tools/po/fr/LC_MESSAGES/R-tools.mo | Bin 38744 -> 0 bytes
.../deps/library/tools/po/fr/LC_MESSAGES/tools.mo | Bin 1038 -> 0 bytes
.../library/tools/po/it/LC_MESSAGES/R-tools.mo | Bin 5734 -> 0 bytes
.../deps/library/tools/po/it/LC_MESSAGES/tools.mo | Bin 661 -> 0 bytes
.../library/tools/po/ja/LC_MESSAGES/R-tools.mo | Bin 44108 -> 0 bytes
.../deps/library/tools/po/ja/LC_MESSAGES/tools.mo | Bin 1111 -> 0 bytes
.../library/tools/po/ko/LC_MESSAGES/R-tools.mo | Bin 40547 -> 0 bytes
.../deps/library/tools/po/ko/LC_MESSAGES/tools.mo | Bin 1167 -> 0 bytes
.../library/tools/po/pl/LC_MESSAGES/R-tools.mo | Bin 38844 -> 0 bytes
.../deps/library/tools/po/pl/LC_MESSAGES/tools.mo | Bin 1103 -> 0 bytes
.../library/tools/po/pt_BR/LC_MESSAGES/R-tools.mo | Bin 2446 -> 0 bytes
.../library/tools/po/pt_BR/LC_MESSAGES/tools.mo | Bin 809 -> 0 bytes
.../library/tools/po/ru/LC_MESSAGES/R-tools.mo | Bin 36732 -> 0 bytes
.../deps/library/tools/po/ru/LC_MESSAGES/tools.mo | Bin 1086 -> 0 bytes
.../library/tools/po/tr/LC_MESSAGES/R-tools.mo | Bin 522 -> 0 bytes
.../library/tools/po/zh_CN/LC_MESSAGES/R-tools.mo | Bin 33382 -> 0 bytes
.../library/tools/po/zh_CN/LC_MESSAGES/tools.mo | Bin 874 -> 0 bytes
win32/deps/library/tools/tests/undoc.R | 4 -
win32/deps/library/utils/DESCRIPTION | 6 +-
win32/deps/library/utils/INDEX | 7 +-
win32/deps/library/utils/Meta/Rd.rds | Bin 6170 -> 6360 bytes
win32/deps/library/utils/Meta/hsearch.rds | Bin 5992 -> 6173 bytes
win32/deps/library/utils/Meta/links.rds | Bin 3110 -> 3202 bytes
win32/deps/library/utils/Meta/nsInfo.rds | Bin 2141 -> 2271 bytes
win32/deps/library/utils/Meta/package.rds | Bin 470 -> 493 bytes
win32/deps/library/utils/Meta/vignette.rds | Bin 208 -> 208 bytes
win32/deps/library/utils/NAMESPACE | 66 +-
win32/deps/library/utils/R/utils | 26 +-
win32/deps/library/utils/R/utils.rdb | Bin 632254 -> 680290 bytes
win32/deps/library/utils/R/utils.rdx | Bin 6157 -> 6604 bytes
win32/deps/library/utils/doc/Sweave.R | 12 +-
win32/deps/library/utils/doc/Sweave.Rnw | 7 +-
win32/deps/library/utils/doc/Sweave.pdf | Bin 321092 -> 321879 bytes
win32/deps/library/utils/doc/index.html | 4 +-
win32/deps/library/utils/help/AnIndex | 11 +-
win32/deps/library/utils/help/aliases.rds | Bin 2584 -> 2654 bytes
win32/deps/library/utils/help/paths.rds | Bin 1276 -> 1315 bytes
win32/deps/library/utils/help/utils.rdb | Bin 594322 -> 624057 bytes
win32/deps/library/utils/help/utils.rdx | Bin 3183 -> 3281 bytes
win32/deps/library/utils/html/00Index.html | 32 +-
.../library/utils/po/da/LC_MESSAGES/R-utils.mo | Bin 6289 -> 0 bytes
.../library/utils/po/de/LC_MESSAGES/R-utils.mo | Bin 38513 -> 0 bytes
.../utils/po/en quot/LC_MESSAGES/R-utils.mo | Bin 37238 -> 0 bytes
.../library/utils/po/fr/LC_MESSAGES/R-utils.mo | Bin 40117 -> 0 bytes
.../library/utils/po/ja/LC_MESSAGES/R-utils.mo | Bin 45377 -> 0 bytes
.../library/utils/po/ko/LC_MESSAGES/R-utils.mo | Bin 43182 -> 0 bytes
.../library/utils/po/pl/LC_MESSAGES/R-utils.mo | Bin 40363 -> 0 bytes
.../library/utils/po/pt_BR/LC_MESSAGES/R-utils.mo | Bin 1407 -> 0 bytes
.../library/utils/po/ru/LC_MESSAGES/R-utils.mo | Bin 38036 -> 0 bytes
.../library/utils/po/tr/LC_MESSAGES/R-utils.mo | Bin 999 -> 0 bytes
.../library/utils/po/zh_CN/LC_MESSAGES/R-utils.mo | Bin 33846 -> 0 bytes
win32/deps/library/utils/tests/Sweave-tst.R | 6 +-
win32/deps/library/utils/tests/completion.R | 8 +
1818 files changed, 13259 insertions(+), 118120 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index 04806b9..7701a65 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -3,7 +3,7 @@ EXTRA_DIST = build/m4
ACLOCAL_AMFLAGS = -I build/m4 -I build/m4/shave -I build/m4/shamrock
SUBDIRS = chronopic-firmware \
- encoder libcesarplayer CesarPlayer rdotnet src po manual chronojump_server
+ rdotnet encoder libcesarplayer CesarPlayer src po manual chronojump_server
if OSTYPE_LINUX
SUBDIRS += chronopic-tests chronojump_server
diff --git a/libcesarplayer/baconvideowidget-marshal.c b/libcesarplayer/baconvideowidget-marshal.c
index 6b34127..e914ccd 100644
--- a/libcesarplayer/baconvideowidget-marshal.c
+++ b/libcesarplayer/baconvideowidget-marshal.c
@@ -1,247 +1,247 @@
-
-#ifndef __baconvideowidget_marshal_MARSHAL_H__
-#define __baconvideowidget_marshal_MARSHAL_H__
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-#ifdef G_ENABLE_DEBUG
-#define g_marshal_value_peek_boolean(v) g_value_get_boolean (v)
-#define g_marshal_value_peek_char(v) g_value_get_schar (v)
-#define g_marshal_value_peek_uchar(v) g_value_get_uchar (v)
-#define g_marshal_value_peek_int(v) g_value_get_int (v)
-#define g_marshal_value_peek_uint(v) g_value_get_uint (v)
-#define g_marshal_value_peek_long(v) g_value_get_long (v)
-#define g_marshal_value_peek_ulong(v) g_value_get_ulong (v)
-#define g_marshal_value_peek_int64(v) g_value_get_int64 (v)
-#define g_marshal_value_peek_uint64(v) g_value_get_uint64 (v)
-#define g_marshal_value_peek_enum(v) g_value_get_enum (v)
-#define g_marshal_value_peek_flags(v) g_value_get_flags (v)
-#define g_marshal_value_peek_float(v) g_value_get_float (v)
-#define g_marshal_value_peek_double(v) g_value_get_double (v)
-#define g_marshal_value_peek_string(v) (char*) g_value_get_string (v)
-#define g_marshal_value_peek_param(v) g_value_get_param (v)
-#define g_marshal_value_peek_boxed(v) g_value_get_boxed (v)
-#define g_marshal_value_peek_pointer(v) g_value_get_pointer (v)
-#define g_marshal_value_peek_object(v) g_value_get_object (v)
-#define g_marshal_value_peek_variant(v) g_value_get_variant (v)
-#else /* !G_ENABLE_DEBUG */
-/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
- * Do not access GValues directly in your code. Instead, use the
- * g_value_get_*() functions
- */
-#define g_marshal_value_peek_boolean(v) (v)->data[0].v_int
-#define g_marshal_value_peek_char(v) (v)->data[0].v_int
-#define g_marshal_value_peek_uchar(v) (v)->data[0].v_uint
-#define g_marshal_value_peek_int(v) (v)->data[0].v_int
-#define g_marshal_value_peek_uint(v) (v)->data[0].v_uint
-#define g_marshal_value_peek_long(v) (v)->data[0].v_long
-#define g_marshal_value_peek_ulong(v) (v)->data[0].v_ulong
-#define g_marshal_value_peek_int64(v) (v)->data[0].v_int64
-#define g_marshal_value_peek_uint64(v) (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v) (v)->data[0].v_long
-#define g_marshal_value_peek_flags(v) (v)->data[0].v_ulong
-#define g_marshal_value_peek_float(v) (v)->data[0].v_float
-#define g_marshal_value_peek_double(v) (v)->data[0].v_double
-#define g_marshal_value_peek_string(v) (v)->data[0].v_pointer
-#define g_marshal_value_peek_param(v) (v)->data[0].v_pointer
-#define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer
-#define g_marshal_value_peek_pointer(v) (v)->data[0].v_pointer
-#define g_marshal_value_peek_object(v) (v)->data[0].v_pointer
-#define g_marshal_value_peek_variant(v) (v)->data[0].v_pointer
-#endif /* !G_ENABLE_DEBUG */
-
-
-/* VOID:INT64,INT64,DOUBLE,BOOLEAN (./baconvideowidget-marshal.list:1) */
-extern void baconvideowidget_marshal_VOID__INT64_INT64_DOUBLE_BOOLEAN (GClosure *closure,
- GValue *return_value,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint,
- gpointer marshal_data);
-void
-baconvideowidget_marshal_VOID__INT64_INT64_DOUBLE_BOOLEAN (GClosure *closure,
- GValue *return_value G_GNUC_UNUSED,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint G_GNUC_UNUSED,
- gpointer marshal_data)
-{
- typedef void (*GMarshalFunc_VOID__INT64_INT64_DOUBLE_BOOLEAN) (gpointer data1,
- gint64 arg_1,
- gint64 arg_2,
- gdouble arg_3,
- gboolean arg_4,
- gpointer data2);
- register GMarshalFunc_VOID__INT64_INT64_DOUBLE_BOOLEAN callback;
- register GCClosure *cc = (GCClosure*) closure;
- register gpointer data1, data2;
-
- g_return_if_fail (n_param_values == 5);
-
- if (G_CCLOSURE_SWAP_DATA (closure))
- {
- data1 = closure->data;
- data2 = g_value_peek_pointer (param_values + 0);
- }
- else
- {
- data1 = g_value_peek_pointer (param_values + 0);
- data2 = closure->data;
- }
- callback = (GMarshalFunc_VOID__INT64_INT64_DOUBLE_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
-
- callback (data1,
- g_marshal_value_peek_int64 (param_values + 1),
- g_marshal_value_peek_int64 (param_values + 2),
- g_marshal_value_peek_double (param_values + 3),
- g_marshal_value_peek_boolean (param_values + 4),
- data2);
-}
-
-/* VOID:STRING,BOOLEAN,BOOLEAN (./baconvideowidget-marshal.list:2) */
-extern void baconvideowidget_marshal_VOID__STRING_BOOLEAN_BOOLEAN (GClosure *closure,
- GValue *return_value,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint,
- gpointer marshal_data);
-void
-baconvideowidget_marshal_VOID__STRING_BOOLEAN_BOOLEAN (GClosure *closure,
- GValue *return_value G_GNUC_UNUSED,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint G_GNUC_UNUSED,
- gpointer marshal_data)
-{
- typedef void (*GMarshalFunc_VOID__STRING_BOOLEAN_BOOLEAN) (gpointer data1,
- gpointer arg_1,
- gboolean arg_2,
- gboolean arg_3,
- gpointer data2);
- register GMarshalFunc_VOID__STRING_BOOLEAN_BOOLEAN callback;
- register GCClosure *cc = (GCClosure*) closure;
- register gpointer data1, data2;
-
- g_return_if_fail (n_param_values == 4);
-
- if (G_CCLOSURE_SWAP_DATA (closure))
- {
- data1 = closure->data;
- data2 = g_value_peek_pointer (param_values + 0);
- }
- else
- {
- data1 = g_value_peek_pointer (param_values + 0);
- data2 = closure->data;
- }
- callback = (GMarshalFunc_VOID__STRING_BOOLEAN_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
-
- callback (data1,
- g_marshal_value_peek_string (param_values + 1),
- g_marshal_value_peek_boolean (param_values + 2),
- g_marshal_value_peek_boolean (param_values + 3),
- data2);
-}
-
-/* BOOLEAN:BOXED,BOXED,BOOLEAN (./baconvideowidget-marshal.list:3) */
-extern void baconvideowidget_marshal_BOOLEAN__BOXED_BOXED_BOOLEAN (GClosure *closure,
- GValue *return_value,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint,
- gpointer marshal_data);
-void
-baconvideowidget_marshal_BOOLEAN__BOXED_BOXED_BOOLEAN (GClosure *closure,
- GValue *return_value G_GNUC_UNUSED,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint G_GNUC_UNUSED,
- gpointer marshal_data)
-{
- typedef gboolean (*GMarshalFunc_BOOLEAN__BOXED_BOXED_BOOLEAN) (gpointer data1,
- gpointer arg_1,
- gpointer arg_2,
- gboolean arg_3,
- gpointer data2);
- register GMarshalFunc_BOOLEAN__BOXED_BOXED_BOOLEAN callback;
- register GCClosure *cc = (GCClosure*) closure;
- register gpointer data1, data2;
- gboolean v_return;
-
- g_return_if_fail (return_value != NULL);
- g_return_if_fail (n_param_values == 4);
-
- if (G_CCLOSURE_SWAP_DATA (closure))
- {
- data1 = closure->data;
- data2 = g_value_peek_pointer (param_values + 0);
- }
- else
- {
- data1 = g_value_peek_pointer (param_values + 0);
- data2 = closure->data;
- }
- callback = (GMarshalFunc_BOOLEAN__BOXED_BOXED_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
-
- v_return = callback (data1,
- g_marshal_value_peek_boxed (param_values + 1),
- g_marshal_value_peek_boxed (param_values + 2),
- g_marshal_value_peek_boolean (param_values + 3),
- data2);
-
- g_value_set_boolean (return_value, v_return);
-}
-
-/* VOID:INT64,INT64,FLOAT,BOOLEAN (./baconvideowidget-marshal.list:4) */
-extern void baconvideowidget_marshal_VOID__INT64_INT64_FLOAT_BOOLEAN (GClosure *closure,
- GValue *return_value,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint,
- gpointer marshal_data);
-void
-baconvideowidget_marshal_VOID__INT64_INT64_FLOAT_BOOLEAN (GClosure *closure,
- GValue *return_value G_GNUC_UNUSED,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint G_GNUC_UNUSED,
- gpointer marshal_data)
-{
- typedef void (*GMarshalFunc_VOID__INT64_INT64_FLOAT_BOOLEAN) (gpointer data1,
- gint64 arg_1,
- gint64 arg_2,
- gfloat arg_3,
- gboolean arg_4,
- gpointer data2);
- register GMarshalFunc_VOID__INT64_INT64_FLOAT_BOOLEAN callback;
- register GCClosure *cc = (GCClosure*) closure;
- register gpointer data1, data2;
-
- g_return_if_fail (n_param_values == 5);
-
- if (G_CCLOSURE_SWAP_DATA (closure))
- {
- data1 = closure->data;
- data2 = g_value_peek_pointer (param_values + 0);
- }
- else
- {
- data1 = g_value_peek_pointer (param_values + 0);
- data2 = closure->data;
- }
- callback = (GMarshalFunc_VOID__INT64_INT64_FLOAT_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
-
- callback (data1,
- g_marshal_value_peek_int64 (param_values + 1),
- g_marshal_value_peek_int64 (param_values + 2),
- g_marshal_value_peek_float (param_values + 3),
- g_marshal_value_peek_boolean (param_values + 4),
- data2);
-}
-
-G_END_DECLS
-
-#endif /* __baconvideowidget_marshal_MARSHAL_H__ */
-
+
+#ifndef __baconvideowidget_marshal_MARSHAL_H__
+#define __baconvideowidget_marshal_MARSHAL_H__
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#ifdef G_ENABLE_DEBUG
+#define g_marshal_value_peek_boolean(v) g_value_get_boolean (v)
+#define g_marshal_value_peek_char(v) g_value_get_schar (v)
+#define g_marshal_value_peek_uchar(v) g_value_get_uchar (v)
+#define g_marshal_value_peek_int(v) g_value_get_int (v)
+#define g_marshal_value_peek_uint(v) g_value_get_uint (v)
+#define g_marshal_value_peek_long(v) g_value_get_long (v)
+#define g_marshal_value_peek_ulong(v) g_value_get_ulong (v)
+#define g_marshal_value_peek_int64(v) g_value_get_int64 (v)
+#define g_marshal_value_peek_uint64(v) g_value_get_uint64 (v)
+#define g_marshal_value_peek_enum(v) g_value_get_enum (v)
+#define g_marshal_value_peek_flags(v) g_value_get_flags (v)
+#define g_marshal_value_peek_float(v) g_value_get_float (v)
+#define g_marshal_value_peek_double(v) g_value_get_double (v)
+#define g_marshal_value_peek_string(v) (char*) g_value_get_string (v)
+#define g_marshal_value_peek_param(v) g_value_get_param (v)
+#define g_marshal_value_peek_boxed(v) g_value_get_boxed (v)
+#define g_marshal_value_peek_pointer(v) g_value_get_pointer (v)
+#define g_marshal_value_peek_object(v) g_value_get_object (v)
+#define g_marshal_value_peek_variant(v) g_value_get_variant (v)
+#else /* !G_ENABLE_DEBUG */
+/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
+ * Do not access GValues directly in your code. Instead, use the
+ * g_value_get_*() functions
+ */
+#define g_marshal_value_peek_boolean(v) (v)->data[0].v_int
+#define g_marshal_value_peek_char(v) (v)->data[0].v_int
+#define g_marshal_value_peek_uchar(v) (v)->data[0].v_uint
+#define g_marshal_value_peek_int(v) (v)->data[0].v_int
+#define g_marshal_value_peek_uint(v) (v)->data[0].v_uint
+#define g_marshal_value_peek_long(v) (v)->data[0].v_long
+#define g_marshal_value_peek_ulong(v) (v)->data[0].v_ulong
+#define g_marshal_value_peek_int64(v) (v)->data[0].v_int64
+#define g_marshal_value_peek_uint64(v) (v)->data[0].v_uint64
+#define g_marshal_value_peek_enum(v) (v)->data[0].v_long
+#define g_marshal_value_peek_flags(v) (v)->data[0].v_ulong
+#define g_marshal_value_peek_float(v) (v)->data[0].v_float
+#define g_marshal_value_peek_double(v) (v)->data[0].v_double
+#define g_marshal_value_peek_string(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_param(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_boxed(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_pointer(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_object(v) (v)->data[0].v_pointer
+#define g_marshal_value_peek_variant(v) (v)->data[0].v_pointer
+#endif /* !G_ENABLE_DEBUG */
+
+
+/* VOID:INT64,INT64,DOUBLE,BOOLEAN (./baconvideowidget-marshal.list:1) */
+extern void baconvideowidget_marshal_VOID__INT64_INT64_DOUBLE_BOOLEAN (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+void
+baconvideowidget_marshal_VOID__INT64_INT64_DOUBLE_BOOLEAN (GClosure *closure,
+ GValue *return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint G_GNUC_UNUSED,
+ gpointer marshal_data)
+{
+ typedef void (*GMarshalFunc_VOID__INT64_INT64_DOUBLE_BOOLEAN) (gpointer data1,
+ gint64 arg_1,
+ gint64 arg_2,
+ gdouble arg_3,
+ gboolean arg_4,
+ gpointer data2);
+ register GMarshalFunc_VOID__INT64_INT64_DOUBLE_BOOLEAN callback;
+ register GCClosure *cc = (GCClosure*) closure;
+ register gpointer data1, data2;
+
+ g_return_if_fail (n_param_values == 5);
+
+ if (G_CCLOSURE_SWAP_DATA (closure))
+ {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ }
+ else
+ {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback = (GMarshalFunc_VOID__INT64_INT64_DOUBLE_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
+
+ callback (data1,
+ g_marshal_value_peek_int64 (param_values + 1),
+ g_marshal_value_peek_int64 (param_values + 2),
+ g_marshal_value_peek_double (param_values + 3),
+ g_marshal_value_peek_boolean (param_values + 4),
+ data2);
+}
+
+/* VOID:STRING,BOOLEAN,BOOLEAN (./baconvideowidget-marshal.list:2) */
+extern void baconvideowidget_marshal_VOID__STRING_BOOLEAN_BOOLEAN (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+void
+baconvideowidget_marshal_VOID__STRING_BOOLEAN_BOOLEAN (GClosure *closure,
+ GValue *return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint G_GNUC_UNUSED,
+ gpointer marshal_data)
+{
+ typedef void (*GMarshalFunc_VOID__STRING_BOOLEAN_BOOLEAN) (gpointer data1,
+ gpointer arg_1,
+ gboolean arg_2,
+ gboolean arg_3,
+ gpointer data2);
+ register GMarshalFunc_VOID__STRING_BOOLEAN_BOOLEAN callback;
+ register GCClosure *cc = (GCClosure*) closure;
+ register gpointer data1, data2;
+
+ g_return_if_fail (n_param_values == 4);
+
+ if (G_CCLOSURE_SWAP_DATA (closure))
+ {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ }
+ else
+ {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback = (GMarshalFunc_VOID__STRING_BOOLEAN_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
+
+ callback (data1,
+ g_marshal_value_peek_string (param_values + 1),
+ g_marshal_value_peek_boolean (param_values + 2),
+ g_marshal_value_peek_boolean (param_values + 3),
+ data2);
+}
+
+/* BOOLEAN:BOXED,BOXED,BOOLEAN (./baconvideowidget-marshal.list:3) */
+extern void baconvideowidget_marshal_BOOLEAN__BOXED_BOXED_BOOLEAN (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+void
+baconvideowidget_marshal_BOOLEAN__BOXED_BOXED_BOOLEAN (GClosure *closure,
+ GValue *return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint G_GNUC_UNUSED,
+ gpointer marshal_data)
+{
+ typedef gboolean (*GMarshalFunc_BOOLEAN__BOXED_BOXED_BOOLEAN) (gpointer data1,
+ gpointer arg_1,
+ gpointer arg_2,
+ gboolean arg_3,
+ gpointer data2);
+ register GMarshalFunc_BOOLEAN__BOXED_BOXED_BOOLEAN callback;
+ register GCClosure *cc = (GCClosure*) closure;
+ register gpointer data1, data2;
+ gboolean v_return;
+
+ g_return_if_fail (return_value != NULL);
+ g_return_if_fail (n_param_values == 4);
+
+ if (G_CCLOSURE_SWAP_DATA (closure))
+ {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ }
+ else
+ {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback = (GMarshalFunc_BOOLEAN__BOXED_BOXED_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
+
+ v_return = callback (data1,
+ g_marshal_value_peek_boxed (param_values + 1),
+ g_marshal_value_peek_boxed (param_values + 2),
+ g_marshal_value_peek_boolean (param_values + 3),
+ data2);
+
+ g_value_set_boolean (return_value, v_return);
+}
+
+/* VOID:INT64,INT64,FLOAT,BOOLEAN (./baconvideowidget-marshal.list:4) */
+extern void baconvideowidget_marshal_VOID__INT64_INT64_FLOAT_BOOLEAN (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+void
+baconvideowidget_marshal_VOID__INT64_INT64_FLOAT_BOOLEAN (GClosure *closure,
+ GValue *return_value G_GNUC_UNUSED,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint G_GNUC_UNUSED,
+ gpointer marshal_data)
+{
+ typedef void (*GMarshalFunc_VOID__INT64_INT64_FLOAT_BOOLEAN) (gpointer data1,
+ gint64 arg_1,
+ gint64 arg_2,
+ gfloat arg_3,
+ gboolean arg_4,
+ gpointer data2);
+ register GMarshalFunc_VOID__INT64_INT64_FLOAT_BOOLEAN callback;
+ register GCClosure *cc = (GCClosure*) closure;
+ register gpointer data1, data2;
+
+ g_return_if_fail (n_param_values == 5);
+
+ if (G_CCLOSURE_SWAP_DATA (closure))
+ {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ }
+ else
+ {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback = (GMarshalFunc_VOID__INT64_INT64_FLOAT_BOOLEAN) (marshal_data ? marshal_data : cc->callback);
+
+ callback (data1,
+ g_marshal_value_peek_int64 (param_values + 1),
+ g_marshal_value_peek_int64 (param_values + 2),
+ g_marshal_value_peek_float (param_values + 3),
+ g_marshal_value_peek_boolean (param_values + 4),
+ data2);
+}
+
+G_END_DECLS
+
+#endif /* __baconvideowidget_marshal_MARSHAL_H__ */
+
diff --git a/libcesarplayer/baconvideowidget-marshal.h b/libcesarplayer/baconvideowidget-marshal.h
index 035d853..7cba5d9 100644
--- a/libcesarplayer/baconvideowidget-marshal.h
+++ b/libcesarplayer/baconvideowidget-marshal.h
@@ -1,44 +1,44 @@
-
-#ifndef __baconvideowidget_marshal_MARSHAL_H__
-#define __baconvideowidget_marshal_MARSHAL_H__
-
-#include <glib-object.h>
-
-G_BEGIN_DECLS
-
-/* VOID:INT64,INT64,DOUBLE,BOOLEAN (./baconvideowidget-marshal.list:1) */
-extern void baconvideowidget_marshal_VOID__INT64_INT64_DOUBLE_BOOLEAN (GClosure *closure,
- GValue *return_value,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint,
- gpointer marshal_data);
-
-/* VOID:STRING,BOOLEAN,BOOLEAN (./baconvideowidget-marshal.list:2) */
-extern void baconvideowidget_marshal_VOID__STRING_BOOLEAN_BOOLEAN (GClosure *closure,
- GValue *return_value,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint,
- gpointer marshal_data);
-
-/* BOOLEAN:BOXED,BOXED,BOOLEAN (./baconvideowidget-marshal.list:3) */
-extern void baconvideowidget_marshal_BOOLEAN__BOXED_BOXED_BOOLEAN (GClosure *closure,
- GValue *return_value,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint,
- gpointer marshal_data);
-
-/* VOID:INT64,INT64,FLOAT,BOOLEAN (./baconvideowidget-marshal.list:4) */
-extern void baconvideowidget_marshal_VOID__INT64_INT64_FLOAT_BOOLEAN (GClosure *closure,
- GValue *return_value,
- guint n_param_values,
- const GValue *param_values,
- gpointer invocation_hint,
- gpointer marshal_data);
-
-G_END_DECLS
-
-#endif /* __baconvideowidget_marshal_MARSHAL_H__ */
-
+
+#ifndef __baconvideowidget_marshal_MARSHAL_H__
+#define __baconvideowidget_marshal_MARSHAL_H__
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+/* VOID:INT64,INT64,DOUBLE,BOOLEAN (./baconvideowidget-marshal.list:1) */
+extern void baconvideowidget_marshal_VOID__INT64_INT64_DOUBLE_BOOLEAN (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* VOID:STRING,BOOLEAN,BOOLEAN (./baconvideowidget-marshal.list:2) */
+extern void baconvideowidget_marshal_VOID__STRING_BOOLEAN_BOOLEAN (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* BOOLEAN:BOXED,BOXED,BOOLEAN (./baconvideowidget-marshal.list:3) */
+extern void baconvideowidget_marshal_BOOLEAN__BOXED_BOXED_BOOLEAN (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+/* VOID:INT64,INT64,FLOAT,BOOLEAN (./baconvideowidget-marshal.list:4) */
+extern void baconvideowidget_marshal_VOID__INT64_INT64_FLOAT_BOOLEAN (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data);
+
+G_END_DECLS
+
+#endif /* __baconvideowidget_marshal_MARSHAL_H__ */
+
diff --git a/rdotnet/Makefile b/rdotnet/Makefile
new file mode 100644
index 0000000..16c904e
--- /dev/null
+++ b/rdotnet/Makefile
@@ -0,0 +1,620 @@
+# Makefile.in generated by automake 1.12.4 from Makefile.am.
+# rdotnet/Makefile. Generated from Makefile.in by configure.
+
+# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
+pkgdatadir = $(datadir)/chronojump
+pkgincludedir = $(includedir)/chronojump
+pkglibdir = $(libdir)/chronojump
+pkglibexecdir = $(libexecdir)/chronojump
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = i686-pc-mingw32
+host_triplet = i686-pc-mingw32
+subdir = rdotnet
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/build/m4/shamrock/expansions.m4 \
+ $(top_srcdir)/build/m4/shamrock/mono.m4 \
+ $(top_srcdir)/build/m4/shamrock/programs.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+ACLOCAL = aclocal -Ic:/gstreamer-sdk/0.10/x86/share/aclocal
-IC:/MinGW/msys/1.0/home/chronojump/cerbero/build-tools/share/aclocal
+ACLOCAL_AMFLAGS = -I build/m4/shamrock -I build/m4/shave ${ACLOCAL_FLAGS}
+ALL_LINGUAS =
+AMTAR = $${TAR-tar}
+AR = i686-w64-mingw32-ar
+AUTOCONF = ${SHELL} /usr/home/chronojump/chronojump/missing --run autoconf
+AUTOHEADER = ${SHELL} /usr/home/chronojump/chronojump/missing --run autoheader
+AUTOMAKE = ${SHELL} /usr/home/chronojump/chronojump/missing --run automake-1.12
+AWK = gawk
+CATALOGS =
+CATOBJEXT = .gmo
+CC = i686-w64-mingw32-gcc
+CCDEPMODE = depmode=gcc3
+CESARPLAYER_CFLAGS = -mms-bitfields -Ic:/gstreamer-sdk/0.10/x86/include/gtk-2.0
-Ic:/gstreamer-sdk/0.10/x86/lib/gtk-2.0/include -Ic:/gstreamer-sdk/0.10/x86/include/atk-1.0
-Ic:/gstreamer-sdk/0.10/x86/include/cairo -Ic:/gstreamer-sdk/0.10/x86/include/gdk-pixbuf-2.0
-Ic:/gstreamer-sdk/0.10/x86/include/pango-1.0 -Ic:/gstreamer-sdk/0.10/x86/include/glib-2.0
-Ic:/gstreamer-sdk/0.10/x86/lib/glib-2.0/include -Ic:/gstreamer-sdk/0.10/x86/include/pixman-1
-Ic:/gstreamer-sdk/0.10/x86/include/fontconfig -Ic:/gstreamer-sdk/0.10/x86/include/freetype2
-Ic:/gstreamer-sdk/0.10/x86/include/libpng15 -Ic:/gstreamer-sdk/0.10/x86/include/gstreamer-0.10
-Ic:/gstreamer-sdk/0.10/x86/include/libxml2
+CESARPLAYER_LIBS = -Lc:/gstreamer-sdk/0.10/x86/lib -lgtk-win32-2.0 -latk-1.0 -lgdk-win32-2.0
-lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lcairo -lgio-2.0 -lgstaudio-0.10
-lgstvideo-0.10 -lgstpbutils-0.10 -lgstinterfaces-0.10 -lgstapp-0.10 -lgstbase-0.10 -lgsttag-0.10
-lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lxml2 -lglib-2.0 -lintl
+CFLAGS = -Wall -g -O2 -DWINVER=0x0501
+CPP = i686-w64-mingw32-cpp
+CPPFLAGS =
+CYGPATH_W = echo
+DATADIRNAME = share
+DEFS = -DPACKAGE_NAME=\"chronojump\" -DPACKAGE_TARNAME=\"chronojump\" -DPACKAGE_VERSION=\"1.3.9\"
-DPACKAGE_STRING=\"chronojump\ 1.3.9\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"chronojump\"
-DVERSION=\"1.3.9\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1
-DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1
-DHAVE_UNISTD_H=1 -DLT_OBJDIR=\".libs/\" -DGETTEXT_PACKAGE=\"chronojump\" -DHAVE_LOCALE_H=1
-DHAVE_BIND_TEXTDOMAIN_CODESET=1 -DHAVE_GETTEXT=1 -DHAVE_DCGETTEXT=1 -DENABLE_NLS=1 -DOSTYPE_WINDOWS=1
+DEPDIR = .deps
+DLLTOOL = i686-w64-mingw32-dlltool
+DSYMUTIL =
+DUMPBIN =
+ECHO_C =
+ECHO_N = -n
+ECHO_T =
+EGREP = /bin/grep -E
+EXEEXT = .exe
+FGREP = /bin/grep -F
+GETTEXT_PACKAGE = chronojump
+GLADE_SHARP_20_CFLAGS = -I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/pango-api.xml
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/atk-api.xml
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/gdk-api.xml
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/gtk-api.xml
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/glib-api.xml
+GLADE_SHARP_20_LIBS = -r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/glade-sharp.dll
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/pango-sharp.dll
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/atk-sharp.dll
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/gdk-sharp.dll
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/gtk-sharp.dll
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/glib-sharp.dll
+GLIB_SHARP_20_CFLAGS = -I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/glib-api.xml
+GLIB_SHARP_20_LIBS = -r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/glib-sharp.dll
+GMOFILES =
+GMSGFMT = /usr/home/chronojump/cerbero/build-tools/bin/msgfmt
+GREP = /bin/grep
+GTK_SHARP_20_CFLAGS = -I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/pango-api.xml
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/atk-api.xml
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/gdk-api.xml
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/gtk-api.xml
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/glib-api.xml
+GTK_SHARP_20_LIBS = -r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/pango-sharp.dll
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/atk-sharp.dll
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/gdk-sharp.dll
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/gtk-sharp.dll
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/glib-sharp.dll
+INSTALL = /bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+INSTOBJEXT = .mo
+INTLLIBS = -lintl
+INTLTOOL_EXTRACT = /usr/home/chronojump/cerbero/build-tools/bin/intltool-extract
+INTLTOOL_MERGE = /usr/home/chronojump/cerbero/build-tools/bin/intltool-merge
+INTLTOOL_PERL = /bin/perl
+INTLTOOL_UPDATE = /usr/home/chronojump/cerbero/build-tools/bin/intltool-update
+LD = i686-w64-mingw32-ld
+LDFLAGS = -Lc:/gstreamer-sdk/0.10/x86/lib
+LIBOBJS =
+LIBS =
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIPO =
+LN_S = cp -p
+LTLIBOBJS =
+MAKEINFO = ${SHELL} /usr/home/chronojump/chronojump/missing --run makeinfo
+MANIFEST_TOOL = :
+MCS = /c/gstreamer-sdk/0.10/x86/bin/dmcs
+MKDIR_P = /bin/mkdir -p
+MKINSTALLDIRS = ./mkinstalldirs
+MONO = /c/gstreamer-sdk/0.10/x86/bin/mono
+MONO_MODULE_CFLAGS =
+MONO_MODULE_LIBS =
+MSGFMT = msgfmt
+MSGFMT_OPTS = -c
+MSGMERGE = /usr/home/chronojump/cerbero/build-tools/bin/msgmerge
+NM = i686-w64-mingw32-nm
+NMEDIT =
+OBJDUMP = objdump
+OBJEXT = o
+OTOOL =
+OTOOL64 =
+PACKAGE = chronojump
+PACKAGE_BUGREPORT =
+PACKAGE_NAME = chronojump
+PACKAGE_STRING = chronojump 1.3.9
+PACKAGE_TARNAME = chronojump
+PACKAGE_URL =
+PACKAGE_VERSION = 1.3.9
+PATH_SEPARATOR = :
+PKG_CONFIG = /usr/home/chronojump/cerbero/build-tools/bin/pkg-config
+PKG_CONFIG_LIBDIR = c:/gstreamer-sdk/0.10/x86/lib/pkgconfig
+PKG_CONFIG_PATH = c:/gstreamer-sdk/0.10/x86/share/pkgconfig
+POFILES =
+POSUB = po
+PO_IN_DATADIR_FALSE =
+PO_IN_DATADIR_TRUE =
+PYTHON = /c/Python27/python
+PYTHON_EXEC_PREFIX = ${exec_prefix}
+PYTHON_PLATFORM = win32
+PYTHON_PREFIX = ${prefix}
+PYTHON_VERSION = 2.7
+RANLIB = i686-w64-mingw32-ranlib
+SED = /bin/sed
+SET_MAKE =
+SHELL = /bin/sh
+STRIP = i686-w64-mingw32-strip
+USE_NLS = yes
+VERSION = 1.3.9
+XGETTEXT = /usr/home/chronojump/cerbero/build-tools/bin/xgettext
+abs_builddir = /usr/home/chronojump/chronojump/rdotnet
+abs_srcdir = /usr/home/chronojump/chronojump/rdotnet
+abs_top_builddir = /usr/home/chronojump/chronojump
+abs_top_srcdir = /usr/home/chronojump/chronojump
+ac_ct_AR =
+ac_ct_CC = i686-w64-mingw32-gcc
+ac_ct_DUMPBIN =
+am__include = include
+am__leading_dot = .
+am__quote =
+am__tar = $${TAR-tar} chof - "$$tardir"
+am__untar = $${TAR-tar} xf -
+bindir = ${exec_prefix}/bin
+build = i686-pc-mingw32
+build_alias =
+build_cpu = i686
+build_os = mingw32
+build_vendor = pc
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = /c/gstreamer-sdk/0.10/x86
+expanded_bindir = /c/gstreamer-sdk/0.10/x86/bin
+expanded_datadir = /c/gstreamer-sdk/0.10/x86/share
+expanded_libdir = /c/gstreamer-sdk/0.10/x86/lib
+host = i686-pc-mingw32
+host_alias =
+host_cpu = i686
+host_os = mingw32
+host_vendor = pc
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /usr/home/chronojump/chronojump/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = $(MKDIR_P)
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+pkgpyexecdir = ${pyexecdir}/chronojump
+pkgpythondir = ${pythondir}/chronojump
+prefix = /c/gstreamer-sdk/0.10/x86
+program_transform_name = s,x,x,
+psdir = ${docdir}
+pyexecdir = ${exec_prefix}\Lib\site-packages
+pythondir = ${prefix}\Lib\site-packages
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target_alias =
+top_build_prefix = ../
+top_builddir = ..
+top_srcdir = ..
+SUBDIRS = RDotNet.NativeLibrary R.NET
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign rdotnet/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign rdotnet/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+# (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+cscopelist-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir"
distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) \
+ cscopelist-recursive ctags-recursive install-am install-strip \
+ tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am check check-am clean clean-generic clean-libtool \
+ cscopelist cscopelist-recursive ctags ctags-recursive \
+ distclean distclean-generic distclean-libtool distclean-tags \
+ distdir dvi dvi-am html html-am info info-am install \
+ install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am tags tags-recursive uninstall uninstall-am
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/rdotnet/Makefile.in b/rdotnet/Makefile.in
new file mode 100644
index 0000000..1bb9c55
--- /dev/null
+++ b/rdotnet/Makefile.in
@@ -0,0 +1,620 @@
+# Makefile.in generated by automake 1.12.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ SET_MAKE@
+VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = rdotnet
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/build/m4/shamrock/expansions.m4 \
+ $(top_srcdir)/build/m4/shamrock/mono.m4 \
+ $(top_srcdir)/build/m4/shamrock/programs.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+DIST_SOURCES =
+RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
+ html-recursive info-recursive install-data-recursive \
+ install-dvi-recursive install-exec-recursive \
+ install-html-recursive install-info-recursive \
+ install-pdf-recursive install-ps-recursive install-recursive \
+ installcheck-recursive installdirs-recursive pdf-recursive \
+ ps-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+ $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+ distdir
+ETAGS = etags
+CTAGS = ctags
+DIST_SUBDIRS = $(SUBDIRS)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CESARPLAYER_CFLAGS = @CESARPLAYER_CFLAGS@
+CESARPLAYER_LIBS = @CESARPLAYER_LIBS@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLADE_SHARP_20_CFLAGS = @GLADE_SHARP_20_CFLAGS@
+GLADE_SHARP_20_LIBS = @GLADE_SHARP_20_LIBS@
+GLIB_SHARP_20_CFLAGS = @GLIB_SHARP_20_CFLAGS@
+GLIB_SHARP_20_LIBS = @GLIB_SHARP_20_LIBS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+GTK_SHARP_20_CFLAGS = @GTK_SHARP_20_CFLAGS@
+GTK_SHARP_20_LIBS = @GTK_SHARP_20_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MCS = @MCS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MONO = @MONO@
+MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@
+MONO_MODULE_LIBS = @MONO_MODULE_LIBS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+expanded_bindir = @expanded_bindir@
+expanded_datadir = @expanded_datadir@
+expanded_libdir = @expanded_libdir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+SUBDIRS = RDotNet.NativeLibrary R.NET
+all: all-recursive
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign rdotnet/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign rdotnet/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+# (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(RECURSIVE_TARGETS) $(RECURSIVE_CLEAN_TARGETS):
+ @fail= failcom='exit 1'; \
+ for f in x $$MAKEFLAGS; do \
+ case $$f in \
+ *=* | --[!k]*);; \
+ *k*) failcom='fail=yes';; \
+ esac; \
+ done; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+tags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+ done
+ctags-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+ done
+cscopelist-recursive:
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) cscopelist); \
+ done
+
+ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ mkid -fID $$unique
+tags: TAGS
+
+TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: CTAGS
+CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+
+cscopelist: cscopelist-recursive $(HEADERS) $(SOURCES) $(LISP)
+ list='$(SOURCES) $(HEADERS) $(LISP)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir"
distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-recursive
+all-am: Makefile
+installdirs: installdirs-recursive
+installdirs-am:
+install: install-recursive
+install-exec: install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-recursive
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) \
+ cscopelist-recursive ctags-recursive install-am install-strip \
+ tags-recursive
+
+.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
+ all all-am check check-am clean clean-generic clean-libtool \
+ cscopelist cscopelist-recursive ctags ctags-recursive \
+ distclean distclean-generic distclean-libtool distclean-tags \
+ distdir dvi dvi-am html html-am info info-am install \
+ install-am install-data install-data-am install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ installdirs-am maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am tags tags-recursive uninstall uninstall-am
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/rdotnet/R.NET/BuiltinFunction.cs b/rdotnet/R.NET/BuiltinFunction.cs
index edcca4b..ee136ce 100644
--- a/rdotnet/R.NET/BuiltinFunction.cs
+++ b/rdotnet/R.NET/BuiltinFunction.cs
@@ -1,34 +1,34 @@
-using System;
+using RDotNet.Internals;
+using System;
using System.Linq;
-using RDotNet.Internals;
namespace RDotNet
{
- /// <summary>
- /// A built-in function.
- /// </summary>
- public class BuiltinFunction : Function
- {
- /// <summary>
- /// Creates a built-in function proxy.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="pointer">The pointer.</param>
- protected internal BuiltinFunction(REngine engine, IntPtr pointer)
- : base(engine, pointer)
- {}
+ /// <summary>
+ /// A built-in function.
+ /// </summary>
+ public class BuiltinFunction : Function
+ {
+ /// <summary>
+ /// Creates a built-in function proxy.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="pointer">The pointer.</param>
+ protected internal BuiltinFunction(REngine engine, IntPtr pointer)
+ : base(engine, pointer)
+ { }
- public override SymbolicExpression Invoke(SymbolicExpression[] args)
- {
- IntPtr argument = Engine.NilValue.DangerousGetHandle();
- foreach (SymbolicExpression arg in args.Reverse())
- {
- argument = Engine.GetFunction<Rf_cons>("Rf_cons")(arg.DangerousGetHandle(),
argument);
- }
- IntPtr call = Engine.GetFunction<Rf_lcons>("Rf_lcons")(handle, argument);
+ public override SymbolicExpression Invoke(SymbolicExpression[] args)
+ {
+ IntPtr argument = Engine.NilValue.DangerousGetHandle();
+ foreach (SymbolicExpression arg in args.Reverse())
+ {
+ argument = Engine.GetFunction<Rf_cons>()(arg.DangerousGetHandle(), argument);
+ }
+ IntPtr call = Engine.GetFunction<Rf_lcons>()(handle, argument);
- IntPtr result = Engine.GetFunction<Rf_eval>("Rf_eval")(call,
Engine.GlobalEnvironment.DangerousGetHandle());
- return new SymbolicExpression(Engine, result);
- }
- }
-}
+ IntPtr result = Engine.GetFunction<Rf_eval>()(call, Engine.GlobalEnvironment.DangerousGetHandle());
+ return new SymbolicExpression(Engine, result);
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/CharacterMatrix.cs b/rdotnet/R.NET/CharacterMatrix.cs
index f27c55c..647f863 100644
--- a/rdotnet/R.NET/CharacterMatrix.cs
+++ b/rdotnet/R.NET/CharacterMatrix.cs
@@ -1,99 +1,122 @@
-using System;
+using RDotNet.Internals;
+using System;
using System.Runtime.InteropServices;
using System.Security.Permissions;
-using RDotNet.Internals;
namespace RDotNet
{
- /// <summary>
- /// A matrix of strings.
- /// </summary>
- [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
- public class CharacterMatrix : Matrix<string>
- {
- /// <summary>
- /// Creates a new empty CharacterMatrix with the specified size.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="rowCount">The row size.</param>
- /// <param name="columnCount">The column size.</param>
- /// <seealso cref="REngineExtension.CreateCharacterMatrix(REngine, int, int)"/>
- public CharacterMatrix(REngine engine, int rowCount, int columnCount)
- : base(engine, SymbolicExpressionType.CharacterVector, rowCount, columnCount)
- {}
+ /// <summary>
+ /// A matrix of strings.
+ /// </summary>
+ [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+ public class CharacterMatrix : Matrix<string>
+ {
+ /// <summary>
+ /// Creates a new empty CharacterMatrix with the specified size.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="rowCount">The row size.</param>
+ /// <param name="columnCount">The column size.</param>
+ /// <seealso cref="REngineExtension.CreateCharacterMatrix(REngine, int, int)"/>
+ public CharacterMatrix(REngine engine, int rowCount, int columnCount)
+ : base(engine, SymbolicExpressionType.CharacterVector, rowCount, columnCount)
+ { }
- /// <summary>
- /// Creates a new CharacterMatrix with the specified values.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="matrix">The values.</param>
- /// <seealso cref="REngineExtension.CreateCharacterMatrix(REngine, string[,])"/>
- public CharacterMatrix(REngine engine, string[,] matrix)
- : base(engine, SymbolicExpressionType.CharacterVector, matrix)
- {}
+ /// <summary>
+ /// Creates a new CharacterMatrix with the specified values.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="matrix">The values.</param>
+ /// <seealso cref="REngineExtension.CreateCharacterMatrix(REngine, string[,])"/>
+ public CharacterMatrix(REngine engine, string[,] matrix)
+ : base(engine, SymbolicExpressionType.CharacterVector, matrix)
+ { }
- /// <summary>
- /// Creates a new instance for a string matrix.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="coerced">The pointer to a string matrix.</param>
- protected internal CharacterMatrix(REngine engine, IntPtr coerced)
- : base(engine, coerced)
- {}
+ /// <summary>
+ /// Creates a new instance for a string matrix.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="coerced">The pointer to a string matrix.</param>
+ protected internal CharacterMatrix(REngine engine, IntPtr coerced)
+ : base(engine, coerced)
+ { }
- /// <summary>
- /// Gets or sets the element at the specified index.
- /// </summary>
- /// <param name="rowIndex">The zero-based rowIndex index of the element to get or set.</param>
- /// <param name="columnIndex">The zero-based columnIndex index of the element to get or
set.</param>
- /// <returns>The element at the specified index.</returns>
- public override string this[int rowIndex, int columnIndex]
- {
- get
- {
- if (rowIndex < 0 || RowCount <= rowIndex)
- {
- throw new ArgumentOutOfRangeException("rowIndex");
- }
- if (columnIndex < 0 || ColumnCount <= columnIndex)
- {
- throw new ArgumentOutOfRangeException("columnIndex");
- }
- using (new ProtectedPointer(this))
- {
- int offset = GetOffset(rowIndex, columnIndex);
- IntPtr pointer = Marshal.ReadIntPtr(DataPointer, offset);
- return new InternalString(Engine, pointer);
- }
- }
- set
- {
- if (rowIndex < 0 || RowCount <= rowIndex)
- {
- throw new ArgumentOutOfRangeException("rowIndex");
- }
- if (columnIndex < 0 || ColumnCount <= columnIndex)
- {
- throw new ArgumentOutOfRangeException("columnIndex");
- }
- using (new ProtectedPointer(this))
- {
- int offset = GetOffset(rowIndex, columnIndex);
- SymbolicExpression s = value == null ? Engine.NilValue : new
InternalString(Engine, value);
- using (new ProtectedPointer(s))
- {
- Marshal.WriteIntPtr(DataPointer, offset,
s.DangerousGetHandle());
- }
- }
- }
- }
+ /// <summary>
+ /// Gets or sets the element at the specified index.
+ /// </summary>
+ /// <param name="rowIndex">The zero-based rowIndex index of the element to get or set.</param>
+ /// <param name="columnIndex">The zero-based columnIndex index of the element to get or set.</param>
+ /// <returns>The element at the specified index.</returns>
+ public override string this[int rowIndex, int columnIndex]
+ {
+ get
+ {
+ if (rowIndex < 0 || RowCount <= rowIndex)
+ {
+ throw new ArgumentOutOfRangeException("rowIndex");
+ }
+ if (columnIndex < 0 || ColumnCount <= columnIndex)
+ {
+ throw new ArgumentOutOfRangeException("columnIndex");
+ }
+ using (new ProtectedPointer(this))
+ {
+ int offset = GetOffset(rowIndex, columnIndex);
+ IntPtr pointer = Marshal.ReadIntPtr(DataPointer, offset);
+ return new InternalString(Engine, pointer);
+ }
+ }
+ set
+ {
+ if (rowIndex < 0 || RowCount <= rowIndex)
+ {
+ throw new ArgumentOutOfRangeException("rowIndex");
+ }
+ if (columnIndex < 0 || ColumnCount <= columnIndex)
+ {
+ throw new ArgumentOutOfRangeException("columnIndex");
+ }
+ using (new ProtectedPointer(this))
+ {
+ SetValue(rowIndex, columnIndex, value);
+ }
+ }
+ }
- /// <summary>
- /// Gets the size of a pointer in byte.
- /// </summary>
- protected override int DataSize
- {
- get { return Marshal.SizeOf(typeof(IntPtr)); }
- }
- }
-}
+ private void SetValue(int rowIndex, int columnIndex, string value)
+ {
+ int offset = GetOffset(rowIndex, columnIndex);
+ SymbolicExpression s = value == null ? Engine.NilValue : new InternalString(Engine, value);
+ using (new ProtectedPointer(s))
+ {
+ Marshal.WriteIntPtr(DataPointer, offset, s.DangerousGetHandle());
+ }
+ }
+
+ protected override void InitMatrixFastDirect(string[,] matrix)
+ {
+ int rows = matrix.GetLength(0);
+ int cols = matrix.GetLength(1);
+ for (int i = 0; i < rows; i++)
+ {
+ for (int j = 0; j < cols; j++)
+ {
+ SetValue(i, j, matrix[i, j]);
+ }
+ }
+ }
+
+ protected override string[,] GetArrayFast()
+ {
+ throw new NotImplementedException();
+ }
+
+ /// <summary>
+ /// Gets the size of a pointer in byte.
+ /// </summary>
+ protected override int DataSize
+ {
+ get { return Marshal.SizeOf(typeof(IntPtr)); }
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/CharacterVector.cs b/rdotnet/R.NET/CharacterVector.cs
index 1e07f6c..070f615 100644
--- a/rdotnet/R.NET/CharacterVector.cs
+++ b/rdotnet/R.NET/CharacterVector.cs
@@ -1,90 +1,117 @@
-using System;
+using RDotNet.Internals;
+using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Security.Permissions;
-using RDotNet.Internals;
namespace RDotNet
{
- /// <summary>
- /// A collection of strings.
- /// </summary>
- [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
- public class CharacterVector : Vector<string>
- {
- /// <summary>
- /// Creates a new empty CharacterVector with the specified length.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="length">The length.</param>
- /// <seealso cref="REngineExtension.CreateCharacterVector(REngine, int)"/>
- public CharacterVector(REngine engine, int length)
- : base(engine, SymbolicExpressionType.CharacterVector, length)
- {}
+ /// <summary>
+ /// A collection of strings.
+ /// </summary>
+ [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+ public class CharacterVector : Vector<string>
+ {
+ /// <summary>
+ /// Creates a new empty CharacterVector with the specified length.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="length">The length.</param>
+ /// <seealso cref="REngineExtension.CreateCharacterVector(REngine, int)"/>
+ public CharacterVector(REngine engine, int length)
+ : base(engine, SymbolicExpressionType.CharacterVector, length)
+ { }
- /// <summary>
- /// Creates a new CharacterVector with the specified values.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="vector">The values.</param>
- /// <seealso cref="REngineExtension.CreateCharacterVector(REngine, IEnumerable{string})"/>
- public CharacterVector(REngine engine, IEnumerable<string> vector)
- : base(engine, SymbolicExpressionType.CharacterVector, vector)
- {}
+ /// <summary>
+ /// Creates a new CharacterVector with the specified values.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="vector">The values.</param>
+ /// <seealso cref="REngineExtension.CreateCharacterVector(REngine, IEnumerable{string})"/>
+ public CharacterVector(REngine engine, IEnumerable<string> vector)
+ : base(engine, SymbolicExpressionType.CharacterVector, vector)
+ { }
- /// <summary>
- /// Creates a new instance for a string vector.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="coerced">The pointer to a string vector.</param>
- protected internal CharacterVector(REngine engine, IntPtr coerced)
- : base(engine, coerced)
- {}
+ /// <summary>
+ /// Creates a new instance for a string vector.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="coerced">The pointer to a string vector.</param>
+ protected internal CharacterVector(REngine engine, IntPtr coerced)
+ : base(engine, coerced)
+ { }
- /// <summary>
- /// Gets or sets the element at the specified index.
- /// </summary>
- /// <param name="index">The zero-based index of the element to get or set.</param>
- /// <returns>The element at the specified index.</returns>
- public override string this[int index]
- {
- get
- {
- if (index < 0 || Length <= index)
- {
- throw new ArgumentOutOfRangeException();
- }
- using (new ProtectedPointer(this))
- {
- int offset = GetOffset(index);
- IntPtr pointer = Marshal.ReadIntPtr(DataPointer, offset);
- return new InternalString(Engine, pointer);
- }
- }
- set
- {
- if (index < 0 || Length <= index)
- {
- throw new ArgumentOutOfRangeException();
- }
- using (new ProtectedPointer(this))
- {
- int offset = GetOffset(index);
- SymbolicExpression s = value == null ? Engine.NilValue : new
InternalString(Engine, value);
- using (new ProtectedPointer(s))
- {
- Marshal.WriteIntPtr(DataPointer, offset,
s.DangerousGetHandle());
- }
- }
- }
- }
+ /// <summary>
+ /// Gets or sets the element at the specified index.
+ /// </summary>
+ /// <param name="index">The zero-based index of the element to get or set.</param>
+ /// <returns>The element at the specified index.</returns>
+ public override string this[int index]
+ {
+ get
+ {
+ if (index < 0 || Length <= index)
+ {
+ throw new ArgumentOutOfRangeException();
+ }
+ using (new ProtectedPointer(this))
+ {
+ return GetValue(index);
+ }
+ }
+ set
+ {
+ if (index < 0 || Length <= index)
+ {
+ throw new ArgumentOutOfRangeException();
+ }
+ using (new ProtectedPointer(this))
+ {
+ SetValue(index, value);
+ }
+ }
+ }
- /// <summary>
- /// Gets the size of a pointer in byte.
- /// </summary>
- protected override int DataSize
- {
- get { return Marshal.SizeOf(typeof(IntPtr)); }
- }
- }
-}
+ protected override string[] GetArrayFast()
+ {
+ int n = this.Length;
+ string[] res = new string[n];
+ for (int i = 0; i < n; i++)
+ res[i] = GetValue(i);
+ return res;
+ }
+
+ private string GetValue(int index)
+ {
+ int offset = GetOffset(index);
+ IntPtr pointer = Marshal.ReadIntPtr(DataPointer, offset);
+ return new InternalString(Engine, pointer).GetInternalValue();
+ }
+
+ private void SetValue(int index, string value)
+ {
+ int offset = GetOffset(index);
+ SymbolicExpression s = value == null ? Engine.GetPredefinedSymbol("R_NaString") : new
InternalString(Engine, value);
+ using (new ProtectedPointer(s))
+ {
+ Marshal.WriteIntPtr(DataPointer, offset, s.DangerousGetHandle());
+ }
+ }
+
+ protected override void SetVectorDirect(string[] values)
+ {
+ // Possibly not the fastest implementation, but faster may require C code.
+ // TODO check the behavior of P/Invoke on array of strings (VT_ARRAY|VT_LPSTR?)
+ for (int i = 0; i < values.Length; i++)
+ SetValue(i, values[i]);
+ }
+
+ /// <summary>
+ /// Gets the size of a pointer in byte.
+ /// </summary>
+ protected override int DataSize
+ {
+ get { return Marshal.SizeOf(typeof(IntPtr)); }
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Closure.cs b/rdotnet/R.NET/Closure.cs
index b31c51d..e3fbd41 100644
--- a/rdotnet/R.NET/Closure.cs
+++ b/rdotnet/R.NET/Closure.cs
@@ -1,74 +1,74 @@
-using System;
+using RDotNet.Internals;
+using System;
using System.Linq;
-using RDotNet.Internals;
namespace RDotNet
{
- /// <summary>
- /// A closure.
- /// </summary>
- public class Closure : Function
- {
- /// <summary>
- /// Creates a closure object.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="pointer">The pointer.</param>
- protected internal Closure(REngine engine, IntPtr pointer)
- : base(engine, pointer)
- {}
+ /// <summary>
+ /// A closure.
+ /// </summary>
+ public class Closure : Function
+ {
+ /// <summary>
+ /// Creates a closure object.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="pointer">The pointer.</param>
+ protected internal Closure(REngine engine, IntPtr pointer)
+ : base(engine, pointer)
+ { }
- /// <summary>
- /// Gets the arguments list.
- /// </summary>
- public Pairlist Arguments
- {
- get
- {
- SEXPREC sexp = GetInternalStructure();
- return new Pairlist(Engine, sexp.closxp.formals);
- }
- }
+ /// <summary>
+ /// Gets the arguments list.
+ /// </summary>
+ public Pairlist Arguments
+ {
+ get
+ {
+ SEXPREC sexp = GetInternalStructure();
+ return new Pairlist(Engine, sexp.closxp.formals);
+ }
+ }
- /// <summary>
- /// Gets the body.
- /// </summary>
- public Language Body
- {
- get
- {
- SEXPREC sexp = GetInternalStructure();
- return new Language(Engine, sexp.closxp.body);
- }
- }
+ /// <summary>
+ /// Gets the body.
+ /// </summary>
+ public Language Body
+ {
+ get
+ {
+ SEXPREC sexp = GetInternalStructure();
+ return new Language(Engine, sexp.closxp.body);
+ }
+ }
- /// <summary>
- /// Gets the environment.
- /// </summary>
- public REnvironment Environment
- {
- get
- {
- SEXPREC sexp = GetInternalStructure();
- return new REnvironment(Engine, sexp.closxp.env);
- }
- }
+ /// <summary>
+ /// Gets the environment.
+ /// </summary>
+ public REnvironment Environment
+ {
+ get
+ {
+ SEXPREC sexp = GetInternalStructure();
+ return new REnvironment(Engine, sexp.closxp.env);
+ }
+ }
- public override SymbolicExpression Invoke(SymbolicExpression[] args)
- {
- int count = Arguments.Count;
- if (args.Length != count)
- {
- throw new ArgumentException();
- }
+ public override SymbolicExpression Invoke(SymbolicExpression[] args)
+ {
+ int count = Arguments.Count;
+ if (args.Length != count)
+ {
+ throw new ArgumentException();
+ }
- var arguments = new GenericVector(Engine, args);
- var names = new CharacterVector(Engine, Arguments.Select(arg =>
arg.PrintName).ToArray());
- arguments.SetAttribute(Engine.GetPredefinedSymbol("R_NamesSymbol"), names);
+ var arguments = new GenericVector(Engine, args);
+ var names = new CharacterVector(Engine, Arguments.Select(arg => arg.PrintName).ToArray());
+ arguments.SetAttribute(Engine.GetPredefinedSymbol("R_NamesSymbol"), names);
- IntPtr newEnvironment =
Engine.GetFunction<Rf_allocSExp>("Rf_allocSExp")(SymbolicExpressionType.Environment);
- IntPtr result =
Engine.GetFunction<Rf_applyClosure>("Rf_applyClosure")(Body.DangerousGetHandle(), handle,
arguments.ToPairlist().DangerousGetHandle(), Environment.DangerousGetHandle(), newEnvironment);
- return new SymbolicExpression(Engine, result);
- }
- }
-}
+ IntPtr newEnvironment = Engine.GetFunction<Rf_allocSExp>()(SymbolicExpressionType.Environment);
+ IntPtr result = Engine.GetFunction<Rf_applyClosure>()(Body.DangerousGetHandle(), handle,
arguments.ToPairlist().DangerousGetHandle(), Environment.DangerousGetHandle(), newEnvironment);
+ return new SymbolicExpression(Engine, result);
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/ComplexMatrix.cs b/rdotnet/R.NET/ComplexMatrix.cs
index 0bc46d4..f230ad1 100644
--- a/rdotnet/R.NET/ComplexMatrix.cs
+++ b/rdotnet/R.NET/ComplexMatrix.cs
@@ -1,100 +1,116 @@
-using System;
+using RDotNet.Internals;
+using System;
using System.Numerics;
using System.Runtime.InteropServices;
using System.Security.Permissions;
-using RDotNet.Internals;
namespace RDotNet
{
- /// <summary>
- /// A matrix of complex numbers.
- /// </summary>
- [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
- public class ComplexMatrix : Matrix<Complex>
- {
- /// <summary>
- /// Creates a new empty ComplexMatrix with the specified size.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="rowCount">The row size.</param>
- /// <param name="columnCount">The column size.</param>
- /// <seealso cref="REngineExtension.CreateComplexMatrix(REngine, int, int)"/>
- public ComplexMatrix(REngine engine, int rowCount, int columnCount)
- : base(engine, SymbolicExpressionType.ComplexVector, rowCount, columnCount)
- {}
+ /// <summary>
+ /// A matrix of complex numbers.
+ /// </summary>
+ [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+ public class ComplexMatrix : Matrix<Complex>
+ {
+ /// <summary>
+ /// Creates a new empty ComplexMatrix with the specified size.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="rowCount">The row size.</param>
+ /// <param name="columnCount">The column size.</param>
+ /// <seealso cref="REngineExtension.CreateComplexMatrix(REngine, int, int)"/>
+ public ComplexMatrix(REngine engine, int rowCount, int columnCount)
+ : base(engine, SymbolicExpressionType.ComplexVector, rowCount, columnCount)
+ { }
- /// <summary>
- /// Creates a new ComplexMatrix with the specified values.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="matrix">The values.</param>
- /// <seealso cref="REngineExtension.CreateComplexMatrix(REngine, Complex[,])"/>
- public ComplexMatrix(REngine engine, Complex[,] matrix)
- : base(engine, SymbolicExpressionType.CharacterVector, matrix)
- {}
+ /// <summary>
+ /// Creates a new ComplexMatrix with the specified values.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="matrix">The values.</param>
+ /// <seealso cref="REngineExtension.CreateComplexMatrix(REngine, Complex[,])"/>
+ public ComplexMatrix(REngine engine, Complex[,] matrix)
+ : base(engine, SymbolicExpressionType.CharacterVector, matrix)
+ { }
- /// <summary>
- /// Creates a new instance for a complex number matrix.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="coerced">The pointer to a complex number matrix.</param>
- protected internal ComplexMatrix(REngine engine, IntPtr coerced)
- : base(engine, coerced)
- {}
+ /// <summary>
+ /// Creates a new instance for a complex number matrix.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="coerced">The pointer to a complex number matrix.</param>
+ protected internal ComplexMatrix(REngine engine, IntPtr coerced)
+ : base(engine, coerced)
+ { }
- /// <summary>
- /// Gets or sets the element at the specified index.
- /// </summary>
- /// <param name="rowIndex">The zero-based rowIndex index of the element to get or set.</param>
- /// <param name="columnIndex">The zero-based columnIndex index of the element to get or
set.</param>
- /// <returns>The element at the specified index.</returns>
- public override Complex this[int rowIndex, int columnIndex]
- {
- get
- {
- if (rowIndex < 0 || RowCount <= rowIndex)
- {
- throw new ArgumentOutOfRangeException("rowIndex");
- }
- if (columnIndex < 0 || ColumnCount <= columnIndex)
- {
- throw new ArgumentOutOfRangeException("columnIndex");
- }
- using (new ProtectedPointer(this))
- {
- var data = new double[2];
- int offset = GetOffset(rowIndex, columnIndex);
- IntPtr pointer = IntPtr.Add(DataPointer, offset);
- Marshal.Copy(pointer, data, 0, data.Length);
- return new Complex(data[0], data[1]);
- }
- }
- set
- {
- if (rowIndex < 0 || RowCount <= rowIndex)
- {
- throw new ArgumentOutOfRangeException("rowIndex");
- }
- if (columnIndex < 0 || ColumnCount <= columnIndex)
- {
- throw new ArgumentOutOfRangeException("columnIndex");
- }
- using (new ProtectedPointer(this))
- {
- var data = new[] { value.Real, value.Imaginary };
- int offset = GetOffset(rowIndex, columnIndex);
- IntPtr pointer = IntPtr.Add(DataPointer, offset);
- Marshal.Copy(data, 0, pointer, data.Length);
- }
- }
- }
+ /// <summary>
+ /// Gets or sets the element at the specified index.
+ /// </summary>
+ /// <param name="rowIndex">The zero-based rowIndex index of the element to get or set.</param>
+ /// <param name="columnIndex">The zero-based columnIndex index of the element to get or set.</param>
+ /// <returns>The element at the specified index.</returns>
+ public override Complex this[int rowIndex, int columnIndex]
+ {
+ get
+ {
+ if (rowIndex < 0 || RowCount <= rowIndex)
+ {
+ throw new ArgumentOutOfRangeException("rowIndex");
+ }
+ if (columnIndex < 0 || ColumnCount <= columnIndex)
+ {
+ throw new ArgumentOutOfRangeException("columnIndex");
+ }
+ using (new ProtectedPointer(this))
+ {
+ var data = new double[2];
+ int offset = GetOffset(rowIndex, columnIndex);
+ IntPtr pointer = IntPtr.Add(DataPointer, offset);
+ Marshal.Copy(pointer, data, 0, data.Length);
+ return new Complex(data[0], data[1]);
+ }
+ }
+ set
+ {
+ if (rowIndex < 0 || RowCount <= rowIndex)
+ {
+ throw new ArgumentOutOfRangeException("rowIndex");
+ }
+ if (columnIndex < 0 || ColumnCount <= columnIndex)
+ {
+ throw new ArgumentOutOfRangeException("columnIndex");
+ }
+ using (new ProtectedPointer(this))
+ {
+ var data = new[] { value.Real, value.Imaginary };
+ int offset = GetOffset(rowIndex, columnIndex);
+ IntPtr pointer = IntPtr.Add(DataPointer, offset);
+ Marshal.Copy(data, 0, pointer, data.Length);
+ }
+ }
+ }
- /// <summary>
- /// Gets the size of a complex number in byte.
- /// </summary>
- protected override int DataSize
- {
- get { return Marshal.SizeOf(typeof(Complex)); }
- }
- }
-}
+ protected override void InitMatrixFastDirect(Complex[,] matrix)
+ {
+ var vectorCplx = Utility.ArrayConvertOneDim(matrix);
+ var data = Utility.SerializeComplexToDouble(vectorCplx);
+ Marshal.Copy(data, 0, DataPointer, data.Length);
+ }
+
+ protected override Complex[,] GetArrayFast()
+ {
+ int n = this.ItemCount;
+ var data = new double[2 * n];
+ Marshal.Copy(DataPointer, data, 0, 2 * n);
+ var oneDim = Utility.DeserializeComplexFromDouble(data);
+ return Utility.ArrayConvertAllTwoDim(oneDim, this.RowCount, this.ColumnCount);
+ }
+
+ /// <summary>
+ /// Gets the size of a complex number in byte.
+ /// </summary>
+ protected override int DataSize
+ {
+ get { return Marshal.SizeOf(typeof(Complex)); }
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/ComplexVector.cs b/rdotnet/R.NET/ComplexVector.cs
index ba5db93..3e7f6d5 100644
--- a/rdotnet/R.NET/ComplexVector.cs
+++ b/rdotnet/R.NET/ComplexVector.cs
@@ -1,91 +1,106 @@
-using System;
+using RDotNet.Internals;
+using System;
using System.Collections.Generic;
using System.Numerics;
using System.Runtime.InteropServices;
using System.Security.Permissions;
-using RDotNet.Internals;
namespace RDotNet
{
- /// <summary>
- /// A collection of complex numbers.
- /// </summary>
- [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
- public class ComplexVector : Vector<Complex>
- {
- /// <summary>
- /// Creates a new empty ComplexVector with the specified length.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="length">The length.</param>
- /// <seealso cref="REngineExtension.CreateComplexVector(REngine, int)"/>
- public ComplexVector(REngine engine, int length)
- : base(engine, SymbolicExpressionType.ComplexVector, length)
- {}
+ /// <summary>
+ /// A collection of complex numbers.
+ /// </summary>
+ [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+ public class ComplexVector : Vector<Complex>
+ {
+ /// <summary>
+ /// Creates a new empty ComplexVector with the specified length.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="length">The length.</param>
+ /// <seealso cref="REngineExtension.CreateComplexVector(REngine, int)"/>
+ public ComplexVector(REngine engine, int length)
+ : base(engine, SymbolicExpressionType.ComplexVector, length)
+ { }
- /// <summary>
- /// Creates a new ComplexVector with the specified values.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="vector">The values.</param>
- /// <seealso cref="REngineExtension.CreateComplexVector(REngine,
System.Collections.Generic.IEnumerable{System.Numerics.Complex})"/>
- public ComplexVector(REngine engine, IEnumerable<Complex> vector)
- : base(engine, SymbolicExpressionType.ComplexVector, vector)
- {}
+ /// <summary>
+ /// Creates a new ComplexVector with the specified values.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="vector">The values.</param>
+ /// <seealso cref="REngineExtension.CreateComplexVector(REngine,
System.Collections.Generic.IEnumerable{System.Numerics.Complex})"/>
+ public ComplexVector(REngine engine, IEnumerable<Complex> vector)
+ : base(engine, SymbolicExpressionType.ComplexVector, vector)
+ { }
- /// <summary>
- /// Creates a new instance for a complex number vector.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="coerced">The pointer to a complex number vector.</param>
- protected internal ComplexVector(REngine engine, IntPtr coerced)
- : base(engine, coerced)
- {}
+ /// <summary>
+ /// Creates a new instance for a complex number vector.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="coerced">The pointer to a complex number vector.</param>
+ protected internal ComplexVector(REngine engine, IntPtr coerced)
+ : base(engine, coerced)
+ { }
- /// <summary>
- /// Gets or sets the element at the specified index.
- /// </summary>
- /// <param name="index">The zero-based index of the element to get or set.</param>
- /// <returns>The element at the specified index.</returns>
- public override Complex this[int index]
- {
- get
- {
- if (index < 0 || Length <= index)
- {
- throw new ArgumentOutOfRangeException();
- }
- using (new ProtectedPointer(this))
- {
- var data = new double[2];
- int offset = GetOffset(index);
- IntPtr pointer = IntPtr.Add(DataPointer, offset);
- Marshal.Copy(pointer, data, 0, data.Length);
- return new Complex(data[0], data[1]);
- }
- }
- set
- {
- if (index < 0 || Length <= index)
- {
- throw new ArgumentOutOfRangeException();
- }
- using (new ProtectedPointer(this))
- {
- var data = new[] { value.Real, value.Imaginary };
- int offset = GetOffset(index);
- IntPtr pointer = IntPtr.Add(DataPointer, offset);
- Marshal.Copy(data, 0, pointer, data.Length);
- }
- }
- }
+ /// <summary>
+ /// Gets or sets the element at the specified index.
+ /// </summary>
+ /// <param name="index">The zero-based index of the element to get or set.</param>
+ /// <returns>The element at the specified index.</returns>
+ public override Complex this[int index]
+ {
+ get
+ {
+ if (index < 0 || Length <= index)
+ {
+ throw new ArgumentOutOfRangeException();
+ }
+ using (new ProtectedPointer(this))
+ {
+ var data = new double[2];
+ int offset = GetOffset(index);
+ IntPtr pointer = IntPtr.Add(DataPointer, offset);
+ Marshal.Copy(pointer, data, 0, data.Length);
+ return new Complex(data[0], data[1]);
+ }
+ }
+ set
+ {
+ if (index < 0 || Length <= index)
+ {
+ throw new ArgumentOutOfRangeException();
+ }
+ using (new ProtectedPointer(this))
+ {
+ var data = new[] { value.Real, value.Imaginary };
+ int offset = GetOffset(index);
+ IntPtr pointer = IntPtr.Add(DataPointer, offset);
+ Marshal.Copy(data, 0, pointer, data.Length);
+ }
+ }
+ }
- /// <summary>
- /// Gets the size of a complex number in byte.
- /// </summary>
- protected override int DataSize
- {
- get { return Marshal.SizeOf(typeof(Complex)); }
- }
- }
-}
+ protected override Complex[] GetArrayFast()
+ {
+ int n = this.Length;
+ var data = new double[2*n];
+ Marshal.Copy(DataPointer, data, 0, 2 * n);
+ return Utility.DeserializeComplexFromDouble(data);
+ }
+
+ protected override void SetVectorDirect(Complex[] values)
+ {
+ double[] data = Utility.SerializeComplexToDouble(values);
+ IntPtr pointer = IntPtr.Add(DataPointer, 0);
+ Marshal.Copy(data, 0, pointer, data.Length);
+ }
+
+ /// <summary>
+ /// Gets the size of a complex number in byte.
+ /// </summary>
+ protected override int DataSize
+ {
+ get { return Marshal.SizeOf(typeof(Complex)); }
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/DataFrame.cs b/rdotnet/R.NET/DataFrame.cs
index e267951..9500c62 100644
--- a/rdotnet/R.NET/DataFrame.cs
+++ b/rdotnet/R.NET/DataFrame.cs
@@ -1,204 +1,273 @@
-using System;
+using RDotNet.Diagnostics;
+using RDotNet.Dynamic;
+using System;
using System.Collections.Generic;
+using System.Diagnostics;
using System.Dynamic;
+using System.Linq;
using System.Runtime.InteropServices;
using System.Security.Permissions;
-using RDotNet.Dynamic;
namespace RDotNet
{
- /// <summary>
- /// A data frame.
- /// </summary>
- [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
- public class DataFrame : Vector<DynamicVector>
- {
- private const string RRowNamesSymbolName = "R_RowNamesSymbol";
-
- /// <summary>
- /// Creates a new instance.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="coerced">The pointer to a data frame.</param>
- protected internal DataFrame(REngine engine, IntPtr coerced)
- : base(engine, coerced)
- {}
-
- /// <summary>
- /// Gets or sets the column at the specified index as a vector.
- /// </summary>
- /// <param name="columnIndex">The zero-based index of the column to get or set.</param>
- /// <returns>The column at the specified index.</returns>
- public override DynamicVector this[int columnIndex]
- {
- get
- {
- if (columnIndex < 0 || Length <= columnIndex)
- {
- throw new ArgumentOutOfRangeException();
- }
- using (new ProtectedPointer(this))
- {
- int offset = GetOffset(columnIndex);
- IntPtr pointer = Marshal.ReadIntPtr(DataPointer, offset);
- return new DynamicVector(Engine, pointer);
- }
- }
- set
- {
- if (columnIndex < 0 || Length <= columnIndex)
- {
- throw new ArgumentOutOfRangeException();
- }
- using (new ProtectedPointer(this))
- {
- int offset = GetOffset(columnIndex);
- Marshal.WriteIntPtr(DataPointer, offset, (value ??
Engine.NilValue).DangerousGetHandle());
- }
- }
- }
-
- /// <summary>
- /// Gets or sets the element at the specified indexes.
- /// </summary>
- /// <param name="rowIndex">The row index.</param>
- /// <param name="columnIndex">The column index.</param>
- /// <returns>The element.</returns>
- public object this[int rowIndex, int columnIndex]
- {
- get
- {
- DynamicVector column = this[columnIndex];
- return column[rowIndex];
- }
- set
- {
- DynamicVector column = this[columnIndex];
- column[rowIndex] = value;
- }
- }
-
- /// <summary>
- /// Gets or sets the element at the specified index and name.
- /// </summary>
- /// <param name="rowIndex">The row index.</param>
- /// <param name="columnName">The column name.</param>
- /// <returns>The element.</returns>
- public object this[int rowIndex, string columnName]
- {
- get
- {
- DynamicVector column = this[columnName];
- return column[rowIndex];
- }
- set
- {
- DynamicVector column = this[columnName];
- column[rowIndex] = value;
- }
- }
-
- /// <summary>
- /// Gets or sets the element at the specified names.
- /// </summary>
- /// <param name="rowName">The row name.</param>
- /// <param name="columnName">The column name.</param>
- /// <returns>The element.</returns>
- public object this[string rowName, string columnName]
- {
- get
- {
- DynamicVector column = this[columnName];
- return column[rowName];
- }
- set
- {
- DynamicVector column = this[columnName];
- column[rowName] = value;
- }
- }
-
- /// <summary>
- /// Gets the number of data sets.
- /// </summary>
- public int RowCount
- {
- get { return ColumnCount == 0 ? 0 : this[0].Length; }
- }
-
- /// <summary>
- /// Gets the number of kinds of data.
- /// </summary>
- public int ColumnCount
- {
- get { return Length; }
- }
-
- /// <summary>
- /// Gets the names of rows.
- /// </summary>
- public string[] RowNames
- {
- get
- {
- SymbolicExpression rowNamesSymbol =
Engine.GetPredefinedSymbol(RRowNamesSymbolName);
- SymbolicExpression rowNames = GetAttribute(rowNamesSymbol);
- if (rowNames == null)
- {
- return null;
- }
- CharacterVector rowNamesVector = rowNames.AsCharacter();
- if (rowNamesVector == null)
- {
- return null;
- }
-
- int length = rowNamesVector.Length;
- var result = new string[length];
- rowNamesVector.CopyTo(result, length);
- return result;
- }
- }
-
- /// <summary>
- /// Gets the names of columns.
- /// </summary>
- public string[] ColumnNames
- {
- get { return Names; }
- }
-
- protected override int DataSize
- {
- get { return Marshal.SizeOf(typeof(IntPtr)); }
- }
-
- /// <summary>
- /// Gets the row at the specified index.
- /// </summary>
- /// <param name="rowIndex">The index.</param>
- /// <returns>The row.</returns>
- public DataFrameRow GetRow(int rowIndex)
- {
- return new DataFrameRow(this, rowIndex);
- }
-
- /// <summary>
- /// Enumerates all the rows in the data frame.
- /// </summary>
- /// <returns>The collection of the rows.</returns>
- public IEnumerable<DataFrameRow> GetRows()
- {
- int rowCount = RowCount;
- for (int rowIndex = 0; rowIndex < rowCount; rowIndex++)
- {
- yield return GetRow(rowIndex);
- }
- }
-
- public override DynamicMetaObject GetMetaObject(System.Linq.Expressions.Expression parameter)
- {
- return new DataFrameDynamicMeta(parameter, this);
- }
- }
-}
+ /// <summary>
+ /// A data frame.
+ /// </summary>
+ [DebuggerDisplay(@"ColumnCount = {ColumnCount}; RowCount = {RowCount}; RObjectType = {Type}")]
+ [DebuggerTypeProxy(typeof(DataFrameDebugView))]
+ [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+ public class DataFrame : Vector<DynamicVector>
+ {
+ private const string RRowNamesSymbolName = "R_RowNamesSymbol";
+
+ /// <summary>
+ /// Creates a new instance.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="coerced">The pointer to a data frame.</param>
+ protected internal DataFrame(REngine engine, IntPtr coerced)
+ : base(engine, coerced)
+ { }
+
+ /// <summary>
+ /// Gets or sets the column at the specified index as a vector.
+ /// </summary>
+ /// <param name="columnIndex">The zero-based index of the column to get or set.</param>
+ /// <returns>The column at the specified index.</returns>
+ public override DynamicVector this[int columnIndex]
+ {
+ get
+ {
+ if (columnIndex < 0 || Length <= columnIndex)
+ {
+ throw new ArgumentOutOfRangeException();
+ }
+ using (new ProtectedPointer(this))
+ {
+ return GetColumn(columnIndex);
+ }
+ }
+ set
+ {
+ if (columnIndex < 0 || Length <= columnIndex)
+ {
+ throw new ArgumentOutOfRangeException();
+ }
+ using (new ProtectedPointer(this))
+ {
+ SetColumn(columnIndex, value);
+ }
+ }
+ }
+
+ protected override DynamicVector[] GetArrayFast()
+ {
+ var res = new DynamicVector[this.Length];
+ for (int i = 0; i < res.Length; i++)
+ res[i] = GetColumn(i);
+ return res;
+ }
+
+ private DynamicVector GetColumn(int columnIndex)
+ {
+ int offset = GetOffset(columnIndex);
+ IntPtr pointer = Marshal.ReadIntPtr(DataPointer, offset);
+ return new DynamicVector(Engine, pointer);
+ }
+
+ private void SetColumn(int columnIndex, DynamicVector value)
+ {
+ int offset = GetOffset(columnIndex);
+ Marshal.WriteIntPtr(DataPointer, offset, (value ?? Engine.NilValue).DangerousGetHandle());
+ }
+
+ protected override void SetVectorDirect(DynamicVector[] values)
+ {
+ for (int i = 0; i < values.Length; i++)
+ SetColumn(i, values[i]);
+ }
+
+ /// <summary>
+ /// Gets or sets the element at the specified indexes.
+ /// </summary>
+ /// <param name="rowIndex">The row index.</param>
+ /// <param name="columnIndex">The column index.</param>
+ /// <returns>The element.</returns>
+ public object this[int rowIndex, int columnIndex]
+ {
+ get
+ {
+ DynamicVector column = this[columnIndex];
+ return column[rowIndex];
+ }
+ set
+ {
+ DynamicVector column = this[columnIndex];
+ column[rowIndex] = value;
+ }
+ }
+
+ /// <summary>
+ /// Gets or sets the element at the specified index and name.
+ /// </summary>
+ /// <param name="rowIndex">The row index.</param>
+ /// <param name="columnName">The column name.</param>
+ /// <returns>The element.</returns>
+ public object this[int rowIndex, string columnName]
+ {
+ get
+ {
+ DynamicVector column = this[columnName];
+ return column[rowIndex];
+ }
+ set
+ {
+ DynamicVector column = this[columnName];
+ column[rowIndex] = value;
+ }
+ }
+
+ /// <summary>
+ /// Gets or sets the element at the specified names.
+ /// </summary>
+ /// <param name="rowName">The row name.</param>
+ /// <param name="columnName">The column name.</param>
+ /// <returns>The element.</returns>
+ public object this[string rowName, string columnName]
+ {
+ get
+ {
+ DynamicVector column = this[columnName];
+ return column[rowName];
+ }
+ set
+ {
+ DynamicVector column = this[columnName];
+ column[rowName] = value;
+ }
+ }
+
+ /// <summary>
+ /// Gets the number of data sets.
+ /// </summary>
+ public int RowCount
+ {
+ get { return ColumnCount == 0 ? 0 : this[0].Length; }
+ }
+
+ /// <summary>
+ /// Gets the number of kinds of data.
+ /// </summary>
+ public int ColumnCount
+ {
+ get { return Length; }
+ }
+
+ /// <summary>
+ /// Gets the names of rows.
+ /// </summary>
+ public string[] RowNames
+ {
+ get
+ {
+ SymbolicExpression rowNamesSymbol = Engine.GetPredefinedSymbol(RRowNamesSymbolName);
+ SymbolicExpression rowNames = GetAttribute(rowNamesSymbol);
+ if (rowNames == null)
+ {
+ return null;
+ }
+ CharacterVector rowNamesVector = rowNames.AsCharacter();
+ if (rowNamesVector == null)
+ {
+ return null;
+ }
+
+ int length = rowNamesVector.Length;
+ var result = new string[length];
+ rowNamesVector.CopyTo(result, length);
+ return result;
+ }
+ }
+
+ /// <summary>
+ /// Gets the names of columns.
+ /// </summary>
+ public string[] ColumnNames
+ {
+ get { return Names; }
+ }
+
+ protected override int DataSize
+ {
+ get { return Marshal.SizeOf(typeof(IntPtr)); }
+ }
+
+ /// <summary>
+ /// Gets the row at the specified index.
+ /// </summary>
+ /// <param name="rowIndex">The index.</param>
+ /// <returns>The row.</returns>
+ public DataFrameRow GetRow(int rowIndex)
+ {
+ return new DataFrameRow(this, rowIndex);
+ }
+
+ /// <summary>
+ /// Gets the row at the specified index mapping a specified class.
+ /// </summary>
+ /// <typeparam name="TRow">The row type with <see cref="DataFrameRowAttribute"/>.</typeparam>
+ /// <returns>The row.</returns>
+ public TRow GetRow<TRow>(int rowIndex)
+ where TRow : class, new()
+ {
+ var rowType = typeof(TRow);
+ var attribute = (DataFrameRowAttribute)rowType.GetCustomAttributes(typeof(DataFrameRowAttribute),
false).Single();
+ if (attribute == null)
+ {
+ throw new ArgumentException("DataFrameRowAttribute is required.");
+ }
+ var row = GetRow(rowIndex);
+ return attribute.Convert<TRow>(row);
+ }
+
+ /// <summary>
+ /// Enumerates all the rows in the data frame.
+ /// </summary>
+ /// <returns>The collection of the rows.</returns>
+ public IEnumerable<DataFrameRow> GetRows()
+ {
+ int rowCount = RowCount;
+ for (int rowIndex = 0; rowIndex < rowCount; rowIndex++)
+ {
+ yield return GetRow(rowIndex);
+ }
+ }
+
+ /// <summary>
+ /// Enumerates all the rows in the data frame mapping a specified class.
+ /// </summary>
+ /// <typeparam name="TRow">The row type with <see cref="DataFrameRowAttribute"/>.</typeparam>
+ /// <returns>The collection of the rows.</returns>
+ public IEnumerable<TRow> GetRows<TRow>()
+ where TRow : class, new()
+ {
+ var rowType = typeof(TRow);
+ var attribute = (DataFrameRowAttribute)rowType.GetCustomAttributes(typeof(DataFrameRowAttribute),
false).Single();
+ if (attribute == null)
+ {
+ throw new ArgumentException("DataFrameRowAttribute is required.");
+ }
+ int rowCount = RowCount;
+ for (int rowIndex = 0; rowIndex < rowCount; rowIndex++)
+ {
+ var row = GetRow(rowIndex);
+ yield return attribute.Convert<TRow>(row);
+ }
+ }
+
+ public override DynamicMetaObject GetMetaObject(System.Linq.Expressions.Expression parameter)
+ {
+ return new DataFrameDynamicMeta(parameter, this);
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/DataFrameColumnAttribute.cs b/rdotnet/R.NET/DataFrameColumnAttribute.cs
new file mode 100644
index 0000000..731b2e9
--- /dev/null
+++ b/rdotnet/R.NET/DataFrameColumnAttribute.cs
@@ -0,0 +1,74 @@
+using System;
+
+namespace RDotNet
+{
+ /// <summary>
+ /// Represents a column of certain data frames.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Property, Inherited = true, AllowMultiple = false)]
+ public class DataFrameColumnAttribute : Attribute
+ {
+ private static readonly string[] Empty = new string[0];
+
+ private readonly int index;
+
+ /// <summary>
+ /// Gets the index.
+ /// </summary>
+ public int Index
+ {
+ get { return this.index; }
+ }
+
+ private string name;
+
+ /// <summary>
+ /// Gets or sets the name.
+ /// </summary>
+ public string Name
+ {
+ get { return this.name; }
+ set
+ {
+ if (this.index < 0 && value == null)
+ {
+ throw new ArgumentNullException("value", "Name must not be null when Index is not defined.");
+ }
+ this.name = value;
+ }
+ }
+
+ /// <summary>
+ /// Initializes a new instance by name.
+ /// </summary>
+ /// <param name="name">The name.</param>
+ public DataFrameColumnAttribute(string name)
+ {
+ if (name == null)
+ {
+ throw new ArgumentNullException("name");
+ }
+ this.name = name;
+ this.index = -1;
+ }
+
+ /// <summary>
+ /// Initializes a new instance by index.
+ /// </summary>
+ /// <param name="name">The index.</param>
+ public DataFrameColumnAttribute(int index)
+ {
+ if (index < 0)
+ {
+ throw new ArgumentOutOfRangeException("index");
+ }
+ this.name = null;
+ this.index = index;
+ }
+
+ internal int GetIndex(string[] names)
+ {
+ return Index >= 0 ? Index : Array.IndexOf(names ?? Empty, Name);
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/DataFrameRow.cs b/rdotnet/R.NET/DataFrameRow.cs
index a47df59..bde1e1a 100644
--- a/rdotnet/R.NET/DataFrameRow.cs
+++ b/rdotnet/R.NET/DataFrameRow.cs
@@ -4,100 +4,100 @@ using System.Dynamic;
namespace RDotNet
{
- /// <summary>
- /// A data frame row.
- /// </summary>
- public class DataFrameRow : DynamicObject
- {
- private DataFrame frame;
- private int rowIndex;
+ /// <summary>
+ /// A data frame row.
+ /// </summary>
+ public class DataFrameRow : DynamicObject
+ {
+ private DataFrame frame;
+ private int rowIndex;
- public DataFrameRow(DataFrame frame, int rowIndex)
- {
- this.frame = frame;
- this.rowIndex = rowIndex;
- }
+ public DataFrameRow(DataFrame frame, int rowIndex)
+ {
+ this.frame = frame;
+ this.rowIndex = rowIndex;
+ }
- /// <summary>
- /// Gets and sets the value at the specified column.
- /// </summary>
- /// <param name="index">The column index.</param>
- /// <returns>The value.</returns>
- public object this[int index]
- {
- get
- {
- DynamicVector column = DataFrame[index];
- return column[RowIndex];
- }
- set
- {
- DynamicVector column = DataFrame[index];
- column[RowIndex] = value;
- }
- }
+ /// <summary>
+ /// Gets and sets the value at the specified column.
+ /// </summary>
+ /// <param name="index">The column index.</param>
+ /// <returns>The value.</returns>
+ public object this[int index]
+ {
+ get
+ {
+ DynamicVector column = DataFrame[index];
+ return column[RowIndex];
+ }
+ set
+ {
+ DynamicVector column = DataFrame[index];
+ column[RowIndex] = value;
+ }
+ }
- /// <summary>
- /// Gets and sets the value at the specified column.
- /// </summary>
- /// <param name="name">The column name.</param>
- /// <returns>The value.</returns>
- public object this[string name]
- {
- get
- {
- DynamicVector column = DataFrame[name];
- return column[RowIndex];
- }
- set
- {
- DynamicVector column = DataFrame[name];
- column[RowIndex] = value;
- }
- }
+ /// <summary>
+ /// Gets and sets the value at the specified column.
+ /// </summary>
+ /// <param name="name">The column name.</param>
+ /// <returns>The value.</returns>
+ public object this[string name]
+ {
+ get
+ {
+ DynamicVector column = DataFrame[name];
+ return column[RowIndex];
+ }
+ set
+ {
+ DynamicVector column = DataFrame[name];
+ column[RowIndex] = value;
+ }
+ }
- /// <summary>
- /// Gets the data frame containing this row.
- /// </summary>
- public DataFrame DataFrame
- {
- get { return this.frame; }
- }
+ /// <summary>
+ /// Gets the data frame containing this row.
+ /// </summary>
+ public DataFrame DataFrame
+ {
+ get { return this.frame; }
+ }
- /// <summary>
- /// Gets the index of this row.
- /// </summary>
- public int RowIndex
- {
- get { return this.rowIndex; }
- }
+ /// <summary>
+ /// Gets the index of this row.
+ /// </summary>
+ public int RowIndex
+ {
+ get { return this.rowIndex; }
+ }
- public override IEnumerable<string> GetDynamicMemberNames()
- {
- return DataFrame.ColumnNames;
- }
+ public override IEnumerable<string> GetDynamicMemberNames()
+ {
+ return DataFrame.ColumnNames;
+ }
- public override bool TryGetMember(GetMemberBinder binder, out object result)
- {
- string[] columnNames = DataFrame.ColumnNames;
- if (columnNames == null || Array.IndexOf(columnNames, binder.Name) < 0)
- {
- result = null;
- return false;
- }
- result = this[binder.Name];
- return true;
- }
+ public override bool TryGetMember(GetMemberBinder binder, out object result)
+ {
+ string[] columnNames = DataFrame.ColumnNames;
+ if (columnNames == null || Array.IndexOf(columnNames, binder.Name) < 0)
+ {
+ result = null;
+ return false;
+ }
+ result = this[binder.Name];
+ return true;
+ }
- public override bool TrySetMember(SetMemberBinder binder, object value)
- {
- string[] columnNames = DataFrame.ColumnNames;
- if (columnNames == null || Array.IndexOf(columnNames, binder.Name) < 0)
- {
- return false;
- }
- this[binder.Name] = value;
- return true;
- }
- }
-}
+ public override bool TrySetMember(SetMemberBinder binder, object value)
+ {
+ string[] columnNames = DataFrame.ColumnNames;
+ if (columnNames == null || Array.IndexOf(columnNames, binder.Name) < 0)
+ {
+ return false;
+ }
+ this[binder.Name] = value;
+ return true;
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/DataFrameRowAttribute.cs b/rdotnet/R.NET/DataFrameRowAttribute.cs
new file mode 100644
index 0000000..bbad093
--- /dev/null
+++ b/rdotnet/R.NET/DataFrameRowAttribute.cs
@@ -0,0 +1,62 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Reflection;
+
+namespace RDotNet
+{
+ internal delegate void Map(DataFrameRow from, object to);
+
+ /// <summary>
+ /// Indicates the class with the attribute represents rows of certain data frames.
+ /// </summary>
+ [AttributeUsage(AttributeTargets.Class, Inherited = false, AllowMultiple = false)]
+ public class DataFrameRowAttribute : Attribute
+ {
+ private readonly Dictionary<Type, Map> cache;
+
+ /// <summary>
+ /// Initializes a new instance.
+ /// </summary>
+ public DataFrameRowAttribute()
+ {
+ this.cache = new Dictionary<Type, Map>();
+ }
+
+ internal TRow Convert<TRow>(DataFrameRow row)
+ where TRow : class, new()
+ {
+ var rowType = typeof(TRow);
+ Map map;
+ if (!this.cache.TryGetValue(rowType, out map))
+ {
+ map = CreateMap(rowType);
+ this.cache.Add(rowType, map);
+ }
+ var result = Activator.CreateInstance(rowType);
+ map(row, result);
+ return (TRow)result;
+ }
+
+ private static Map CreateMap(Type rowType)
+ {
+ var tuples = (from property in rowType.GetProperties()
+ let attribute =
(DataFrameColumnAttribute)property.GetCustomAttributes(typeof(DataFrameColumnAttribute),
true).SingleOrDefault()
+ where attribute != null
+ select Tuple.Create(attribute, property.GetSetMethod())).ToArray();
+ return (from, to) => Map(from, to, tuples);
+ }
+
+ private static void Map(DataFrameRow from, object to, Tuple<DataFrameColumnAttribute, MethodInfo>[]
tuples)
+ {
+ var names = from.DataFrame.ColumnNames;
+ foreach (var t in tuples)
+ {
+ var attribute = t.Item1;
+ var setter = t.Item2;
+ var index = attribute.GetIndex(names);
+ setter.Invoke(to, new object[] { from[index] });
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Devices/CharacterDeviceAdapter.cs b/rdotnet/R.NET/Devices/CharacterDeviceAdapter.cs
index 7183915..8615320 100644
--- a/rdotnet/R.NET/Devices/CharacterDeviceAdapter.cs
+++ b/rdotnet/R.NET/Devices/CharacterDeviceAdapter.cs
@@ -1,256 +1,261 @@
-using System;
+using RDotNet.Internals;
+using RDotNet.Internals.Unix;
+using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Text;
-using RDotNet.Internals;
-using RDotNet.Internals.Unix;
-using RDotNet.Internals.Windows;
namespace RDotNet.Devices
{
- internal class CharacterDeviceAdapter : IDisposable
- {
- private readonly ICharacterDevice device;
-
- private REngine engine;
-
- /// <summary>
- /// Creates an instance.
- /// </summary>
- /// <param name="device">The implementation.</param>
- public CharacterDeviceAdapter(ICharacterDevice device)
- {
- if (device == null)
- {
- throw new ArgumentNullException("device");
- }
- this.device = device;
- }
-
- /// <summary>
- /// Gets the implementation of <see cref="ICharacterDevice"/> interface.
- /// </summary>
- public ICharacterDevice Device
- {
- get { return this.device; }
- }
-
- private REngine Engine
- {
- get { return this.engine; }
- }
-
- #region IDisposable Members
-
- public void Dispose()
- {
- GC.KeepAlive(this);
- }
-
- #endregion
-
- internal void Install(REngine engine, StartupParameter parameter)
- {
- this.engine = engine;
- switch (Environment.OSVersion.Platform)
- {
- case PlatformID.Win32NT:
- SetupWindowsDevice(parameter);
- break;
- case PlatformID.MacOSX:
- case PlatformID.Unix:
- SetupUnixDevice();
- break;
- }
- }
-
- private void SetupWindowsDevice(StartupParameter parameter)
- {
- string rhome =
Marshal.PtrToStringAnsi(this.engine.GetFunction<getValue>("get_R_HOME")());
- parameter.start.rhome = Marshal.StringToHGlobalAnsi(ConvertSeparator(rhome));
- string home =
Marshal.PtrToStringAnsi(this.engine.GetFunction<getValue>("getRUser")());
- parameter.start.home = Marshal.StringToHGlobalAnsi(ConvertSeparator(home));
- parameter.start.CharacterMode = UiMode.LinkDll;
- parameter.start.ReadConsole = ReadConsole;
- parameter.start.WriteConsole = WriteConsole;
- parameter.start.WriteConsoleEx = WriteConsoleEx;
- parameter.start.CallBack = Callback;
- parameter.start.ShowMessage = ShowMessage;
- parameter.start.YesNoCancel = Ask;
- parameter.start.Busy = Busy;
- }
-
- private void SetupUnixDevice()
- {
- IntPtr suicidePointer = this.engine.DangerousGetHandle("ptr_R_Suicide");
- IntPtr newSuicide = Marshal.GetFunctionPointerForDelegate((ptr_R_Suicide)Suicide);
- Marshal.WriteIntPtr(suicidePointer, newSuicide);
- IntPtr showMessagePointer = this.engine.DangerousGetHandle("ptr_R_ShowMessage");
- IntPtr newShowMessage =
Marshal.GetFunctionPointerForDelegate((ptr_R_ShowMessage)ShowMessage);
- Marshal.WriteIntPtr(showMessagePointer, newShowMessage);
- IntPtr readConsolePointer = this.engine.DangerousGetHandle("ptr_R_ReadConsole");
- IntPtr newReadConsole =
Marshal.GetFunctionPointerForDelegate((ptr_R_ReadConsole)ReadConsole);
- Marshal.WriteIntPtr(readConsolePointer, newReadConsole);
- IntPtr writeConsolePointer = this.engine.DangerousGetHandle("ptr_R_WriteConsole");
- IntPtr newWriteConsole =
Marshal.GetFunctionPointerForDelegate((ptr_R_WriteConsole)WriteConsole);
- Marshal.WriteIntPtr(writeConsolePointer, newWriteConsole);
- IntPtr writeConsoleExPointer = this.engine.DangerousGetHandle("ptr_R_WriteConsoleEx");
- IntPtr newWriteConsoleEx =
Marshal.GetFunctionPointerForDelegate((ptr_R_WriteConsoleEx)WriteConsoleEx);
- Marshal.WriteIntPtr(writeConsoleExPointer, newWriteConsoleEx);
- IntPtr resetConsolePointer = this.engine.DangerousGetHandle("ptr_R_ResetConsole");
- IntPtr newResetConsole =
Marshal.GetFunctionPointerForDelegate((ptr_R_ResetConsole)ResetConsole);
- Marshal.WriteIntPtr(resetConsolePointer, newResetConsole);
- IntPtr flushConsolePointer = this.engine.DangerousGetHandle("ptr_R_FlushConsole");
- IntPtr newFlushConsole =
Marshal.GetFunctionPointerForDelegate((ptr_R_FlushConsole)FlushConsole);
- Marshal.WriteIntPtr(flushConsolePointer, newFlushConsole);
- IntPtr clearerrConsolePointer =
this.engine.DangerousGetHandle("ptr_R_ClearerrConsole");
- IntPtr newClearerrConsole =
Marshal.GetFunctionPointerForDelegate((ptr_R_ClearerrConsole)ClearErrorConsole);
- Marshal.WriteIntPtr(clearerrConsolePointer, newClearerrConsole);
- IntPtr busyPointer = this.engine.DangerousGetHandle("ptr_R_Busy");
- IntPtr newBusy = Marshal.GetFunctionPointerForDelegate((ptr_R_Busy)Busy);
- Marshal.WriteIntPtr(busyPointer, newBusy);
- IntPtr cleanUpPointer = this.engine.DangerousGetHandle("ptr_R_CleanUp");
- IntPtr newCleanUp = Marshal.GetFunctionPointerForDelegate((ptr_R_CleanUp)CleanUp);
- Marshal.WriteIntPtr(cleanUpPointer, newCleanUp);
- IntPtr showFilesPointer = this.engine.DangerousGetHandle("ptr_R_ShowFiles");
- IntPtr newShowFiles =
Marshal.GetFunctionPointerForDelegate((ptr_R_ShowFiles)ShowFiles);
- Marshal.WriteIntPtr(showFilesPointer, newShowFiles);
- IntPtr chooseFilePointer = this.engine.DangerousGetHandle("ptr_R_ChooseFile");
- IntPtr newChooseFile =
Marshal.GetFunctionPointerForDelegate((ptr_R_ChooseFile)ChooseFile);
- Marshal.WriteIntPtr(chooseFilePointer, newChooseFile);
- IntPtr editFilePointer = this.engine.DangerousGetHandle("ptr_R_EditFile");
- IntPtr newEditFile = Marshal.GetFunctionPointerForDelegate((ptr_R_EditFile)EditFile);
- Marshal.WriteIntPtr(editFilePointer, newEditFile);
- IntPtr loadHistoryPointer = this.engine.DangerousGetHandle("ptr_R_loadhistory");
- IntPtr newLoadHistory =
Marshal.GetFunctionPointerForDelegate((ptr_R_loadhistory)LoadHistory);
- Marshal.WriteIntPtr(loadHistoryPointer, newLoadHistory);
- IntPtr saveHistoryPointer = this.engine.DangerousGetHandle("ptr_R_savehistory");
- IntPtr newSaveHistory =
Marshal.GetFunctionPointerForDelegate((ptr_R_savehistory)SaveHistory);
- Marshal.WriteIntPtr(saveHistoryPointer, newSaveHistory);
- IntPtr addHistoryPointer = this.engine.DangerousGetHandle("ptr_R_addhistory");
- IntPtr newAddHistory =
Marshal.GetFunctionPointerForDelegate((ptr_R_addhistory)AddHistory);
- Marshal.WriteIntPtr(addHistoryPointer, newAddHistory);
- }
-
- private static string ConvertSeparator(string path)
- {
- return path.Replace(Path.DirectorySeparatorChar, '/');
- }
-
- private bool ReadConsole(string prompt, StringBuilder buffer, int count, bool history)
- {
- buffer.Clear();
- string input = Device.ReadConsole(prompt, count, history);
- buffer.Append(input).Append("\n"); // input must end with '\n\0' ('\0' is appended
during marshalling).
- return input != null;
- }
-
- private void WriteConsole(string buffer, int length)
- {
- WriteConsoleEx(buffer, length, ConsoleOutputType.None);
- }
-
- private void WriteConsoleEx(string buffer, int length, ConsoleOutputType outputType)
- {
- Device.WriteConsole(buffer, length, outputType);
- }
-
- private void ShowMessage(string message)
- {
- Device.ShowMessage(message);
- }
-
- private void Busy(BusyType which)
- {
- Device.Busy(which);
- }
-
- private void Callback()
- {
- Device.Callback();
- }
-
- private YesNoCancel Ask(string question)
- {
- return Device.Ask(question);
- }
-
- private void Suicide(string message)
- {
- Device.Suicide(message);
- }
-
- private void ResetConsole()
- {
- Device.ResetConsole();
- }
-
- private void FlushConsole()
- {
- Device.FlushConsole();
- }
-
- private void ClearErrorConsole()
- {
- Device.ClearErrorConsole();
- }
-
- private void CleanUp(StartupSaveAction saveAction, int status, bool runLast)
- {
- Device.CleanUp(saveAction, status, runLast);
- }
-
- private bool ShowFiles(int count, string[] files, string[] headers, string title, bool
delete, string pager)
- {
- return Device.ShowFiles(files, headers, title, delete, pager);
- }
-
- private int ChooseFile(bool create, StringBuilder buffer, int length)
- {
- string path = Device.ChooseFile(create);
- return path == null ? 0 : Encoding.ASCII.GetByteCount(path);
- }
-
- private void EditFile(string file)
- {
- Device.EditFile(file);
- }
-
- private IntPtr LoadHistory(IntPtr call, IntPtr operation, IntPtr args, IntPtr environment)
- {
- var c = new Language(Engine, call);
- var op = new SymbolicExpression(Engine, operation);
- var arglist = new Pairlist(Engine, args);
- var env = new REnvironment(Engine, environment);
- SymbolicExpression result = Device.LoadHistory(c, op, arglist, env);
- return result.DangerousGetHandle();
- }
-
- private IntPtr SaveHistory(IntPtr call, IntPtr operation, IntPtr args, IntPtr environment)
- {
- var c = new Language(Engine, call);
- var op = new SymbolicExpression(Engine, operation);
- var arglist = new Pairlist(Engine, args);
- var env = new REnvironment(Engine, environment);
- SymbolicExpression result = Device.SaveHistory(c, op, arglist, env);
- return result.DangerousGetHandle();
- }
-
- private IntPtr AddHistory(IntPtr call, IntPtr operation, IntPtr args, IntPtr environment)
- {
- var c = new Language(Engine, call);
- var op = new SymbolicExpression(Engine, operation);
- var arglist = new Pairlist(Engine, args);
- var env = new REnvironment(Engine, environment);
- SymbolicExpression result = Device.AddHistory(c, op, arglist, env);
- return result.DangerousGetHandle();
- }
-
- #region Nested type: getValue
-
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- private delegate IntPtr getValue();
-
- #endregion
- }
-}
+ internal class CharacterDeviceAdapter : IDisposable
+ {
+ private readonly ICharacterDevice device;
+
+ private REngine engine;
+
+ /// <summary>
+ /// Creates an instance.
+ /// </summary>
+ /// <param name="device">The implementation.</param>
+ public CharacterDeviceAdapter(ICharacterDevice device)
+ {
+ if (device == null)
+ {
+ throw new ArgumentNullException("device");
+ }
+ this.device = device;
+ }
+
+ /// <summary>
+ /// Gets the implementation of <see cref="ICharacterDevice"/> interface.
+ /// </summary>
+ public ICharacterDevice Device
+ {
+ get { return this.device; }
+ }
+
+ private REngine Engine
+ {
+ get { return this.engine; }
+ }
+
+ #region IDisposable Members
+
+ public void Dispose()
+ {
+ GC.KeepAlive(this);
+ }
+
+ #endregion IDisposable Members
+
+ internal void Install(REngine engine, StartupParameter parameter)
+ {
+ this.engine = engine;
+ switch (Environment.OSVersion.Platform)
+ {
+ case PlatformID.Win32NT:
+ SetupWindowsDevice(parameter);
+ break;
+
+ case PlatformID.MacOSX:
+ case PlatformID.Unix:
+ SetupUnixDevice();
+ break;
+ }
+ }
+
+ private void SetupWindowsDevice(StartupParameter parameter)
+ {
+ if (parameter.RHome == null)
+ {
+ string rhome = Marshal.PtrToStringAnsi(this.engine.GetFunction<getValue>("get_R_HOME")());
+ parameter.start.rhome = Marshal.StringToHGlobalAnsi(ConvertSeparator(rhome));
+ }
+ if (parameter.Home == null)
+ {
+ string home = Marshal.PtrToStringAnsi(this.engine.GetFunction<getValue>("getRUser")());
+ parameter.start.home = Marshal.StringToHGlobalAnsi(ConvertSeparator(home));
+ }
+ parameter.start.ReadConsole = ReadConsole;
+ parameter.start.WriteConsole = WriteConsole;
+ parameter.start.WriteConsoleEx = WriteConsoleEx;
+ parameter.start.CallBack = Callback;
+ parameter.start.ShowMessage = ShowMessage;
+ parameter.start.YesNoCancel = Ask;
+ parameter.start.Busy = Busy;
+ }
+
+ private void SetupUnixDevice()
+ {
+ IntPtr suicidePointer = this.engine.DangerousGetHandle("ptr_R_Suicide");
+ IntPtr newSuicide = Marshal.GetFunctionPointerForDelegate((ptr_R_Suicide)Suicide);
+ Marshal.WriteIntPtr(suicidePointer, newSuicide);
+ IntPtr showMessagePointer = this.engine.DangerousGetHandle("ptr_R_ShowMessage");
+ IntPtr newShowMessage = Marshal.GetFunctionPointerForDelegate((ptr_R_ShowMessage)ShowMessage);
+ Marshal.WriteIntPtr(showMessagePointer, newShowMessage);
+ IntPtr readConsolePointer = this.engine.DangerousGetHandle("ptr_R_ReadConsole");
+ IntPtr newReadConsole = Marshal.GetFunctionPointerForDelegate((ptr_R_ReadConsole)ReadConsole);
+ Marshal.WriteIntPtr(readConsolePointer, newReadConsole);
+ IntPtr writeConsolePointer = this.engine.DangerousGetHandle("ptr_R_WriteConsole");
+ IntPtr newWriteConsole = Marshal.GetFunctionPointerForDelegate((ptr_R_WriteConsole)WriteConsole);
+ Marshal.WriteIntPtr(writeConsolePointer, newWriteConsole);
+ IntPtr writeConsoleExPointer = this.engine.DangerousGetHandle("ptr_R_WriteConsoleEx");
+ IntPtr newWriteConsoleEx =
Marshal.GetFunctionPointerForDelegate((ptr_R_WriteConsoleEx)WriteConsoleEx);
+ Marshal.WriteIntPtr(writeConsoleExPointer, newWriteConsoleEx);
+ IntPtr resetConsolePointer = this.engine.DangerousGetHandle("ptr_R_ResetConsole");
+ IntPtr newResetConsole = Marshal.GetFunctionPointerForDelegate((ptr_R_ResetConsole)ResetConsole);
+ Marshal.WriteIntPtr(resetConsolePointer, newResetConsole);
+ IntPtr flushConsolePointer = this.engine.DangerousGetHandle("ptr_R_FlushConsole");
+ IntPtr newFlushConsole = Marshal.GetFunctionPointerForDelegate((ptr_R_FlushConsole)FlushConsole);
+ Marshal.WriteIntPtr(flushConsolePointer, newFlushConsole);
+ IntPtr clearerrConsolePointer = this.engine.DangerousGetHandle("ptr_R_ClearerrConsole");
+ IntPtr newClearerrConsole =
Marshal.GetFunctionPointerForDelegate((ptr_R_ClearerrConsole)ClearErrorConsole);
+ Marshal.WriteIntPtr(clearerrConsolePointer, newClearerrConsole);
+ IntPtr busyPointer = this.engine.DangerousGetHandle("ptr_R_Busy");
+ IntPtr newBusy = Marshal.GetFunctionPointerForDelegate((ptr_R_Busy)Busy);
+ Marshal.WriteIntPtr(busyPointer, newBusy);
+ IntPtr cleanUpPointer = this.engine.DangerousGetHandle("ptr_R_CleanUp");
+ IntPtr newCleanUp = Marshal.GetFunctionPointerForDelegate((ptr_R_CleanUp)CleanUp);
+ Marshal.WriteIntPtr(cleanUpPointer, newCleanUp);
+ IntPtr showFilesPointer = this.engine.DangerousGetHandle("ptr_R_ShowFiles");
+ IntPtr newShowFiles = Marshal.GetFunctionPointerForDelegate((ptr_R_ShowFiles)ShowFiles);
+ Marshal.WriteIntPtr(showFilesPointer, newShowFiles);
+ IntPtr chooseFilePointer = this.engine.DangerousGetHandle("ptr_R_ChooseFile");
+ IntPtr newChooseFile = Marshal.GetFunctionPointerForDelegate((ptr_R_ChooseFile)ChooseFile);
+ Marshal.WriteIntPtr(chooseFilePointer, newChooseFile);
+ IntPtr editFilePointer = this.engine.DangerousGetHandle("ptr_R_EditFile");
+ IntPtr newEditFile = Marshal.GetFunctionPointerForDelegate((ptr_R_EditFile)EditFile);
+ Marshal.WriteIntPtr(editFilePointer, newEditFile);
+ IntPtr loadHistoryPointer = this.engine.DangerousGetHandle("ptr_R_loadhistory");
+ IntPtr newLoadHistory = Marshal.GetFunctionPointerForDelegate((ptr_R_loadhistory)LoadHistory);
+ Marshal.WriteIntPtr(loadHistoryPointer, newLoadHistory);
+ IntPtr saveHistoryPointer = this.engine.DangerousGetHandle("ptr_R_savehistory");
+ IntPtr newSaveHistory = Marshal.GetFunctionPointerForDelegate((ptr_R_savehistory)SaveHistory);
+ Marshal.WriteIntPtr(saveHistoryPointer, newSaveHistory);
+ IntPtr addHistoryPointer = this.engine.DangerousGetHandle("ptr_R_addhistory");
+ IntPtr newAddHistory = Marshal.GetFunctionPointerForDelegate((ptr_R_addhistory)AddHistory);
+ Marshal.WriteIntPtr(addHistoryPointer, newAddHistory);
+ }
+
+ private static string ConvertSeparator(string path)
+ {
+ return path.Replace(Path.DirectorySeparatorChar, '/');
+ }
+
+ private bool ReadConsole(string prompt, StringBuilder buffer, int count, bool history)
+ {
+ buffer.Clear();
+ string input = Device.ReadConsole(prompt, count, history);
+ buffer.Append(input).Append("\n"); // input must end with '\n\0' ('\0' is appended during
marshalling).
+ return input != null;
+ }
+
+ private void WriteConsole(string buffer, int length)
+ {
+ WriteConsoleEx(buffer, length, ConsoleOutputType.None);
+ }
+
+ private void WriteConsoleEx(string buffer, int length, ConsoleOutputType outputType)
+ {
+ Device.WriteConsole(buffer, length, outputType);
+ }
+
+ private void ShowMessage(string message)
+ {
+ Device.ShowMessage(message);
+ }
+
+ private void Busy(BusyType which)
+ {
+ Device.Busy(which);
+ }
+
+ private void Callback()
+ {
+ Device.Callback();
+ }
+
+ private YesNoCancel Ask(string question)
+ {
+ return Device.Ask(question);
+ }
+
+ private void Suicide(string message)
+ {
+ Device.Suicide(message);
+ }
+
+ private void ResetConsole()
+ {
+ Device.ResetConsole();
+ }
+
+ private void FlushConsole()
+ {
+ Device.FlushConsole();
+ }
+
+ private void ClearErrorConsole()
+ {
+ Device.ClearErrorConsole();
+ }
+
+ private void CleanUp(StartupSaveAction saveAction, int status, bool runLast)
+ {
+ Device.CleanUp(saveAction, status, runLast);
+ }
+
+ private bool ShowFiles(int count, string[] files, string[] headers, string title, bool delete, string
pager)
+ {
+ return Device.ShowFiles(files, headers, title, delete, pager);
+ }
+
+ private int ChooseFile(bool create, StringBuilder buffer, int length)
+ {
+ string path = Device.ChooseFile(create);
+ return path == null ? 0 : Encoding.ASCII.GetByteCount(path);
+ }
+
+ private void EditFile(string file)
+ {
+ Device.EditFile(file);
+ }
+
+ private IntPtr LoadHistory(IntPtr call, IntPtr operation, IntPtr args, IntPtr environment)
+ {
+ var c = new Language(Engine, call);
+ var op = new SymbolicExpression(Engine, operation);
+ var arglist = new Pairlist(Engine, args);
+ var env = new REnvironment(Engine, environment);
+ SymbolicExpression result = Device.LoadHistory(c, op, arglist, env);
+ return result.DangerousGetHandle();
+ }
+
+ private IntPtr SaveHistory(IntPtr call, IntPtr operation, IntPtr args, IntPtr environment)
+ {
+ var c = new Language(Engine, call);
+ var op = new SymbolicExpression(Engine, operation);
+ var arglist = new Pairlist(Engine, args);
+ var env = new REnvironment(Engine, environment);
+ SymbolicExpression result = Device.SaveHistory(c, op, arglist, env);
+ return result.DangerousGetHandle();
+ }
+
+ private IntPtr AddHistory(IntPtr call, IntPtr operation, IntPtr args, IntPtr environment)
+ {
+ var c = new Language(Engine, call);
+ var op = new SymbolicExpression(Engine, operation);
+ var arglist = new Pairlist(Engine, args);
+ var env = new REnvironment(Engine, environment);
+ SymbolicExpression result = Device.AddHistory(c, op, arglist, env);
+ return result.DangerousGetHandle();
+ }
+
+ #region Nested type: getValue
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ private delegate IntPtr getValue();
+
+ #endregion Nested type: getValue
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Devices/ConsoleDevice.cs b/rdotnet/R.NET/Devices/ConsoleDevice.cs
index 094b5ff..f0fbfbd 100644
--- a/rdotnet/R.NET/Devices/ConsoleDevice.cs
+++ b/rdotnet/R.NET/Devices/ConsoleDevice.cs
@@ -1,141 +1,143 @@
-using System;
+using RDotNet.Internals;
+using System;
using System.IO;
-using RDotNet.Internals;
namespace RDotNet.Devices
{
- /// <summary>
- /// The default IO device.
- /// </summary>
- public class ConsoleDevice : ICharacterDevice
- {
- #region ICharacterDevice Members
-
- public string ReadConsole(string prompt, int capacity, bool history)
- {
- Console.Write(prompt);
- return Console.ReadLine();
- }
-
- public void WriteConsole(string output, int length, ConsoleOutputType outputType)
- {
- Console.Write(output);
- }
-
- public void ShowMessage(string message)
- {
- Console.Write(message);
- }
-
- public void Busy(BusyType which)
- {}
-
- public void Callback()
- {}
-
- public YesNoCancel Ask(string question)
- {
- Console.Write("{0} [y/n/c]: ", question);
- string input = Console.ReadLine();
- if (!string.IsNullOrEmpty(input))
- {
- switch (Char.ToLower(input[0]))
- {
- case 'y':
- return YesNoCancel.Yes;
- case 'n':
- return YesNoCancel.No;
- case 'c':
- return YesNoCancel.Cancel;
- }
- }
- return default(YesNoCancel);
- }
-
- public void Suicide(string message)
- {
- Console.Error.WriteLine(message);
- CleanUp(StartupSaveAction.Suicide, 2, false);
- }
-
- public void ResetConsole()
- {
- Console.Clear();
- }
-
- public void FlushConsole()
- {
- Console.Write(string.Empty);
- }
-
- public void ClearErrorConsole()
- {
- Console.Clear();
- }
-
- public void CleanUp(StartupSaveAction saveAction, int status, bool runLast)
- {
- Environment.Exit(status);
- }
-
- public bool ShowFiles(string[] files, string[] headers, string title, bool delete, string
pager)
- {
- int count = files.Length;
- for (int index = 0; index < count; index++)
- {
- try
- {
- Console.WriteLine(headers);
- Console.WriteLine(File.ReadAllText(files[index]));
- if (delete)
- {
- File.Delete(files[index]);
- }
- }
- catch (IOException)
- {
- return false;
- }
- }
- return true;
- }
-
- public string ChooseFile(bool create)
- {
- string path = Console.ReadLine();
- if (string.IsNullOrWhiteSpace(path))
- {
- return null;
- }
- if (create && !File.Exists(path))
- {
- File.Create(path).Close();
- }
- if (File.Exists(path))
- {
- return path;
- }
- return null;
- }
-
- public void EditFile(string file)
- {}
-
- public SymbolicExpression LoadHistory(Language call, SymbolicExpression operation, Pairlist
args, REnvironment environment)
- {
- return environment.Engine.NilValue;
- }
-
- public SymbolicExpression SaveHistory(Language call, SymbolicExpression operation, Pairlist
args, REnvironment environment)
- {
- return environment.Engine.NilValue;
- }
-
- public SymbolicExpression AddHistory(Language call, SymbolicExpression operation, Pairlist
args, REnvironment environment)
- {
- return environment.Engine.NilValue;
- }
-
- #endregion
- }
-}
+ /// <summary>
+ /// The default IO device.
+ /// </summary>
+ public class ConsoleDevice : ICharacterDevice
+ {
+ #region ICharacterDevice Members
+
+ public string ReadConsole(string prompt, int capacity, bool history)
+ {
+ Console.Write(prompt);
+ return Console.ReadLine();
+ }
+
+ public void WriteConsole(string output, int length, ConsoleOutputType outputType)
+ {
+ Console.Write(output);
+ }
+
+ public void ShowMessage(string message)
+ {
+ Console.Write(message);
+ }
+
+ public void Busy(BusyType which)
+ { }
+
+ public void Callback()
+ { }
+
+ public YesNoCancel Ask(string question)
+ {
+ Console.Write("{0} [y/n/c]: ", question);
+ string input = Console.ReadLine();
+ if (!string.IsNullOrEmpty(input))
+ {
+ switch (Char.ToLower(input[0]))
+ {
+ case 'y':
+ return YesNoCancel.Yes;
+
+ case 'n':
+ return YesNoCancel.No;
+
+ case 'c':
+ return YesNoCancel.Cancel;
+ }
+ }
+ return default(YesNoCancel);
+ }
+
+ public void Suicide(string message)
+ {
+ Console.Error.WriteLine(message);
+ CleanUp(StartupSaveAction.Suicide, 2, false);
+ }
+
+ public void ResetConsole()
+ {
+ Console.Clear();
+ }
+
+ public void FlushConsole()
+ {
+ Console.Write(string.Empty);
+ }
+
+ public void ClearErrorConsole()
+ {
+ Console.Clear();
+ }
+
+ public void CleanUp(StartupSaveAction saveAction, int status, bool runLast)
+ {
+ Environment.Exit(status);
+ }
+
+ public bool ShowFiles(string[] files, string[] headers, string title, bool delete, string pager)
+ {
+ int count = files.Length;
+ for (int index = 0; index < count; index++)
+ {
+ try
+ {
+ Console.WriteLine(headers);
+ Console.WriteLine(File.ReadAllText(files[index]));
+ if (delete)
+ {
+ File.Delete(files[index]);
+ }
+ }
+ catch (IOException)
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ public string ChooseFile(bool create)
+ {
+ string path = Console.ReadLine();
+ if (string.IsNullOrWhiteSpace(path))
+ {
+ return null;
+ }
+ if (create && !File.Exists(path))
+ {
+ File.Create(path).Close();
+ }
+ if (File.Exists(path))
+ {
+ return path;
+ }
+ return null;
+ }
+
+ public void EditFile(string file)
+ { }
+
+ public SymbolicExpression LoadHistory(Language call, SymbolicExpression operation, Pairlist args,
REnvironment environment)
+ {
+ return environment.Engine.NilValue;
+ }
+
+ public SymbolicExpression SaveHistory(Language call, SymbolicExpression operation, Pairlist args,
REnvironment environment)
+ {
+ return environment.Engine.NilValue;
+ }
+
+ public SymbolicExpression AddHistory(Language call, SymbolicExpression operation, Pairlist args,
REnvironment environment)
+ {
+ return environment.Engine.NilValue;
+ }
+
+ #endregion ICharacterDevice Members
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Devices/ICharacterDevice.cs b/rdotnet/R.NET/Devices/ICharacterDevice.cs
index 476f4c2..be3a00c 100644
--- a/rdotnet/R.NET/Devices/ICharacterDevice.cs
+++ b/rdotnet/R.NET/Devices/ICharacterDevice.cs
@@ -2,141 +2,141 @@
namespace RDotNet.Devices
{
- /// <summary>
- /// A console class handles user's inputs and outputs.
- /// </summary>
- public interface ICharacterDevice
- {
- /// <summary>
- /// Read input from console.
- /// </summary>
- /// <param name="prompt">The prompt message.</param>
- /// <param name="capacity">The buffer's capacity in byte.</param>
- /// <param name="history">Whether the input should be added to any command history.</param>
- /// <returns>The input.</returns>
- string ReadConsole(string prompt, int capacity, bool history);
-
- /// <summary>
- /// Write output on console.
- /// </summary>
- /// <param name="output">The output message</param>
- /// <param name="length">The output's length in byte.</param>
- /// <param name="outputType">The output type.</param>
- void WriteConsole(string output, int length, ConsoleOutputType outputType);
-
- /// <summary>
- /// Displays the message.
- /// </summary>
- /// <remarks>
- /// It should be brought to the user's attention immediately.
- /// </remarks>
- /// <param name="message">The message.</param>
- void ShowMessage(string message);
-
- /// <summary>
- /// Invokes actions.
- /// </summary>
- /// <param name="which">The state.</param>
- void Busy(BusyType which);
-
- /// <summary>
- /// Callback function.
- /// </summary>
- void Callback();
-
- /// <summary>
- /// Asks user's decision.
- /// </summary>
- /// <param name="question">The question.</param>
- /// <returns>User's decision.</returns>
- YesNoCancel Ask(string question);
-
- /// <summary>
- /// Abort R environment itself as soon as possible.
- /// </summary>
- /// <remarks>
- /// Only Unix.
- /// </remarks>
- /// <param name="message">The message.</param>
- void Suicide(string message);
-
- /// <summary>
- /// Clear the console.
- /// </summary>
- /// <remarks>
- /// Only Unix.
- /// </remarks>
- void ResetConsole();
-
- /// <summary>
- /// Flush the console.
- /// </summary>
- /// <remarks>
- /// Only Unix.
- /// </remarks>
- void FlushConsole();
-
- /// <summary>
- /// Clear the error console.
- /// </summary>
- /// <remarks>
- /// Only Unix.
- /// </remarks>
- void ClearErrorConsole();
-
- /// <summary>
- /// Invokes any actions which occur at system termination.
- /// </summary>
- /// <remarks>
- /// Only Unix.
- /// </remarks>
- /// <param name="saveAction">The save type.</param>
- /// <param name="status">Exit code.</param>
- /// <param name="runLast">Whether R should execute <code>.Last</code>.</param>
- void CleanUp(StartupSaveAction saveAction, int status, bool runLast);
-
- /// <summary>
- /// Displays the contents of files.
- /// </summary>
- /// <remarks>
- /// Only Unix.
- /// </remarks>
- /// <param name="files">The file paths.</param>
- /// <param name="headers">The header before the contents is printed.</param>
- /// <param name="title">The window title.</param>
- /// <param name="delete">Whether the file will be deleted.</param>
- /// <param name="pager">The pager used.</param>
- /// <returns></returns>
- bool ShowFiles(string[] files, string[] headers, string title, bool delete, string pager);
-
- /// <summary>
- /// Chooses a file.
- /// </summary>
- /// <remarks>
- /// Only Unix.
- /// </remarks>
- /// <param name="create">To be created.</param>
- /// <returns>The length of input.</returns>
- string ChooseFile(bool create);
-
- /// <remarks>
- /// Only Unix.
- /// </remarks>
- void EditFile(string file);
-
- /// <remarks>
- /// Only Unix.
- /// </remarks>
- SymbolicExpression LoadHistory(Language call, SymbolicExpression operation, Pairlist args,
REnvironment environment);
-
- /// <remarks>
- /// Only Unix.
- /// </remarks>
- SymbolicExpression SaveHistory(Language call, SymbolicExpression operation, Pairlist args,
REnvironment environment);
-
- /// <remarks>
- /// Only Unix.
- /// </remarks>
- SymbolicExpression AddHistory(Language call, SymbolicExpression operation, Pairlist args,
REnvironment environment);
- }
-}
+ /// <summary>
+ /// A console class handles user's inputs and outputs.
+ /// </summary>
+ public interface ICharacterDevice
+ {
+ /// <summary>
+ /// Read input from console.
+ /// </summary>
+ /// <param name="prompt">The prompt message.</param>
+ /// <param name="capacity">The buffer's capacity in byte.</param>
+ /// <param name="history">Whether the input should be added to any command history.</param>
+ /// <returns>The input.</returns>
+ string ReadConsole(string prompt, int capacity, bool history);
+
+ /// <summary>
+ /// Write output on console.
+ /// </summary>
+ /// <param name="output">The output message</param>
+ /// <param name="length">The output's length in byte.</param>
+ /// <param name="outputType">The output type.</param>
+ void WriteConsole(string output, int length, ConsoleOutputType outputType);
+
+ /// <summary>
+ /// Displays the message.
+ /// </summary>
+ /// <remarks>
+ /// It should be brought to the user's attention immediately.
+ /// </remarks>
+ /// <param name="message">The message.</param>
+ void ShowMessage(string message);
+
+ /// <summary>
+ /// Invokes actions.
+ /// </summary>
+ /// <param name="which">The state.</param>
+ void Busy(BusyType which);
+
+ /// <summary>
+ /// Callback function.
+ /// </summary>
+ void Callback();
+
+ /// <summary>
+ /// Asks user's decision.
+ /// </summary>
+ /// <param name="question">The question.</param>
+ /// <returns>User's decision.</returns>
+ YesNoCancel Ask(string question);
+
+ /// <summary>
+ /// Abort R environment itself as soon as possible.
+ /// </summary>
+ /// <remarks>
+ /// Only Unix.
+ /// </remarks>
+ /// <param name="message">The message.</param>
+ void Suicide(string message);
+
+ /// <summary>
+ /// Clear the console.
+ /// </summary>
+ /// <remarks>
+ /// Only Unix.
+ /// </remarks>
+ void ResetConsole();
+
+ /// <summary>
+ /// Flush the console.
+ /// </summary>
+ /// <remarks>
+ /// Only Unix.
+ /// </remarks>
+ void FlushConsole();
+
+ /// <summary>
+ /// Clear the error console.
+ /// </summary>
+ /// <remarks>
+ /// Only Unix.
+ /// </remarks>
+ void ClearErrorConsole();
+
+ /// <summary>
+ /// Invokes any actions which occur at system termination.
+ /// </summary>
+ /// <remarks>
+ /// Only Unix.
+ /// </remarks>
+ /// <param name="saveAction">The save type.</param>
+ /// <param name="status">Exit code.</param>
+ /// <param name="runLast">Whether R should execute <code>.Last</code>.</param>
+ void CleanUp(StartupSaveAction saveAction, int status, bool runLast);
+
+ /// <summary>
+ /// Displays the contents of files.
+ /// </summary>
+ /// <remarks>
+ /// Only Unix.
+ /// </remarks>
+ /// <param name="files">The file paths.</param>
+ /// <param name="headers">The header before the contents is printed.</param>
+ /// <param name="title">The window title.</param>
+ /// <param name="delete">Whether the file will be deleted.</param>
+ /// <param name="pager">The pager used.</param>
+ /// <returns></returns>
+ bool ShowFiles(string[] files, string[] headers, string title, bool delete, string pager);
+
+ /// <summary>
+ /// Chooses a file.
+ /// </summary>
+ /// <remarks>
+ /// Only Unix.
+ /// </remarks>
+ /// <param name="create">To be created.</param>
+ /// <returns>The length of input.</returns>
+ string ChooseFile(bool create);
+
+ /// <remarks>
+ /// Only Unix.
+ /// </remarks>
+ void EditFile(string file);
+
+ /// <remarks>
+ /// Only Unix.
+ /// </remarks>
+ SymbolicExpression LoadHistory(Language call, SymbolicExpression operation, Pairlist args,
REnvironment environment);
+
+ /// <remarks>
+ /// Only Unix.
+ /// </remarks>
+ SymbolicExpression SaveHistory(Language call, SymbolicExpression operation, Pairlist args,
REnvironment environment);
+
+ /// <remarks>
+ /// Only Unix.
+ /// </remarks>
+ SymbolicExpression AddHistory(Language call, SymbolicExpression operation, Pairlist args, REnvironment
environment);
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Devices/NullCharacterDevice.cs b/rdotnet/R.NET/Devices/NullCharacterDevice.cs
index c0eb773..a10985b 100644
--- a/rdotnet/R.NET/Devices/NullCharacterDevice.cs
+++ b/rdotnet/R.NET/Devices/NullCharacterDevice.cs
@@ -1,84 +1,84 @@
-using System;
-using RDotNet.Internals;
+using RDotNet.Internals;
+using System;
namespace RDotNet.Devices
{
- /// <summary>
- /// The default IO device.
- /// </summary>
- public class NullCharacterDevice : ICharacterDevice
- {
- #region ICharacterDevice Members
-
- public string ReadConsole(string prompt, int capacity, bool history)
- {
- return null;
- }
-
- public void WriteConsole(string output, int length, ConsoleOutputType outputType)
- {}
-
- public void ShowMessage(string message)
- {}
-
- public void Busy(BusyType which)
- {}
-
- public void Callback()
- {}
-
- public YesNoCancel Ask(string question)
- {
- return default(YesNoCancel);
- }
-
- public void Suicide(string message)
- {
- CleanUp(StartupSaveAction.Suicide, 2, false);
- }
-
- public void ResetConsole()
- {}
-
- public void FlushConsole()
- {}
-
- public void ClearErrorConsole()
- {}
-
- public void CleanUp(StartupSaveAction saveAction, int status, bool runLast)
- {
- Environment.Exit(status);
- }
-
- public bool ShowFiles(string[] files, string[] headers, string title, bool delete, string
pager)
- {
- return false;
- }
-
- public string ChooseFile(bool create)
- {
- return null;
- }
-
- public void EditFile(string file)
- {}
-
- public SymbolicExpression LoadHistory(Language call, SymbolicExpression operation, Pairlist
args, REnvironment environment)
- {
- return environment.Engine.NilValue;
- }
-
- public SymbolicExpression SaveHistory(Language call, SymbolicExpression operation, Pairlist
args, REnvironment environment)
- {
- return environment.Engine.NilValue;
- }
-
- public SymbolicExpression AddHistory(Language call, SymbolicExpression operation, Pairlist
args, REnvironment environment)
- {
- return environment.Engine.NilValue;
- }
-
- #endregion
- }
-}
+ /// <summary>
+ /// The default IO device.
+ /// </summary>
+ public class NullCharacterDevice : ICharacterDevice
+ {
+ #region ICharacterDevice Members
+
+ public string ReadConsole(string prompt, int capacity, bool history)
+ {
+ return null;
+ }
+
+ public void WriteConsole(string output, int length, ConsoleOutputType outputType)
+ { }
+
+ public void ShowMessage(string message)
+ { }
+
+ public void Busy(BusyType which)
+ { }
+
+ public void Callback()
+ { }
+
+ public YesNoCancel Ask(string question)
+ {
+ return default(YesNoCancel);
+ }
+
+ public void Suicide(string message)
+ {
+ CleanUp(StartupSaveAction.Suicide, 2, false);
+ }
+
+ public void ResetConsole()
+ { }
+
+ public void FlushConsole()
+ { }
+
+ public void ClearErrorConsole()
+ { }
+
+ public void CleanUp(StartupSaveAction saveAction, int status, bool runLast)
+ {
+ Environment.Exit(status);
+ }
+
+ public bool ShowFiles(string[] files, string[] headers, string title, bool delete, string pager)
+ {
+ return false;
+ }
+
+ public string ChooseFile(bool create)
+ {
+ return null;
+ }
+
+ public void EditFile(string file)
+ { }
+
+ public SymbolicExpression LoadHistory(Language call, SymbolicExpression operation, Pairlist args,
REnvironment environment)
+ {
+ return environment.Engine.NilValue;
+ }
+
+ public SymbolicExpression SaveHistory(Language call, SymbolicExpression operation, Pairlist args,
REnvironment environment)
+ {
+ return environment.Engine.NilValue;
+ }
+
+ public SymbolicExpression AddHistory(Language call, SymbolicExpression operation, Pairlist args,
REnvironment environment)
+ {
+ return environment.Engine.NilValue;
+ }
+
+ #endregion ICharacterDevice Members
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Diagnostics/DataFrameColumnDisplay.cs
b/rdotnet/R.NET/Diagnostics/DataFrameColumnDisplay.cs
new file mode 100644
index 0000000..496e1ef
--- /dev/null
+++ b/rdotnet/R.NET/Diagnostics/DataFrameColumnDisplay.cs
@@ -0,0 +1,50 @@
+using System;
+using System.Diagnostics;
+using System.Linq;
+
+namespace RDotNet.Diagnostics
+{
+ [DebuggerDisplay("{Display,nq}")]
+ internal class DataFrameColumnDisplay
+ {
+ [DebuggerBrowsable(DebuggerBrowsableState.Never)]
+ private readonly DataFrame data;
+
+ [DebuggerBrowsable(DebuggerBrowsableState.Never)]
+ private readonly int columnIndex;
+
+ public DataFrameColumnDisplay(DataFrame data, int columnIndex)
+ {
+ this.data = data;
+ this.columnIndex = columnIndex;
+ }
+
+ [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)]
+ public object[] Value
+ {
+ get
+ {
+ var column = this.data[this.columnIndex];
+ return column.IsFactor() ? column.AsFactor().GetFactors() : column.ToArray();
+ }
+ }
+
+ [DebuggerBrowsable(DebuggerBrowsableState.Never)]
+ public string Display
+ {
+ get
+ {
+ var column = this.data[this.columnIndex];
+ var names = this.data.ColumnNames;
+ if (names == null || names[this.columnIndex] == null)
+ {
+ return String.Format("NA ({0})", column.Type);
+ }
+ else
+ {
+ return String.Format("\"{0}\" ({1})", names[this.columnIndex], column.Type);
+ }
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Diagnostics/DataFrameDebugView.cs b/rdotnet/R.NET/Diagnostics/DataFrameDebugView.cs
new file mode 100644
index 0000000..e38d73e
--- /dev/null
+++ b/rdotnet/R.NET/Diagnostics/DataFrameDebugView.cs
@@ -0,0 +1,26 @@
+using System.Diagnostics;
+using System.Linq;
+
+namespace RDotNet.Diagnostics
+{
+ internal class DataFrameDebugView
+ {
+ private readonly DataFrame dataFrame;
+
+ public DataFrameDebugView(DataFrame dataFrame)
+ {
+ this.dataFrame = dataFrame;
+ }
+
+ [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)]
+ public DataFrameColumnDisplay[] Column
+ {
+ get
+ {
+ return Enumerable.Range(0, this.dataFrame.ColumnCount)
+ .Select(column => new DataFrameColumnDisplay(this.dataFrame, column))
+ .ToArray();
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Diagnostics/FactorDebugView.cs b/rdotnet/R.NET/Diagnostics/FactorDebugView.cs
new file mode 100644
index 0000000..25c0628
--- /dev/null
+++ b/rdotnet/R.NET/Diagnostics/FactorDebugView.cs
@@ -0,0 +1,24 @@
+using System.Diagnostics;
+using System.Linq;
+
+namespace RDotNet.Diagnostics
+{
+ internal class FactorDebugView
+ {
+ private readonly Factor factor;
+
+ public FactorDebugView(Factor factor)
+ {
+ this.factor = factor;
+ }
+
+ [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)]
+ public string[] Value
+ {
+ get
+ {
+ return this.factor.GetFactors().ToArray();
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Diagnostics/MatrixDebugView.cs b/rdotnet/R.NET/Diagnostics/MatrixDebugView.cs
new file mode 100644
index 0000000..73338ef
--- /dev/null
+++ b/rdotnet/R.NET/Diagnostics/MatrixDebugView.cs
@@ -0,0 +1,25 @@
+using System.Diagnostics;
+
+namespace RDotNet.Diagnostics
+{
+ internal class MatrixDebugView<T>
+ {
+ private readonly Matrix<T> matrix;
+
+ public MatrixDebugView(Matrix<T> matrix)
+ {
+ this.matrix = matrix;
+ }
+
+ [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)]
+ public T[,] Value
+ {
+ get
+ {
+ var array = new T[this.matrix.RowCount, this.matrix.ColumnCount];
+ this.matrix.CopyTo(array, this.matrix.RowCount, this.matrix.ColumnCount);
+ return array;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Diagnostics/VectorDebugView.cs b/rdotnet/R.NET/Diagnostics/VectorDebugView.cs
new file mode 100644
index 0000000..673e6da
--- /dev/null
+++ b/rdotnet/R.NET/Diagnostics/VectorDebugView.cs
@@ -0,0 +1,25 @@
+using System.Diagnostics;
+
+namespace RDotNet.Diagnostics
+{
+ internal class VectorDebugView<T>
+ {
+ private readonly Vector<T> vector;
+
+ public VectorDebugView(Vector<T> vector)
+ {
+ this.vector = vector;
+ }
+
+ [DebuggerBrowsable(DebuggerBrowsableState.RootHidden)]
+ public T[] Value
+ {
+ get
+ {
+ var array = new T[this.vector.Length];
+ this.vector.CopyTo(array, array.Length);
+ return array;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Dynamic/DataFrameDynamicMeta.cs b/rdotnet/R.NET/Dynamic/DataFrameDynamicMeta.cs
index a139353..31a2bf8 100644
--- a/rdotnet/R.NET/Dynamic/DataFrameDynamicMeta.cs
+++ b/rdotnet/R.NET/Dynamic/DataFrameDynamicMeta.cs
@@ -7,36 +7,36 @@ using System.Reflection;
namespace RDotNet.Dynamic
{
- public class DataFrameDynamicMeta : SymbolicExpressionDynamicMeta
- {
- private static readonly Type[] IndexerNameType = new[] { typeof(string) };
+ public class DataFrameDynamicMeta : SymbolicExpressionDynamicMeta
+ {
+ private static readonly Type[] IndexerNameType = new[] { typeof(string) };
- public DataFrameDynamicMeta(System.Linq.Expressions.Expression parameter, DataFrame frame)
- : base(parameter, frame)
- {}
+ public DataFrameDynamicMeta(System.Linq.Expressions.Expression parameter, DataFrame frame)
+ : base(parameter, frame)
+ { }
- public override IEnumerable<string> GetDynamicMemberNames()
- {
- return base.GetDynamicMemberNames().Concat(GetNames());
- }
+ public override IEnumerable<string> GetDynamicMemberNames()
+ {
+ return base.GetDynamicMemberNames().Concat(GetNames());
+ }
- public override DynamicMetaObject BindGetMember(GetMemberBinder binder)
- {
- if (!GetNames().Contains(binder.Name))
- {
- return base.BindGetMember(binder);
- }
+ public override DynamicMetaObject BindGetMember(GetMemberBinder binder)
+ {
+ if (!GetNames().Contains(binder.Name))
+ {
+ return base.BindGetMember(binder);
+ }
- ConstantExpression instance = System.Linq.Expressions.Expression.Constant(Value,
typeof(DataFrame));
- ConstantExpression name = System.Linq.Expressions.Expression.Constant(binder.Name,
typeof(string));
- PropertyInfo indexer = typeof(DataFrame).GetProperty("Item", IndexerNameType);
- IndexExpression call = System.Linq.Expressions.Expression.Property(instance, indexer,
name);
- return new DynamicMetaObject(call, BindingRestrictions.GetTypeRestriction(call,
typeof(DynamicVector)));
- }
+ ConstantExpression instance = System.Linq.Expressions.Expression.Constant(Value, typeof(DataFrame));
+ ConstantExpression name = System.Linq.Expressions.Expression.Constant(binder.Name, typeof(string));
+ PropertyInfo indexer = typeof(DataFrame).GetProperty("Item", IndexerNameType);
+ IndexExpression call = System.Linq.Expressions.Expression.Property(instance, indexer, name);
+ return new DynamicMetaObject(call, BindingRestrictions.GetTypeRestriction(call,
typeof(DynamicVector)));
+ }
- private string[] GetNames()
- {
- return ((DataFrame)Value).ColumnNames ?? Empty;
- }
- }
-}
+ private string[] GetNames()
+ {
+ return ((DataFrame)Value).ColumnNames ?? Empty;
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Dynamic/ListDynamicMeta.cs b/rdotnet/R.NET/Dynamic/ListDynamicMeta.cs
index b0150c2..5ae19f3 100644
--- a/rdotnet/R.NET/Dynamic/ListDynamicMeta.cs
+++ b/rdotnet/R.NET/Dynamic/ListDynamicMeta.cs
@@ -7,36 +7,36 @@ using System.Reflection;
namespace RDotNet.Dynamic
{
- public class ListDynamicMeta : SymbolicExpressionDynamicMeta
- {
- private static readonly Type[] IndexerNameType = new[] { typeof(string) };
+ public class ListDynamicMeta : SymbolicExpressionDynamicMeta
+ {
+ private static readonly Type[] IndexerNameType = new[] { typeof(string) };
- public ListDynamicMeta(System.Linq.Expressions.Expression parameter, GenericVector list)
- : base(parameter, list)
- {}
+ public ListDynamicMeta(System.Linq.Expressions.Expression parameter, GenericVector list)
+ : base(parameter, list)
+ { }
- public override IEnumerable<string> GetDynamicMemberNames()
- {
- return base.GetDynamicMemberNames().Concat(GetNames());
- }
+ public override IEnumerable<string> GetDynamicMemberNames()
+ {
+ return base.GetDynamicMemberNames().Concat(GetNames());
+ }
- public override DynamicMetaObject BindGetMember(GetMemberBinder binder)
- {
- if (!GetNames().Contains(binder.Name))
- {
- return base.BindGetMember(binder);
- }
+ public override DynamicMetaObject BindGetMember(GetMemberBinder binder)
+ {
+ if (!GetNames().Contains(binder.Name))
+ {
+ return base.BindGetMember(binder);
+ }
- ConstantExpression instance = System.Linq.Expressions.Expression.Constant(Value,
typeof(GenericVector));
- ConstantExpression name = System.Linq.Expressions.Expression.Constant(binder.Name,
typeof(string));
- PropertyInfo indexer = typeof(GenericVector).GetProperty("Item", IndexerNameType);
- IndexExpression call = System.Linq.Expressions.Expression.Property(instance, indexer,
name);
- return new DynamicMetaObject(call, BindingRestrictions.GetTypeRestriction(call,
typeof(SymbolicExpression)));
- }
+ ConstantExpression instance = System.Linq.Expressions.Expression.Constant(Value,
typeof(GenericVector));
+ ConstantExpression name = System.Linq.Expressions.Expression.Constant(binder.Name, typeof(string));
+ PropertyInfo indexer = typeof(GenericVector).GetProperty("Item", IndexerNameType);
+ IndexExpression call = System.Linq.Expressions.Expression.Property(instance, indexer, name);
+ return new DynamicMetaObject(call, BindingRestrictions.GetTypeRestriction(call,
typeof(SymbolicExpression)));
+ }
- private string[] GetNames()
- {
- return ((GenericVector)Value).Names ?? Empty;
- }
- }
-}
+ private string[] GetNames()
+ {
+ return ((GenericVector)Value).Names ?? Empty;
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Dynamic/SymbolicExpressionDynamicMeta.cs
b/rdotnet/R.NET/Dynamic/SymbolicExpressionDynamicMeta.cs
index 7110d2c..304eecc 100644
--- a/rdotnet/R.NET/Dynamic/SymbolicExpressionDynamicMeta.cs
+++ b/rdotnet/R.NET/Dynamic/SymbolicExpressionDynamicMeta.cs
@@ -6,36 +6,36 @@ using System.Reflection;
namespace RDotNet.Dynamic
{
- public class SymbolicExpressionDynamicMeta : DynamicMetaObject
- {
- protected static readonly string[] Empty = new string[0];
+ public class SymbolicExpressionDynamicMeta : DynamicMetaObject
+ {
+ protected static readonly string[] Empty = new string[0];
- public SymbolicExpressionDynamicMeta(System.Linq.Expressions.Expression parameter,
SymbolicExpression expression)
- : base(parameter, BindingRestrictions.Empty, expression)
- {}
+ public SymbolicExpressionDynamicMeta(System.Linq.Expressions.Expression parameter, SymbolicExpression
expression)
+ : base(parameter, BindingRestrictions.Empty, expression)
+ { }
- public override IEnumerable<string> GetDynamicMemberNames()
- {
- return base.GetDynamicMemberNames().Concat(GetAttributeNames());
- }
+ public override IEnumerable<string> GetDynamicMemberNames()
+ {
+ return base.GetDynamicMemberNames().Concat(GetAttributeNames());
+ }
- public override DynamicMetaObject BindGetMember(GetMemberBinder binder)
- {
- if (!GetAttributeNames().Contains(binder.Name))
- {
- return base.BindGetMember(binder);
- }
+ public override DynamicMetaObject BindGetMember(GetMemberBinder binder)
+ {
+ if (!GetAttributeNames().Contains(binder.Name))
+ {
+ return base.BindGetMember(binder);
+ }
- ConstantExpression instance = System.Linq.Expressions.Expression.Constant(Value,
typeof(SymbolicExpression));
- ConstantExpression name = System.Linq.Expressions.Expression.Constant(binder.Name,
typeof(string));
- MethodInfo getAttribute = typeof(SymbolicExpression).GetMethod("GetAttribute");
- MethodCallExpression call = System.Linq.Expressions.Expression.Call(instance,
getAttribute, name);
- return new DynamicMetaObject(call, BindingRestrictions.GetTypeRestriction(call,
typeof(SymbolicExpression)));
- }
+ ConstantExpression instance = System.Linq.Expressions.Expression.Constant(Value,
typeof(SymbolicExpression));
+ ConstantExpression name = System.Linq.Expressions.Expression.Constant(binder.Name, typeof(string));
+ MethodInfo getAttribute = typeof(SymbolicExpression).GetMethod("GetAttribute");
+ MethodCallExpression call = System.Linq.Expressions.Expression.Call(instance, getAttribute, name);
+ return new DynamicMetaObject(call, BindingRestrictions.GetTypeRestriction(call,
typeof(SymbolicExpression)));
+ }
- private string[] GetAttributeNames()
- {
- return ((SymbolicExpression)Value).GetAttributeNames() ?? Empty;
- }
- }
-}
+ private string[] GetAttributeNames()
+ {
+ return ((SymbolicExpression)Value).GetAttributeNames() ?? Empty;
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/DynamicVector.cs b/rdotnet/R.NET/DynamicVector.cs
index 30a73e1..c1b00af 100644
--- a/rdotnet/R.NET/DynamicVector.cs
+++ b/rdotnet/R.NET/DynamicVector.cs
@@ -1,215 +1,257 @@
-using System;
+using RDotNet.Internals;
+using System;
using System.Numerics;
using System.Runtime.InteropServices;
-using RDotNet.Internals;
namespace RDotNet
{
- /// <summary>
- /// A collection of values.
- /// </summary>
- /// <remarks>
- /// This vector cannot contain more than one types of values.
- /// Consider to use another vector class instead.
- /// </remarks>
- public class DynamicVector : Vector<object>
- {
- protected internal DynamicVector(REngine engine, IntPtr coerced)
- : base(engine, coerced)
- {}
-
- /// <summary>
- /// Gets or sets the element at the specified index.
- /// </summary>
- /// <remarks>
- /// The value is converted into specific type.
- /// </remarks>
- /// <param name="index">The zero-based index of the element to get or set.</param>
- /// <returns>The element at the specified index.</returns>
- public override object this[int index]
- {
- get
- {
- if (index < 0 || Length <= index)
- {
- throw new ArgumentOutOfRangeException();
- }
- using (new ProtectedPointer(this))
- {
- IntPtr pointer = DataPointer;
- int offset = GetOffset(index);
- switch (Type)
- {
- case SymbolicExpressionType.NumericVector:
- return ReadDouble(pointer, offset);
- case SymbolicExpressionType.IntegerVector:
- return ReadInt32(pointer, offset);
- case SymbolicExpressionType.CharacterVector:
- return ReadString(pointer, offset);
- case SymbolicExpressionType.LogicalVector:
- return ReadBoolean(pointer, offset);
- case SymbolicExpressionType.RawVector:
- return ReadByte(pointer, offset);
- case SymbolicExpressionType.ComplexVector:
- return ReadComplex(pointer, offset);
- default:
- return ReadSymbolicExpression(pointer, offset);
- }
- }
- }
- set
- {
- if (index < 0 || Length <= index)
- {
- throw new ArgumentOutOfRangeException();
- }
- using (new ProtectedPointer(this))
- {
- IntPtr pointer = DataPointer;
- int offset = GetOffset(index);
- switch (Type)
- {
- case SymbolicExpressionType.NumericVector:
- WriteDouble((double)value, pointer, offset);
- return;
- case SymbolicExpressionType.IntegerVector:
- WriteInt32((int)value, pointer, offset);
- return;
- case SymbolicExpressionType.CharacterVector:
- WriteString((string)value, pointer, offset);
- return;
- case SymbolicExpressionType.LogicalVector:
- WriteBoolean((bool)value, pointer, offset);
- return;
- case SymbolicExpressionType.RawVector:
- WriteByte((byte)value, pointer, offset);
- return;
- case SymbolicExpressionType.ComplexVector:
- WriteComplex((Complex)value, pointer, offset);
- return;
- default:
- WriteSymbolicExpression((SymbolicExpression)value,
pointer, offset);
- return;
- }
- }
- }
- }
-
- protected override int DataSize
- {
- get
- {
- switch (Type)
- {
- case SymbolicExpressionType.NumericVector:
- return sizeof(double);
- case SymbolicExpressionType.IntegerVector:
- return sizeof(int);
- case SymbolicExpressionType.CharacterVector:
- return Marshal.SizeOf(typeof(IntPtr));
- case SymbolicExpressionType.LogicalVector:
- return sizeof(int);
- case SymbolicExpressionType.RawVector:
- return sizeof(byte);
- case SymbolicExpressionType.ComplexVector:
- return Marshal.SizeOf(typeof(Complex));
- default:
- return Marshal.SizeOf(typeof(IntPtr));
- }
- }
- }
-
- private double ReadDouble(IntPtr pointer, int offset)
- {
- var data = new byte[sizeof(double)];
- for (int byteIndex = 0; byteIndex < data.Length; byteIndex++)
- {
- data[byteIndex] = Marshal.ReadByte(pointer, offset + byteIndex);
- }
- return BitConverter.ToDouble(data, 0);
- }
-
- private void WriteDouble(double value, IntPtr pointer, int offset)
- {
- byte[] data = BitConverter.GetBytes(value);
- for (int byteIndex = 0; byteIndex < data.Length; byteIndex++)
- {
- Marshal.WriteByte(pointer, offset + byteIndex, data[byteIndex]);
- }
- }
-
- private int ReadInt32(IntPtr pointer, int offset)
- {
- return Marshal.ReadInt32(pointer, offset);
- }
-
- private void WriteInt32(int value, IntPtr pointer, int offset)
- {
- Marshal.WriteInt32(pointer, offset, value);
- }
-
- private string ReadString(IntPtr pointer, int offset)
- {
- pointer = Marshal.ReadIntPtr(pointer, offset);
- pointer = IntPtr.Add(pointer, Marshal.SizeOf(typeof(VECTOR_SEXPREC)));
- return Marshal.PtrToStringAnsi(pointer);
- }
-
- private void WriteString(string value, IntPtr pointer, int offset)
- {
- IntPtr stringPointer = Engine.GetFunction<Rf_mkChar>("Rf_mkChar")(value);
- Marshal.WriteIntPtr(pointer, offset, stringPointer);
- }
-
- private bool ReadBoolean(IntPtr pointer, int offset)
- {
- int data = Marshal.ReadInt32(pointer, offset);
- return Convert.ToBoolean(data);
- }
-
- private void WriteBoolean(bool value, IntPtr pointer, int offset)
- {
- int data = Convert.ToInt32(value);
- Marshal.WriteInt32(pointer, offset, data);
- }
-
- private byte ReadByte(IntPtr pointer, int offset)
- {
- return Marshal.ReadByte(pointer, offset);
- }
-
- private void WriteByte(byte value, IntPtr pointer, int offset)
- {
- Marshal.WriteByte(pointer, offset, value);
- }
-
- private Complex ReadComplex(IntPtr pointer, int offset)
- {
- var data = new byte[Marshal.SizeOf(typeof(Complex))];
- Marshal.Copy(pointer, data, 0, data.Length);
- double real = BitConverter.ToDouble(data, 0);
- double imaginary = BitConverter.ToDouble(data, sizeof(double));
- return new Complex(real, imaginary);
- }
-
- private void WriteComplex(Complex value, IntPtr pointer, int offset)
- {
- byte[] real = BitConverter.GetBytes(value.Real);
- byte[] imaginary = BitConverter.GetBytes(value.Imaginary);
- Marshal.Copy(real, 0, pointer, real.Length);
- pointer = IntPtr.Add(pointer, real.Length);
- Marshal.Copy(imaginary, 0, pointer, imaginary.Length);
- }
-
- private SymbolicExpression ReadSymbolicExpression(IntPtr pointer, int offset)
- {
- IntPtr sexp = IntPtr.Add(pointer, offset);
- return new SymbolicExpression(Engine, sexp);
- }
-
- private void WriteSymbolicExpression(SymbolicExpression sexp, IntPtr pointer, int offset)
- {
- Marshal.WriteIntPtr(pointer, offset, sexp.DangerousGetHandle());
- }
- }
-}
+ /// <summary>
+ /// A collection of values.
+ /// </summary>
+ /// <remarks>
+ /// This vector cannot contain more than one types of values.
+ /// Consider to use another vector class instead.
+ /// </remarks>
+ public class DynamicVector : Vector<object>
+ {
+ protected internal DynamicVector(REngine engine, IntPtr coerced)
+ : base(engine, coerced)
+ { }
+
+ /// <summary>
+ /// Gets or sets the element at the specified index.
+ /// </summary>
+ /// <remarks>
+ /// The value is converted into specific type.
+ /// </remarks>
+ /// <param name="index">The zero-based index of the element to get or set.</param>
+ /// <returns>The element at the specified index.</returns>
+ public override object this[int index]
+ {
+ get
+ {
+ if (index < 0 || Length <= index)
+ {
+ throw new ArgumentOutOfRangeException();
+ }
+ using (new ProtectedPointer(this))
+ {
+ return GetValue(index);
+ }
+ }
+ set
+ {
+ if (index < 0 || Length <= index)
+ {
+ throw new ArgumentOutOfRangeException();
+ }
+ using (new ProtectedPointer(this))
+ {
+ SetValue(index, value);
+ }
+ }
+ }
+
+ protected override object[] GetArrayFast()
+ {
+ var res = new object[this.Length];
+ for (int i = 0; i < res.Length; i++)
+ res[i] = GetValue(i);
+ return res;
+ }
+
+ private object GetValue(int index)
+ {
+ IntPtr pointer = DataPointer;
+ int offset = GetOffset(index);
+ switch (Type)
+ {
+ case SymbolicExpressionType.NumericVector:
+ return ReadDouble(pointer, offset);
+
+ case SymbolicExpressionType.IntegerVector:
+ return ReadInt32(pointer, offset);
+
+ case SymbolicExpressionType.CharacterVector:
+ return ReadString(pointer, offset);
+
+ case SymbolicExpressionType.LogicalVector:
+ return ReadBoolean(pointer, offset);
+
+ case SymbolicExpressionType.RawVector:
+ return ReadByte(pointer, offset);
+
+ case SymbolicExpressionType.ComplexVector:
+ return ReadComplex(pointer, offset);
+
+ default:
+ return ReadSymbolicExpression(pointer, offset);
+ }
+ }
+
+ protected override void SetVectorDirect(object[] values)
+ {
+ for (int i = 0; i < values.Length; i++)
+ SetValue(i, values[i]);
+ }
+
+ private void SetValue(int index, object value)
+ {
+ IntPtr pointer = DataPointer;
+ int offset = GetOffset(index);
+ switch (Type)
+ {
+ case SymbolicExpressionType.NumericVector:
+ WriteDouble((double)value, pointer, offset);
+ return;
+
+ case SymbolicExpressionType.IntegerVector:
+ WriteInt32((int)value, pointer, offset);
+ return;
+
+ case SymbolicExpressionType.CharacterVector:
+ WriteString((string)value, pointer, offset);
+ return;
+
+ case SymbolicExpressionType.LogicalVector:
+ WriteBoolean((bool)value, pointer, offset);
+ return;
+
+ case SymbolicExpressionType.RawVector:
+ WriteByte((byte)value, pointer, offset);
+ return;
+
+ case SymbolicExpressionType.ComplexVector:
+ WriteComplex((Complex)value, pointer, offset);
+ return;
+
+ default:
+ WriteSymbolicExpression((SymbolicExpression)value, pointer, offset);
+ return;
+ }
+ }
+
+ protected override int DataSize
+ {
+ get
+ {
+ switch (Type)
+ {
+ case SymbolicExpressionType.NumericVector:
+ return sizeof(double);
+
+ case SymbolicExpressionType.IntegerVector:
+ return sizeof(int);
+
+ case SymbolicExpressionType.CharacterVector:
+ return Marshal.SizeOf(typeof(IntPtr));
+
+ case SymbolicExpressionType.LogicalVector:
+ return sizeof(int);
+
+ case SymbolicExpressionType.RawVector:
+ return sizeof(byte);
+
+ case SymbolicExpressionType.ComplexVector:
+ return Marshal.SizeOf(typeof(Complex));
+
+ default:
+ return Marshal.SizeOf(typeof(IntPtr));
+ }
+ }
+ }
+
+ private double ReadDouble(IntPtr pointer, int offset)
+ {
+ var data = new byte[sizeof(double)];
+ for (int byteIndex = 0; byteIndex < data.Length; byteIndex++)
+ {
+ data[byteIndex] = Marshal.ReadByte(pointer, offset + byteIndex);
+ }
+ return BitConverter.ToDouble(data, 0);
+ }
+
+ private void WriteDouble(double value, IntPtr pointer, int offset)
+ {
+ byte[] data = BitConverter.GetBytes(value);
+ for (int byteIndex = 0; byteIndex < data.Length; byteIndex++)
+ {
+ Marshal.WriteByte(pointer, offset + byteIndex, data[byteIndex]);
+ }
+ }
+
+ private int ReadInt32(IntPtr pointer, int offset)
+ {
+ return Marshal.ReadInt32(pointer, offset);
+ }
+
+ private void WriteInt32(int value, IntPtr pointer, int offset)
+ {
+ Marshal.WriteInt32(pointer, offset, value);
+ }
+
+ private string ReadString(IntPtr pointer, int offset)
+ {
+ pointer = Marshal.ReadIntPtr(pointer, offset);
+ pointer = IntPtr.Add(pointer, Marshal.SizeOf(typeof(VECTOR_SEXPREC)));
+ return Marshal.PtrToStringAnsi(pointer);
+ }
+
+ private void WriteString(string value, IntPtr pointer, int offset)
+ {
+ IntPtr stringPointer = Engine.GetFunction<Rf_mkChar>()(value);
+ Marshal.WriteIntPtr(pointer, offset, stringPointer);
+ }
+
+ private bool ReadBoolean(IntPtr pointer, int offset)
+ {
+ int data = Marshal.ReadInt32(pointer, offset);
+ return Convert.ToBoolean(data);
+ }
+
+ private void WriteBoolean(bool value, IntPtr pointer, int offset)
+ {
+ int data = Convert.ToInt32(value);
+ Marshal.WriteInt32(pointer, offset, data);
+ }
+
+ private byte ReadByte(IntPtr pointer, int offset)
+ {
+ return Marshal.ReadByte(pointer, offset);
+ }
+
+ private void WriteByte(byte value, IntPtr pointer, int offset)
+ {
+ Marshal.WriteByte(pointer, offset, value);
+ }
+
+ private Complex ReadComplex(IntPtr pointer, int offset)
+ {
+ var data = new byte[Marshal.SizeOf(typeof(Complex))];
+ Marshal.Copy(pointer, data, 0, data.Length);
+ double real = BitConverter.ToDouble(data, 0);
+ double imaginary = BitConverter.ToDouble(data, sizeof(double));
+ return new Complex(real, imaginary);
+ }
+
+ private void WriteComplex(Complex value, IntPtr pointer, int offset)
+ {
+ byte[] real = BitConverter.GetBytes(value.Real);
+ byte[] imaginary = BitConverter.GetBytes(value.Imaginary);
+ Marshal.Copy(real, 0, pointer, real.Length);
+ pointer = IntPtr.Add(pointer, real.Length);
+ Marshal.Copy(imaginary, 0, pointer, imaginary.Length);
+ }
+
+ private SymbolicExpression ReadSymbolicExpression(IntPtr pointer, int offset)
+ {
+ IntPtr sexp = IntPtr.Add(pointer, offset);
+ return new SymbolicExpression(Engine, sexp);
+ }
+
+ private void WriteSymbolicExpression(SymbolicExpression sexp, IntPtr pointer, int offset)
+ {
+ Marshal.WriteIntPtr(pointer, offset, sexp.DangerousGetHandle());
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Environment.cs b/rdotnet/R.NET/Environment.cs
index 187191c..51d0dbc 100644
--- a/rdotnet/R.NET/Environment.cs
+++ b/rdotnet/R.NET/Environment.cs
@@ -1,90 +1,115 @@
-using System;
+using RDotNet.Internals;
+using System;
using System.Runtime.InteropServices;
-using RDotNet.Internals;
namespace RDotNet
{
- /// <summary>
- /// An environment object.
- /// </summary>
- public class REnvironment : SymbolicExpression
- {
- /// <summary>
- /// Creates an environment object.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="pointer">The pointer to an environment.</param>
- protected internal REnvironment(REngine engine, IntPtr pointer)
- : base(engine, pointer)
- {}
+ /// <summary>
+ /// An environment object.
+ /// </summary>
+ public class REnvironment : SymbolicExpression
+ {
+ /// <summary>
+ /// Creates an environment object.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="pointer">The pointer to an environment.</param>
+ protected internal REnvironment(REngine engine, IntPtr pointer)
+ : base(engine, pointer)
+ { }
- /// <summary>
- /// Gets the parental environment.
- /// </summary>
- public REnvironment Parent
- {
- get
- {
- SEXPREC sexp = GetInternalStructure();
- IntPtr parent = sexp.envsxp.enclos;
- return Engine.CheckNil(parent) ? null : new REnvironment(Engine, parent);
- }
- }
+ /// <summary>
+ /// Creates a new environment object.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="parent">The parent environment.</param>
+ public REnvironment(REngine engine, REnvironment parent)
+ : base(engine, engine.GetFunction<Rf_NewEnvironment>()(engine.NilValue.DangerousGetHandle(),
engine.NilValue.DangerousGetHandle(), parent.handle))
+ { }
- /// <summary>
- /// Gets a symbol defined in this environment.
- /// </summary>
- /// <param name="name">The name.</param>
- /// <returns>The symbol.</returns>
- public SymbolicExpression GetSymbol(string name)
- {
- if (name == null)
- {
- throw new ArgumentNullException();
- }
- if (name == string.Empty)
- {
- throw new ArgumentException();
- }
+ /// <summary>
+ /// Gets the parental environment.
+ /// </summary>
+ public REnvironment Parent
+ {
+ get
+ {
+ SEXPREC sexp = GetInternalStructure();
+ IntPtr parent = sexp.envsxp.enclos;
+ return Engine.CheckNil(parent) ? null : new REnvironment(Engine, parent);
+ }
+ }
- IntPtr installedName = Engine.GetFunction<Rf_install>("Rf_install")(name);
- IntPtr value = Engine.GetFunction<Rf_findVar>("Rf_findVar")(installedName, handle);
- if (Engine.CheckUnbound(value))
- {
- return null;
- }
+ /// <summary>
+ /// Gets a symbol defined in this environment.
+ /// </summary>
+ /// <param name="name">The name.</param>
+ /// <returns>The symbol.</returns>
+ public SymbolicExpression GetSymbol(string name)
+ {
+ if (name == null)
+ {
+ throw new ArgumentNullException();
+ }
+ if (name == string.Empty)
+ {
+ throw new ArgumentException();
+ }
- var sexp = (SEXPREC)Marshal.PtrToStructure(value, typeof(SEXPREC));
- if (sexp.sxpinfo.type == SymbolicExpressionType.Promise)
- {
- value = Engine.GetFunction<Rf_eval>("Rf_eval")(value, handle);
- }
- return new SymbolicExpression(Engine, value);
- }
+ IntPtr installedName = Engine.GetFunction<Rf_install>()(name);
+ IntPtr value = Engine.GetFunction<Rf_findVar>()(installedName, handle);
+ if (Engine.CheckUnbound(value))
+ {
+ return null;
+ }
- /// <summary>
- /// Defines a symbol in this environment.
- /// </summary>
- /// <param name="name">The name.</param>
- /// <param name="expression">The symbol.</param>
- public void SetSymbol(string name, SymbolicExpression expression)
- {
- IntPtr installedName = Engine.GetFunction<Rf_install>("Rf_install")(name);
- Engine.GetFunction<Rf_setVar>("Rf_setVar")(installedName,
expression.DangerousGetHandle(), handle);
- }
+ var sexp = (SEXPREC)Marshal.PtrToStructure(value, typeof(SEXPREC));
+ if (sexp.sxpinfo.type == SymbolicExpressionType.Promise)
+ {
+ value = Engine.GetFunction<Rf_eval>()(value, handle);
+ }
+ return new SymbolicExpression(Engine, value);
+ }
- /// <summary>
- /// Gets the symbol names defined in this environment.
- /// </summary>
- /// <param name="all">Including special functions or not.</param>
- /// <returns>Symbol names.</returns>
- public string[] GetSymbolNames(bool all = false)
- {
- var symbolNames = new CharacterVector(Engine,
Engine.GetFunction<R_lsInternal>("R_lsInternal")(handle, all));
- int length = symbolNames.Length;
- var copy = new string[length];
- symbolNames.CopyTo(copy, length);
- return copy;
- }
- }
-}
+ /// <summary>
+ /// Defines a symbol in this environment.
+ /// </summary>
+ /// <param name="name">The name.</param>
+ /// <param name="expression">The symbol.</param>
+ public void SetSymbol(string name, SymbolicExpression expression)
+ {
+ if (name == null)
+ {
+ throw new ArgumentNullException("name");
+ }
+ if (name == string.Empty)
+ {
+ throw new ArgumentException();
+ }
+ if (expression == null)
+ {
+ expression = Engine.NilValue;
+ }
+ if (expression.Engine != this.Engine)
+ {
+ throw new ArgumentException();
+ }
+ IntPtr installedName = Engine.GetFunction<Rf_install>()(name);
+ Engine.GetFunction<Rf_setVar>()(installedName, expression.DangerousGetHandle(), handle);
+ }
+
+ /// <summary>
+ /// Gets the symbol names defined in this environment.
+ /// </summary>
+ /// <param name="all">Including special functions or not.</param>
+ /// <returns>Symbol names.</returns>
+ public string[] GetSymbolNames(bool all = false)
+ {
+ var symbolNames = new CharacterVector(Engine, Engine.GetFunction<R_lsInternal>()(handle, all));
+ int length = symbolNames.Length;
+ var copy = new string[length];
+ symbolNames.CopyTo(copy, length);
+ return copy;
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Expression.cs b/rdotnet/R.NET/Expression.cs
index f7c6536..2074e5e 100644
--- a/rdotnet/R.NET/Expression.cs
+++ b/rdotnet/R.NET/Expression.cs
@@ -1,62 +1,62 @@
-using System;
-using RDotNet.Internals;
+using RDotNet.Internals;
+using System;
namespace RDotNet
{
- /// <summary>
- /// An expression object.
- /// </summary>
- public class Expression : SymbolicExpression
- {
- /// <summary>
- /// Creates an expression object.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="pointer">The pointer to an expression.</param>
- protected internal Expression(REngine engine, IntPtr pointer)
- : base(engine, pointer)
- {}
+ /// <summary>
+ /// An expression object.
+ /// </summary>
+ public class Expression : SymbolicExpression
+ {
+ /// <summary>
+ /// Creates an expression object.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="pointer">The pointer to an expression.</param>
+ protected internal Expression(REngine engine, IntPtr pointer)
+ : base(engine, pointer)
+ { }
- /// <summary>
- /// Evaluates the expression in the specified environment.
- /// </summary>
- /// <param name="environment">The environment.</param>
- /// <returns>The evaluation result.</returns>
- public SymbolicExpression Evaluate(REnvironment environment)
- {
- if (environment == null)
- {
- throw new ArgumentNullException("environment");
- }
- if (Engine != environment.Engine)
- {
- throw new ArgumentException(null, "environment");
- }
+ /// <summary>
+ /// Evaluates the expression in the specified environment.
+ /// </summary>
+ /// <param name="environment">The environment.</param>
+ /// <returns>The evaluation result.</returns>
+ public SymbolicExpression Evaluate(REnvironment environment)
+ {
+ if (environment == null)
+ {
+ throw new ArgumentNullException("environment");
+ }
+ if (Engine != environment.Engine)
+ {
+ throw new ArgumentException(null, "environment");
+ }
- return new SymbolicExpression(Engine, Engine.GetFunction<Rf_eval>("Rf_eval")(handle,
environment.DangerousGetHandle()));
- }
+ return new SymbolicExpression(Engine, Engine.GetFunction<Rf_eval>()(handle,
environment.DangerousGetHandle()));
+ }
- /// <summary>
- /// Evaluates the expression in the specified environment.
- /// </summary>
- /// <param name="environment">The environment.</param>
- /// <param name="result">The evaluation result, or <c>null</c> if the evaluation
failed</param>
- /// <returns><c>True</c> if the evaluation succeeded.</returns>
- public bool TryEvaluate(REnvironment environment, out SymbolicExpression result)
- {
- if (environment == null)
- {
- throw new ArgumentNullException("environment");
- }
- if (Engine != environment.Engine)
- {
- throw new ArgumentException(null, "environment");
- }
+ /// <summary>
+ /// Evaluates the expression in the specified environment.
+ /// </summary>
+ /// <param name="environment">The environment.</param>
+ /// <param name="result">The evaluation result, or <c>null</c> if the evaluation failed</param>
+ /// <returns><c>True</c> if the evaluation succeeded.</returns>
+ public bool TryEvaluate(REnvironment environment, out SymbolicExpression result)
+ {
+ if (environment == null)
+ {
+ throw new ArgumentNullException("environment");
+ }
+ if (Engine != environment.Engine)
+ {
+ throw new ArgumentException(null, "environment");
+ }
- bool errorOccurred;
- IntPtr pointer = Engine.GetFunction<R_tryEval>("R_tryEval")(handle,
environment.DangerousGetHandle(), out errorOccurred);
- result = errorOccurred ? null : new SymbolicExpression(Engine, pointer);
- return !errorOccurred;
- }
- }
-}
+ bool errorOccurred;
+ IntPtr pointer = Engine.GetFunction<R_tryEval>()(handle, environment.DangerousGetHandle(), out
errorOccurred);
+ result = errorOccurred ? null : new SymbolicExpression(Engine, pointer);
+ return !errorOccurred;
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/ExpressionVector.cs b/rdotnet/R.NET/ExpressionVector.cs
index 46079c0..5a73c0d 100644
--- a/rdotnet/R.NET/ExpressionVector.cs
+++ b/rdotnet/R.NET/ExpressionVector.cs
@@ -4,53 +4,77 @@ using System.Security.Permissions;
namespace RDotNet
{
- [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
- public class ExpressionVector : Vector<Expression>
- {
- /// <summary>
- /// Creates a new instance for an expression vector.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="coerced">The pointer to an expression vector.</param>
- internal ExpressionVector(REngine engine, IntPtr coerced)
- : base(engine, coerced)
- {}
+ [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+ public class ExpressionVector : Vector<Expression>
+ {
+ /// <summary>
+ /// Creates a new instance for an expression vector.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="coerced">The pointer to an expression vector.</param>
+ internal ExpressionVector(REngine engine, IntPtr coerced)
+ : base(engine, coerced)
+ { }
- public override Expression this[int index]
- {
- get
- {
- if (index < 0 || Length <= index)
- {
- throw new ArgumentOutOfRangeException();
- }
- using (new ProtectedPointer(this))
- {
- int offset = GetOffset(index);
- IntPtr pointer = Marshal.ReadIntPtr(DataPointer, offset);
- return new Expression(Engine, pointer);
- }
- }
- set
- {
- if (index < 0 || Length <= index)
- {
- throw new ArgumentOutOfRangeException();
- }
- using (new ProtectedPointer(this))
- {
- int offset = GetOffset(index);
- Marshal.WriteIntPtr(DataPointer, offset, (value ??
Engine.NilValue).DangerousGetHandle());
- }
- }
- }
+ public override Expression this[int index]
+ {
+ get
+ {
+ if (index < 0 || Length <= index)
+ {
+ throw new ArgumentOutOfRangeException();
+ }
+ using (new ProtectedPointer(this))
+ {
+ return GetValue(index);
+ }
+ }
+ set
+ {
+ if (index < 0 || Length <= index)
+ {
+ throw new ArgumentOutOfRangeException();
+ }
+ using (new ProtectedPointer(this))
+ {
+ SetValue(index, value);
+ }
+ }
+ }
- /// <summary>
- /// Gets the size of a pointer in byte.
- /// </summary>
- protected override int DataSize
- {
- get { return Marshal.SizeOf(typeof(IntPtr)); }
- }
- }
-}
+ protected override Expression[] GetArrayFast()
+ {
+ var res = new Expression[this.Length];
+ for (int i = 0; i < res.Length; i++)
+ res[i] = GetValue(i);
+ return res;
+ }
+
+ private Expression GetValue(int index)
+ {
+ int offset = GetOffset(index);
+ IntPtr pointer = Marshal.ReadIntPtr(DataPointer, offset);
+ return new Expression(Engine, pointer);
+ }
+
+ private void SetValue(int index, Expression value)
+ {
+ int offset = GetOffset(index);
+ Marshal.WriteIntPtr(DataPointer, offset, (value ?? Engine.NilValue).DangerousGetHandle());
+ }
+
+ protected override void SetVectorDirect(Expression[] values)
+ {
+ for (int i = 0; i < values.Length; i++)
+ SetValue(i, values[i]);
+ }
+
+ /// <summary>
+ /// Gets the size of a pointer in byte.
+ /// </summary>
+ protected override int DataSize
+ {
+ get { return Marshal.SizeOf(typeof(IntPtr)); }
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Factor.cs b/rdotnet/R.NET/Factor.cs
new file mode 100644
index 0000000..4c9a6dc
--- /dev/null
+++ b/rdotnet/R.NET/Factor.cs
@@ -0,0 +1,108 @@
+using RDotNet.Diagnostics;
+using RDotNet.Internals;
+using System;
+using System.Diagnostics;
+using System.Linq;
+using System.Security.Permissions;
+
+namespace RDotNet
+{
+ /// <summary>
+ /// Represents factors.
+ /// </summary>
+ [DebuggerDisplay("Length = {Length}; Ordered = {IsOrdered}; RObjectType = {Type}")]
+ [DebuggerTypeProxy(typeof(FactorDebugView))]
+ [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+ public class Factor : IntegerVector
+ {
+ /// <summary>
+ /// Creates a new instance for a factor vector.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="coerced">The pointer to a factor vector.</param>
+ protected internal Factor(REngine engine, IntPtr coerced)
+ : base(engine, coerced)
+ { }
+
+ /// <summary>
+ /// Gets the levels of the factor.
+ /// </summary>
+ public string[] GetLevels()
+ {
+ return GetAttribute(Engine.GetPredefinedSymbol("R_LevelsSymbol")).AsCharacter().ToArray();
+ }
+
+ /// <summary>
+ /// Gets the levels of the factor.
+ /// </summary>
+ /// <returns>Factors.</returns>
+ public string[] GetFactors()
+ {
+ var levels = GetLevels();
+ return this.Select(value => levels[value - 1]).ToArray();
+ }
+
+ /// <summary>
+ /// Gets the levels of the factor as the specific enum type.
+ /// </summary>
+ /// <remarks>
+ /// Be careful to the underlying values.
+ /// You had better set <c>levels</c> and <c>labels</c> argument explicitly.
+ /// </remarks>
+ /// <example>
+ /// <code>
+ /// public enum Group
+ /// {
+ /// Treatment = 1,
+ /// Control = 2
+ /// }
+ ///
+ /// // You must set 'levels' and 'labels' arguments explicitly in this case
+ /// // because levels of factor is sorted by default and the names in R and in enum names are
different.
+ /// var code = @"factor(
+ /// c(rep('T', 5), rep('C', 5), rep('T', 4), rep('C', 5)),
+ /// levels=c('T', 'C'),
+ /// labels=c('Treatment', 'Control')
+ /// )";
+ /// var factor = engine.Evaluate(code).AsFactor();
+ /// foreach (Group g in factor.GetFactors<Group>())
+ /// {
+ /// Console.Write("{0} ", g);
+ /// }
+ /// </code>
+ /// </example>
+ /// <typeparam name="TEnum">The type of enum.</typeparam>
+ /// <param name="ignoreCase">The value indicating case-sensitivity.</param>
+ /// <returns>Factors.</returns>
+ public TEnum[] GetFactors<TEnum>(bool ignoreCase = false)
+ where TEnum : struct
+ {
+ Type enumType = typeof(TEnum);
+ if (!enumType.IsEnum)
+ {
+ throw new ArgumentException("Only enum type is supported");
+ }
+ // The exact underlying type of factor is Int32.
+ // But probably other types are available.
+ //if (Enum.GetUnderlyingType(enumType) != typeof(Int32))
+ //{
+ // throw new ArgumentException("Only Int32 is supported");
+ //}
+ var levels = GetLevels();
+ return this.Select(value => levels[value - 1])
+ .Select(value => (TEnum)Enum.Parse(enumType, value, ignoreCase))
+ .ToArray();
+ }
+
+ /// <summary>
+ /// Gets the value which indicating the factor is ordered or not.
+ /// </summary>
+ public bool IsOrdered
+ {
+ get
+ {
+ return Engine.GetFunction<Rf_isOrdered>()(this.handle);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Function.cs b/rdotnet/R.NET/Function.cs
index fa4c482..9f3ac61 100644
--- a/rdotnet/R.NET/Function.cs
+++ b/rdotnet/R.NET/Function.cs
@@ -2,25 +2,25 @@
namespace RDotNet
{
- /// <summary>
- /// A function is one of closure, built-in function, or special function.
- /// </summary>
- public abstract class Function : SymbolicExpression
- {
- /// <summary>
- /// Creates a function object.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="pointer">The pointer.</param>
- protected Function(REngine engine, IntPtr pointer)
- : base(engine, pointer)
- {}
+ /// <summary>
+ /// A function is one of closure, built-in function, or special function.
+ /// </summary>
+ public abstract class Function : SymbolicExpression
+ {
+ /// <summary>
+ /// Creates a function object.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="pointer">The pointer.</param>
+ protected Function(REngine engine, IntPtr pointer)
+ : base(engine, pointer)
+ { }
- /// <summary>
- /// Executes the function.
- /// </summary>
- /// <param name="args">The arguments.</param>
- /// <returns>The return value.</returns>
- public abstract SymbolicExpression Invoke(SymbolicExpression[] args);
- }
-}
+ /// <summary>
+ /// Executes the function.
+ /// </summary>
+ /// <param name="args">The arguments.</param>
+ /// <returns>The return value.</returns>
+ public abstract SymbolicExpression Invoke(SymbolicExpression[] args);
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/GenericVector.cs b/rdotnet/R.NET/GenericVector.cs
index 411d436..bbd05c0 100644
--- a/rdotnet/R.NET/GenericVector.cs
+++ b/rdotnet/R.NET/GenericVector.cs
@@ -1,97 +1,120 @@
-using System;
+using RDotNet.Dynamic;
+using RDotNet.Internals;
+using System;
using System.Collections.Generic;
using System.Dynamic;
using System.Runtime.InteropServices;
using System.Security.Permissions;
-using RDotNet.Dynamic;
-using RDotNet.Internals;
namespace RDotNet
{
- /// <summary>
- /// A generic list. This is also known as list in R.
- /// </summary>
- [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
- public class GenericVector : Vector<SymbolicExpression>
- {
- /// <summary>
- /// Creates a new empty GenericVector with the specified length.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="length">The length.</param>
- public GenericVector(REngine engine, int length)
- : base(engine,
engine.GetFunction<Rf_allocVector>("Rf_allocVector")(SymbolicExpressionType.List, length))
- {}
+ /// <summary>
+ /// A generic list. This is also known as list in R.
+ /// </summary>
+ [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+ public class GenericVector : Vector<SymbolicExpression>
+ {
+ /// <summary>
+ /// Creates a new empty GenericVector with the specified length.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="length">The length.</param>
+ public GenericVector(REngine engine, int length)
+ : base(engine, engine.GetFunction<Rf_allocVector>()(SymbolicExpressionType.List, length))
+ { }
+
+ /// <summary>
+ /// Creates a new GenericVector with the specified values.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="list">The values.</param>
+ public GenericVector(REngine engine, IEnumerable<SymbolicExpression> list)
+ : base(engine, SymbolicExpressionType.List, list)
+ { }
+
+ /// <summary>
+ /// Creates a new instance for a list.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="coerced">The pointer to a list.</param>
+ protected internal GenericVector(REngine engine, IntPtr coerced)
+ : base(engine, coerced)
+ { }
+
+ /// <summary>
+ /// Gets or sets the element at the specified index.
+ /// </summary>
+ /// <param name="index">The zero-based index of the element to get or set.</param>
+ /// <returns>The element at the specified index.</returns>
+ public override SymbolicExpression this[int index]
+ {
+ get
+ {
+ if (index < 0 || Length <= index)
+ {
+ throw new ArgumentOutOfRangeException();
+ }
+ using (new ProtectedPointer(this))
+ {
+ return GetValue(index);
+ }
+ }
+ set
+ {
+ if (index < 0 || Length <= index)
+ {
+ throw new ArgumentOutOfRangeException();
+ }
+ using (new ProtectedPointer(this))
+ {
+ SetValue(index, value);
+ }
+ }
+ }
- /// <summary>
- /// Creates a new GenericVector with the specified values.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="list">The values.</param>
- public GenericVector(REngine engine, IEnumerable<SymbolicExpression> list)
- : base(engine, SymbolicExpressionType.List, list)
- {}
+ private SymbolicExpression GetValue(int index)
+ {
+ int offset = GetOffset(index);
+ IntPtr pointer = Marshal.ReadIntPtr(DataPointer, offset);
+ return new SymbolicExpression(Engine, pointer);
+ }
- /// <summary>
- /// Creates a new instance for a list.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="coerced">The pointer to a list.</param>
- protected internal GenericVector(REngine engine, IntPtr coerced)
- : base(engine, coerced)
- {}
+ private void SetValue(int index, SymbolicExpression value)
+ {
+ int offset = GetOffset(index);
+ Marshal.WriteIntPtr(DataPointer, offset, (value ?? Engine.NilValue).DangerousGetHandle());
+ }
- /// <summary>
- /// Gets or sets the element at the specified index.
- /// </summary>
- /// <param name="index">The zero-based index of the element to get or set.</param>
- /// <returns>The element at the specified index.</returns>
- public override SymbolicExpression this[int index]
- {
- get
- {
- if (index < 0 || Length <= index)
- {
- throw new ArgumentOutOfRangeException();
- }
- using (new ProtectedPointer(this))
- {
- int offset = GetOffset(index);
- IntPtr pointer = Marshal.ReadIntPtr(DataPointer, offset);
- return new SymbolicExpression(Engine, pointer);
- }
- }
- set
- {
- if (index < 0 || Length <= index)
- {
- throw new ArgumentOutOfRangeException();
- }
- using (new ProtectedPointer(this))
- {
- int offset = GetOffset(index);
- Marshal.WriteIntPtr(DataPointer, offset, (value ??
Engine.NilValue).DangerousGetHandle());
- }
- }
- }
+ protected override SymbolicExpression[] GetArrayFast()
+ {
+ var res = new SymbolicExpression[this.Length];
+ for (int i = 0; i < res.Length; i++)
+ res[i] = GetValue(i);
+ return res;
+ }
+ protected override void SetVectorDirect(SymbolicExpression[] values)
+ {
+ for (int i = 0; i < values.Length; i++)
+ SetValue(i, values[i]);
+ }
- protected override int DataSize
- {
- get { return Marshal.SizeOf(typeof(IntPtr)); }
- }
+ protected override int DataSize
+ {
+ get { return Marshal.SizeOf(typeof(IntPtr)); }
+ }
- /// <summary>
- /// Converts into a <see cref="RDotNet.Pairlist"/>.
- /// </summary>
- /// <returns>The pairlist.</returns>
- public Pairlist ToPairlist()
- {
- return new Pairlist(Engine,
Engine.GetFunction<Rf_VectorToPairList>("Rf_VectorToPairList")(handle));
- }
+ /// <summary>
+ /// Converts into a <see cref="RDotNet.Pairlist"/>.
+ /// </summary>
+ /// <returns>The pairlist.</returns>
+ public Pairlist ToPairlist()
+ {
+ return new Pairlist(Engine, Engine.GetFunction<Rf_VectorToPairList>()(handle));
+ }
- public override DynamicMetaObject GetMetaObject(System.Linq.Expressions.Expression parameter)
- {
- return new ListDynamicMeta(parameter, this);
- }
- }
-}
+ public override DynamicMetaObject GetMetaObject(System.Linq.Expressions.Expression parameter)
+ {
+ return new ListDynamicMeta(parameter, this);
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/IntegerMatrix.cs b/rdotnet/R.NET/IntegerMatrix.cs
index 648be64..e519003 100644
--- a/rdotnet/R.NET/IntegerMatrix.cs
+++ b/rdotnet/R.NET/IntegerMatrix.cs
@@ -1,97 +1,110 @@
-using System;
+using RDotNet.Internals;
+using System;
using System.Runtime.InteropServices;
using System.Security.Permissions;
-using RDotNet.Internals;
namespace RDotNet
{
- /// <summary>
- /// A matrix of integers from <c>-2^31 + 1</c> to <c>2^31 - 1</c>.
- /// </summary>
- /// <remarks>
- /// The minimum value of IntegerVector is different from that of System.Int32 in .NET Framework.
- /// </remarks>
- [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
- public class IntegerMatrix : Matrix<int>
- {
- /// <summary>
- /// Creates a new empty IntegerMatrix with the specified size.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="rowCount">The row size.</param>
- /// <param name="columnCount">The column size.</param>
- /// <seealso cref="REngineExtension.CreateIntegerMatrix(REngine, int, int)"/>
- public IntegerMatrix(REngine engine, int rowCount, int columnCount)
- : base(engine, SymbolicExpressionType.IntegerVector, rowCount, columnCount)
- {}
+ /// <summary>
+ /// A matrix of integers from <c>-2^31 + 1</c> to <c>2^31 - 1</c>.
+ /// </summary>
+ /// <remarks>
+ /// The minimum value of IntegerVector is different from that of System.Int32 in .NET Framework.
+ /// </remarks>
+ [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+ public class IntegerMatrix : Matrix<int>
+ {
+ /// <summary>
+ /// Creates a new empty IntegerMatrix with the specified size.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="rowCount">The row size.</param>
+ /// <param name="columnCount">The column size.</param>
+ /// <seealso cref="REngineExtension.CreateIntegerMatrix(REngine, int, int)"/>
+ public IntegerMatrix(REngine engine, int rowCount, int columnCount)
+ : base(engine, SymbolicExpressionType.IntegerVector, rowCount, columnCount)
+ { }
- /// <summary>
- /// Creates a new IntegerMatrix with the specified values.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="matrix">The values.</param>
- /// <seealso cref="REngineExtension.CreateIntegerMatrix(REngine, int[,])"/>
- public IntegerMatrix(REngine engine, int[,] matrix)
- : base(engine, SymbolicExpressionType.IntegerVector, matrix)
- {}
+ /// <summary>
+ /// Creates a new IntegerMatrix with the specified values.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="matrix">The values.</param>
+ /// <seealso cref="REngineExtension.CreateIntegerMatrix(REngine, int[,])"/>
+ public IntegerMatrix(REngine engine, int[,] matrix)
+ : base(engine, SymbolicExpressionType.IntegerVector, matrix)
+ { }
- /// <summary>
- /// Creates a new instance for an integer matrix.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="coerced">The pointer to an integer matrix.</param>
- protected internal IntegerMatrix(REngine engine, IntPtr coerced)
- : base(engine, coerced)
- {}
+ /// <summary>
+ /// Creates a new instance for an integer matrix.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="coerced">The pointer to an integer matrix.</param>
+ protected internal IntegerMatrix(REngine engine, IntPtr coerced)
+ : base(engine, coerced)
+ { }
- /// <summary>
- /// Gets or sets the element at the specified index.
- /// </summary>
- /// <param name="rowIndex">The zero-based rowIndex index of the element to get or set.</param>
- /// <param name="columnIndex">The zero-based columnIndex index of the element to get or
set.</param>
- /// <returns>The element at the specified index.</returns>
- public override int this[int rowIndex, int columnIndex]
- {
- get
- {
- if (rowIndex < 0 || RowCount <= rowIndex)
- {
- throw new ArgumentOutOfRangeException("rowIndex");
- }
- if (columnIndex < 0 || ColumnCount <= columnIndex)
- {
- throw new ArgumentOutOfRangeException("columnIndex");
- }
- using (new ProtectedPointer(this))
- {
- int offset = GetOffset(rowIndex, columnIndex);
- return Marshal.ReadInt32(DataPointer, offset);
- }
- }
- set
- {
- if (rowIndex < 0 || RowCount <= rowIndex)
- {
- throw new ArgumentOutOfRangeException("rowIndex");
- }
- if (columnIndex < 0 || ColumnCount <= columnIndex)
- {
- throw new ArgumentOutOfRangeException("columnIndex");
- }
- using (new ProtectedPointer(this))
- {
- int offset = GetOffset(rowIndex, columnIndex);
- Marshal.WriteInt32(DataPointer, offset, value);
- }
- }
- }
+ /// <summary>
+ /// Gets or sets the element at the specified index.
+ /// </summary>
+ /// <param name="rowIndex">The zero-based rowIndex index of the element to get or set.</param>
+ /// <param name="columnIndex">The zero-based columnIndex index of the element to get or set.</param>
+ /// <returns>The element at the specified index.</returns>
+ public override int this[int rowIndex, int columnIndex]
+ {
+ get
+ {
+ if (rowIndex < 0 || RowCount <= rowIndex)
+ {
+ throw new ArgumentOutOfRangeException("rowIndex");
+ }
+ if (columnIndex < 0 || ColumnCount <= columnIndex)
+ {
+ throw new ArgumentOutOfRangeException("columnIndex");
+ }
+ using (new ProtectedPointer(this))
+ {
+ int offset = GetOffset(rowIndex, columnIndex);
+ return Marshal.ReadInt32(DataPointer, offset);
+ }
+ }
+ set
+ {
+ if (rowIndex < 0 || RowCount <= rowIndex)
+ {
+ throw new ArgumentOutOfRangeException("rowIndex");
+ }
+ if (columnIndex < 0 || ColumnCount <= columnIndex)
+ {
+ throw new ArgumentOutOfRangeException("columnIndex");
+ }
+ using (new ProtectedPointer(this))
+ {
+ int offset = GetOffset(rowIndex, columnIndex);
+ Marshal.WriteInt32(DataPointer, offset, value);
+ }
+ }
+ }
- /// <summary>
- /// Gets the size of an integer in byte.
- /// </summary>
- protected override int DataSize
- {
- get { return sizeof(int); }
- }
- }
-}
+ protected override void InitMatrixFastDirect(int[,] matrix)
+ {
+ var values = Utility.ArrayConvertOneDim(matrix);
+ Marshal.Copy(values, 0, DataPointer, values.Length);
+ }
+
+ protected override int[,] GetArrayFast()
+ {
+ var values = new int[this.ItemCount];
+ Marshal.Copy(DataPointer, values, 0, values.Length);
+ return Utility.ArrayConvertAllTwoDim(values, this.RowCount, this.ColumnCount);
+ }
+
+ /// <summary>
+ /// Gets the size of an integer in byte.
+ /// </summary>
+ protected override int DataSize
+ {
+ get { return sizeof(int); }
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/IntegerVector.cs b/rdotnet/R.NET/IntegerVector.cs
index 0f225db..603dff1 100644
--- a/rdotnet/R.NET/IntegerVector.cs
+++ b/rdotnet/R.NET/IntegerVector.cs
@@ -1,131 +1,143 @@
-using System;
+using RDotNet.Internals;
+using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Security.Permissions;
-using RDotNet.Internals;
namespace RDotNet
{
- /// <summary>
- /// A collection of integers from <c>-2^31 + 1</c> to <c>2^31 - 1</c>.
- /// </summary>
- /// <remarks>
- /// The minimum value of IntegerVector is different from that of System.Int32 in .NET Framework.
- /// </remarks>
- [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
- public class IntegerVector : Vector<int>
- {
- /// <summary>
- /// Creates a new empty IntegerVector with the specified length.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="length">The length.</param>
- /// <seealso cref="REngineExtension.CreateIntegerVector(REngine, int)"/>
- public IntegerVector(REngine engine, int length)
- : base(engine, SymbolicExpressionType.IntegerVector, length)
- {}
+ /// <summary>
+ /// A collection of integers from <c>-2^31 + 1</c> to <c>2^31 - 1</c>.
+ /// </summary>
+ /// <remarks>
+ /// The minimum value of IntegerVector is different from that of System.Int32 in .NET Framework.
+ /// </remarks>
+ [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+ public class IntegerVector : Vector<int>
+ {
+ /// <summary>
+ /// Creates a new empty IntegerVector with the specified length.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="length">The length.</param>
+ /// <seealso cref="REngineExtension.CreateIntegerVector(REngine, int)"/>
+ public IntegerVector(REngine engine, int length)
+ : base(engine, SymbolicExpressionType.IntegerVector, length)
+ { }
- /// <summary>
- /// Creates a new IntegerVector with the specified values.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="vector">The values.</param>
- /// <seealso cref="REngineExtension.CreateIntegerVector(REngine, IEnumerable{int})"/>
- public IntegerVector(REngine engine, IEnumerable<int> vector)
- : base(engine, SymbolicExpressionType.IntegerVector, vector)
- {}
+ /// <summary>
+ /// Creates a new IntegerVector with the specified values.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="vector">The values.</param>
+ /// <seealso cref="REngineExtension.CreateIntegerVector(REngine, IEnumerable{int})"/>
+ public IntegerVector(REngine engine, IEnumerable<int> vector)
+ : base(engine, SymbolicExpressionType.IntegerVector, vector)
+ { }
- /// <summary>
- /// Creates a new IntegerVector with the specified values.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="vector">The values.</param>
- /// <seealso cref="REngineExtension.CreateIntegerVector(REngine, int[])"/>
- public IntegerVector(REngine engine, int[] vector)
- : base(engine, SymbolicExpressionType.IntegerVector, vector.Length)
- {
- Marshal.Copy(vector, 0, DataPointer, vector.Length);
- }
+ /// <summary>
+ /// Creates a new IntegerVector with the specified values.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="vector">The values.</param>
+ /// <seealso cref="REngineExtension.CreateIntegerVector(REngine, int[])"/>
+ public IntegerVector(REngine engine, int[] vector)
+ : base(engine, SymbolicExpressionType.IntegerVector, vector.Length)
+ {
+ Marshal.Copy(vector, 0, DataPointer, vector.Length);
+ }
- /// <summary>
- /// Creates a new instance for an integer vector.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="coerced">The pointer to an integer vector.</param>
- protected internal IntegerVector(REngine engine, IntPtr coerced)
- : base(engine, coerced)
- {}
+ /// <summary>
+ /// Creates a new instance for an integer vector.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="coerced">The pointer to an integer vector.</param>
+ protected internal IntegerVector(REngine engine, IntPtr coerced)
+ : base(engine, coerced)
+ { }
- /// <summary>
- /// Gets or sets the element at the specified index.
- /// </summary>
- /// <param name="index">The zero-based index of the element to get or set.</param>
- /// <returns>The element at the specified index.</returns>
- public override int this[int index]
- {
- get
- {
- if (index < 0 || Length <= index)
- {
- throw new ArgumentOutOfRangeException();
- }
- using (new ProtectedPointer(this))
- {
- int offset = GetOffset(index);
- return Marshal.ReadInt32(DataPointer, offset);
- }
- }
- set
- {
- if (index < 0 || Length <= index)
- {
- throw new ArgumentOutOfRangeException();
- }
- using (new ProtectedPointer(this))
- {
- int offset = GetOffset(index);
- Marshal.WriteInt32(DataPointer, offset, value);
- }
- }
- }
+ /// <summary>
+ /// Gets or sets the element at the specified index.
+ /// </summary>
+ /// <param name="index">The zero-based index of the element to get or set.</param>
+ /// <returns>The element at the specified index.</returns>
+ public override int this[int index]
+ {
+ get
+ {
+ if (index < 0 || Length <= index)
+ {
+ throw new ArgumentOutOfRangeException();
+ }
+ using (new ProtectedPointer(this))
+ {
+ int offset = GetOffset(index);
+ return Marshal.ReadInt32(DataPointer, offset);
+ }
+ }
+ set
+ {
+ if (index < 0 || Length <= index)
+ {
+ throw new ArgumentOutOfRangeException();
+ }
+ using (new ProtectedPointer(this))
+ {
+ int offset = GetOffset(index);
+ Marshal.WriteInt32(DataPointer, offset, value);
+ }
+ }
+ }
- /// <summary>
- /// Gets the size of an integer in byte.
- /// </summary>
- protected override int DataSize
- {
- get { return sizeof(int); }
- }
+ protected override int[] GetArrayFast()
+ {
+ var res = new int[this.Length];
+ Marshal.Copy(DataPointer, res, 0, res.Length);
+ return res;
+ }
- /// <summary>
- /// Copies the elements to the specified array.
- /// </summary>
- /// <param name="destination">The destination array.</param>
- /// <param name="length">The length to copy.</param>
- /// <param name="sourceIndex">The first index of the vector.</param>
- /// <param name="destinationIndex">The first index of the destination array.</param>
- public new void CopyTo(int[] destination, int length, int sourceIndex = 0, int
destinationIndex = 0)
- {
- if (destination == null)
- {
- throw new ArgumentNullException("destination");
- }
- if (length < 0)
- {
- throw new IndexOutOfRangeException("length");
- }
- if (sourceIndex < 0 || Length < sourceIndex + length)
- {
- throw new IndexOutOfRangeException("sourceIndex");
- }
- if (destinationIndex < 0 || destination.Length < destinationIndex + length)
- {
- throw new IndexOutOfRangeException("destinationIndex");
- }
+ protected override void SetVectorDirect(int[] values)
+ {
+ Marshal.Copy(values, 0, DataPointer, values.Length);
+ }
- int offset = GetOffset(sourceIndex);
- IntPtr pointer = IntPtr.Add(DataPointer, offset);
- Marshal.Copy(pointer, destination, destinationIndex, length);
- }
- }
-}
+ /// <summary>
+ /// Gets the size of an integer in byte.
+ /// </summary>
+ protected override int DataSize
+ {
+ get { return sizeof(int); }
+ }
+
+ /// <summary>
+ /// Copies the elements to the specified array.
+ /// </summary>
+ /// <param name="destination">The destination array.</param>
+ /// <param name="length">The length to copy.</param>
+ /// <param name="sourceIndex">The first index of the vector.</param>
+ /// <param name="destinationIndex">The first index of the destination array.</param>
+ public new void CopyTo(int[] destination, int length, int sourceIndex = 0, int destinationIndex = 0)
+ {
+ if (destination == null)
+ {
+ throw new ArgumentNullException("destination");
+ }
+ if (length < 0)
+ {
+ throw new IndexOutOfRangeException("length");
+ }
+ if (sourceIndex < 0 || Length < sourceIndex + length)
+ {
+ throw new IndexOutOfRangeException("sourceIndex");
+ }
+ if (destinationIndex < 0 || destination.Length < destinationIndex + length)
+ {
+ throw new IndexOutOfRangeException("destinationIndex");
+ }
+
+ int offset = GetOffset(sourceIndex);
+ IntPtr pointer = IntPtr.Add(DataPointer, offset);
+ Marshal.Copy(pointer, destination, destinationIndex, length);
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/InternalString.cs b/rdotnet/R.NET/InternalString.cs
index eb984b2..7b1de9d 100644
--- a/rdotnet/R.NET/InternalString.cs
+++ b/rdotnet/R.NET/InternalString.cs
@@ -1,48 +1,71 @@
-using System;
+using RDotNet.Internals;
+using System;
+using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Security.Permissions;
-using RDotNet.Internals;
namespace RDotNet
{
- /// <summary>
- /// Internal string.
- /// </summary>
- [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
- public class InternalString : SymbolicExpression
- {
- /// <summary>
- /// Creates a new instance.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="pointer">The pointer to a string.</param>
- public InternalString(REngine engine, IntPtr pointer)
- : base(engine, pointer)
- {}
+ /// <summary>
+ /// Internal string.
+ /// </summary>
+ [DebuggerDisplay("Content = {ToString()}; RObjectType = {Type}")]
+ [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+ public class InternalString : SymbolicExpression
+ {
+ /// <summary>
+ /// Creates a new instance.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="pointer">The pointer to a string.</param>
+ public InternalString(REngine engine, IntPtr pointer)
+ : base(engine, pointer)
+ { }
- /// <summary>
- /// Creates a new instance.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="s">The string</param>
- public InternalString(REngine engine, string s)
- : base(engine, engine.GetFunction<Rf_mkChar>("Rf_mkChar")(s))
- {}
+ /// <summary>
+ /// Creates a new instance.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="s">The string</param>
+ public InternalString(REngine engine, string s)
+ : base(engine, engine.GetFunction<Rf_mkChar>()(s))
+ { }
- /// <summary>
- /// Converts to the string into .NET Framework string.
- /// </summary>
- /// <param name="s">The R string.</param>
- /// <returns>The .NET Framework string.</returns>
- public static implicit operator string(InternalString s)
- {
- return s.ToString();
- }
+ /// <summary>
+ /// Converts to the string into .NET Framework string.
+ /// </summary>
+ /// <param name="s">The R string.</param>
+ /// <returns>The .NET Framework string.</returns>
+ public static implicit operator string(InternalString s)
+ {
+ return s.ToString();
+ }
- public override string ToString()
- {
- IntPtr pointer = IntPtr.Add(handle, Marshal.SizeOf(typeof(VECTOR_SEXPREC)));
- return Marshal.PtrToStringAnsi(pointer);
- }
- }
-}
+ /// <summary>
+ /// Gets the string representation of the string object.
+ /// This returns <c>"NA"</c> if the value is <c>NA</c>, whereas <see cref="GetInternalValue()"/>
returns <c>null</c>.
+ /// </summary>
+ /// <returns>The string representation.</returns>
+ /// <seealso cref="GetInternalValue()"/>
+ public override string ToString()
+ {
+ IntPtr pointer = IntPtr.Add(handle, Marshal.SizeOf(typeof(VECTOR_SEXPREC)));
+ return Marshal.PtrToStringAnsi(pointer);
+ }
+
+ /// <summary>
+ /// Gets the string representation of the string object.
+ /// This returns <c>null</c> if the value is <c>NA</c>, whereas <see cref="ToString()"/> returns
<c>"NA"</c>.
+ /// </summary>
+ /// <returns>The string representation.</returns>
+ public string GetInternalValue()
+ {
+ if (handle == Engine.GetPredefinedSymbol("R_NaString").DangerousGetHandle())
+ {
+ return null;
+ }
+ IntPtr pointer = IntPtr.Add(handle, Marshal.SizeOf(typeof(VECTOR_SEXPREC)));
+ return Marshal.PtrToStringAnsi(pointer);
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/BusyType.cs b/rdotnet/R.NET/Internals/BusyType.cs
index 05fd721..5adb345 100644
--- a/rdotnet/R.NET/Internals/BusyType.cs
+++ b/rdotnet/R.NET/Internals/BusyType.cs
@@ -1,18 +1,18 @@
namespace RDotNet.Internals
{
- /// <summary>
- /// Type of R's working.
- /// </summary>
- public enum BusyType
- {
- /// <summary>
- /// Terminated states of business.
- /// </summary>
- None = 0,
+ /// <summary>
+ /// Type of R's working.
+ /// </summary>
+ public enum BusyType
+ {
+ /// <summary>
+ /// Terminated states of business.
+ /// </summary>
+ None = 0,
- /// <summary>
- /// Embarks on an extended computation
- /// </summary>
- ExtendedComputation = 1,
- }
-}
+ /// <summary>
+ /// Embarks on an extended computation
+ /// </summary>
+ ExtendedComputation = 1,
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/ConsoleOutputType.cs b/rdotnet/R.NET/Internals/ConsoleOutputType.cs
index 884515a..c61c7ab 100644
--- a/rdotnet/R.NET/Internals/ConsoleOutputType.cs
+++ b/rdotnet/R.NET/Internals/ConsoleOutputType.cs
@@ -1,13 +1,13 @@
namespace RDotNet.Internals
{
- /// <summary>
- /// Specifies console to output.
- /// </summary>
- public enum ConsoleOutputType
- {
- /// <summary>
- /// The default value.
- /// </summary>
- None = 0,
- }
-}
+ /// <summary>
+ /// Specifies console to output.
+ /// </summary>
+ public enum ConsoleOutputType
+ {
+ /// <summary>
+ /// The default value.
+ /// </summary>
+ None = 0,
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/Delegates.cs b/rdotnet/R.NET/Internals/Delegates.cs
index 44c0a64..c4a4c0d 100644
--- a/rdotnet/R.NET/Internals/Delegates.cs
+++ b/rdotnet/R.NET/Internals/Delegates.cs
@@ -5,132 +5,159 @@ using WindowsRStart = RDotNet.Internals.Windows.RStart;
namespace RDotNet.Internals
{
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate void R_setStartTime();
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void R_setStartTime();
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate int Rf_initialize_R(int ac, string[] argv);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate int Rf_initialize_R(int ac, string[] argv);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate void R_SetParams_Unix(ref UnixRStart start);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void R_SetParams_Unix(ref UnixRStart start);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate void R_SetParams_Windows(ref WindowsRStart start);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void R_SetParams_Windows(ref WindowsRStart start);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate void R_set_command_line_arguments(int argc, string[] argv);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void R_set_command_line_arguments(int argc, string[] argv);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate void setup_Rmainloop();
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void setup_Rmainloop();
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate int Rf_initEmbeddedR(int argc, string[] argv);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate int Rf_initEmbeddedR(int argc, string[] argv);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate void Rf_endEmbeddedR(int fatal);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void Rf_endEmbeddedR(int fatal);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate IntPtr Rf_protect(IntPtr sexp);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void R_RunExitFinalizers();
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate void Rf_unprotect(int count);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void Rf_CleanEd();
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate void Rf_unprotect_ptr(IntPtr sexp);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void R_CleanTempDir();
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate IntPtr Rf_install(string s);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr Rf_protect(IntPtr sexp);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate IntPtr Rf_mkString(string s);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void R_PreserveObject(IntPtr sexp);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate IntPtr Rf_mkChar(string s);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void R_ReleaseObject(IntPtr sexp);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate IntPtr Rf_allocVector(SymbolicExpressionType type, int length);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void Rf_unprotect(int count);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate IntPtr Rf_coerceVector(IntPtr sexp, SymbolicExpressionType type);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void Rf_unprotect_ptr(IntPtr sexp);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate bool Rf_isVector(IntPtr sexp);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr Rf_install(string s);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate int Rf_length(IntPtr sexp);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr Rf_mkString(string s);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate IntPtr Rf_allocMatrix(SymbolicExpressionType type, int rowCount, int columnCount);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr Rf_mkChar(string s);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate bool Rf_isMatrix(IntPtr sexp);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr Rf_allocVector(SymbolicExpressionType type, int length);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate int Rf_nrows(IntPtr sexp);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr Rf_coerceVector(IntPtr sexp, SymbolicExpressionType type);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate int Rf_ncols(IntPtr sexp);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate bool Rf_isVector(IntPtr sexp);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate IntPtr Rf_allocList(int length);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate bool Rf_isFrame(IntPtr sexp);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate bool Rf_isList(IntPtr sexp);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate int Rf_length(IntPtr sexp);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate IntPtr Rf_eval(IntPtr statement, IntPtr environment);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr Rf_allocMatrix(SymbolicExpressionType type, int rowCount, int columnCount);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate IntPtr R_tryEval(IntPtr statement, IntPtr environment, out bool errorOccurred);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate bool Rf_isMatrix(IntPtr sexp);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate IntPtr R_ParseVector(IntPtr statement, int statementCount, out ParseStatus status,
IntPtr _);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate int Rf_nrows(IntPtr sexp);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate IntPtr Rf_findVar(IntPtr name, IntPtr environment);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate int Rf_ncols(IntPtr sexp);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate void Rf_setVar(IntPtr name, IntPtr value, IntPtr environment);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr Rf_allocList(int length);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate IntPtr Rf_getAttrib(IntPtr sexp, IntPtr name);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate bool Rf_isList(IntPtr sexp);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate IntPtr Rf_setAttrib(IntPtr sexp, IntPtr name, IntPtr value);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr Rf_eval(IntPtr statement, IntPtr environment);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate bool Rf_isEnvironment(IntPtr sexp);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr R_tryEval(IntPtr statement, IntPtr environment, out bool errorOccurred);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate bool Rf_isExpression(IntPtr sexp);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr R_ParseVector(IntPtr statement, int statementCount, out ParseStatus status,
IntPtr _);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate bool Rf_isSymbol(IntPtr sexp);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr Rf_findVar(IntPtr name, IntPtr environment);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate bool Rf_isLanguage(IntPtr sexp);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void Rf_setVar(IntPtr name, IntPtr value, IntPtr environment);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate bool Rf_isFunction(IntPtr sexp);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr Rf_getAttrib(IntPtr sexp, IntPtr name);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate IntPtr R_lsInternal(IntPtr environment, bool all);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr Rf_setAttrib(IntPtr sexp, IntPtr name, IntPtr value);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate IntPtr Rf_applyClosure(IntPtr call, IntPtr value, IntPtr arguments, IntPtr
environment, IntPtr suppliedEnvironment);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate bool Rf_isEnvironment(IntPtr sexp);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate IntPtr Rf_VectorToPairList(IntPtr sexp);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate bool Rf_isExpression(IntPtr sexp);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate IntPtr Rf_allocSExp(SymbolicExpressionType type);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate bool Rf_isSymbol(IntPtr sexp);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate IntPtr Rf_cons(IntPtr sexp, IntPtr next);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate bool Rf_isLanguage(IntPtr sexp);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate IntPtr Rf_lcons(IntPtr sexp, IntPtr next);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate bool Rf_isFunction(IntPtr sexp);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate void R_gc();
-}
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate bool Rf_isFactor(IntPtr sexp);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate bool Rf_isOrdered(IntPtr sexp);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr R_lsInternal(IntPtr environment, bool all);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr Rf_applyClosure(IntPtr call, IntPtr value, IntPtr arguments, IntPtr environment,
IntPtr suppliedEnvironment);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr Rf_VectorToPairList(IntPtr sexp);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr Rf_allocSExp(SymbolicExpressionType type);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr Rf_NewEnvironment(IntPtr names, IntPtr values, IntPtr parent);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr Rf_cons(IntPtr sexp, IntPtr next);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr Rf_lcons(IntPtr sexp, IntPtr next);
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void R_gc();
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/OutputMode.cs b/rdotnet/R.NET/Internals/OutputMode.cs
index 1365a57..1794aec 100644
--- a/rdotnet/R.NET/Internals/OutputMode.cs
+++ b/rdotnet/R.NET/Internals/OutputMode.cs
@@ -2,30 +2,30 @@ using System;
namespace RDotNet.Internals
{
- /// <summary>
- /// Specifies output mode.
- /// </summary>
- [Flags]
- public enum OutputMode
- {
- /// <summary>
- /// No option.
- /// </summary>
- None = 0x0,
+ /// <summary>
+ /// Specifies output mode.
+ /// </summary>
+ [Flags]
+ public enum OutputMode
+ {
+ /// <summary>
+ /// No option.
+ /// </summary>
+ None = 0x0,
- /// <summary>
- /// Quiet mode.
- /// </summary>
- Quiet = 0x1,
+ /// <summary>
+ /// Quiet mode.
+ /// </summary>
+ Quiet = 0x1,
- /// <summary>
- /// Slave mode.
- /// </summary>
- Slave = 0x2,
+ /// <summary>
+ /// Slave mode.
+ /// </summary>
+ Slave = 0x2,
- /// <summary>
- /// Verbose mode.
- /// </summary>
- Verbose = 0x4,
- }
-}
+ /// <summary>
+ /// Verbose mode.
+ /// </summary>
+ Verbose = 0x4,
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/ParseStatus.cs b/rdotnet/R.NET/Internals/ParseStatus.cs
index 84fb3ae..0e321f8 100644
--- a/rdotnet/R.NET/Internals/ParseStatus.cs
+++ b/rdotnet/R.NET/Internals/ParseStatus.cs
@@ -1,46 +1,46 @@
namespace RDotNet.Internals
{
- /// <summary>
- /// Parsing status enumeration.
- /// </summary>
- public enum ParseStatus
- {
- /// <summary>
- /// The default value.
- /// </summary>
- Null,
+ /// <summary>
+ /// Parsing status enumeration.
+ /// </summary>
+ public enum ParseStatus
+ {
+ /// <summary>
+ /// The default value.
+ /// </summary>
+ Null,
- /// <summary>
- /// No error.
- /// </summary>
- OK,
+ /// <summary>
+ /// No error.
+ /// </summary>
+ OK,
- /// <summary>
- /// Statement is incomplete.
- /// </summary>
- Incomplete,
+ /// <summary>
+ /// Statement is incomplete.
+ /// </summary>
+ Incomplete,
- /// <summary>
- /// Error occurred.
- /// </summary>
- Error,
+ /// <summary>
+ /// Error occurred.
+ /// </summary>
+ Error,
- /// <summary>
- /// EOF.
- /// </summary>
- EOF,
+ /// <summary>
+ /// EOF.
+ /// </summary>
+ EOF,
- //#region Original Definitions
- //[Obsolete("Use ParseStatus.Null instead.")]
- //PARSE_NULL = Null,
- //[Obsolete("Use ParseStatus.OK instead.")]
- //PARSE_OK = OK,
- //[Obsolete("Use ParseStatus.Incomplete instead.")]
- //PARSE_INCOMPLETE = Incomplete,
- //[Obsolete("Use ParseStatus.Error instead.")]
- //PARSE_ERROR = Error,
- //[Obsolete("Use ParseStatus.EOF instead.")]
- //PARSE_EOF = EOF,
- //#endregion
- }
-}
+ //#region Original Definitions
+ //[Obsolete("Use ParseStatus.Null instead.")]
+ //PARSE_NULL = Null,
+ //[Obsolete("Use ParseStatus.OK instead.")]
+ //PARSE_OK = OK,
+ //[Obsolete("Use ParseStatus.Incomplete instead.")]
+ //PARSE_INCOMPLETE = Incomplete,
+ //[Obsolete("Use ParseStatus.Error instead.")]
+ //PARSE_ERROR = Error,
+ //[Obsolete("Use ParseStatus.EOF instead.")]
+ //PARSE_EOF = EOF,
+ //#endregion
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/SEXPREC.cs b/rdotnet/R.NET/Internals/SEXPREC.cs
index 70a2ca6..cddd948 100644
--- a/rdotnet/R.NET/Internals/SEXPREC.cs
+++ b/rdotnet/R.NET/Internals/SEXPREC.cs
@@ -3,135 +3,135 @@ using System.Runtime.InteropServices;
namespace RDotNet.Internals
{
- [StructLayout(LayoutKind.Sequential)]
- internal struct SEXPREC
- {
- private SEXPREC_HEADER header;
- private u u;
-
- public sxpinfo sxpinfo
- {
- get { return this.header.sxpinfo; }
- }
-
- public IntPtr attrib
- {
- get { return this.header.attrib; }
- }
-
- public IntPtr gengc_next_node
- {
- get { return this.header.gengc_next_node; }
- }
-
- public IntPtr gengc_prev_node
- {
- get { return this.header.gengc_prev_node; }
- }
-
- internal primsxp primsxp
- {
- get { return this.u.primsxp; }
- }
-
- internal symsxp symsxp
- {
- get { return this.u.symsxp; }
- }
-
- internal listsxp listsxp
- {
- get { return this.u.listsxp; }
- }
-
- internal envsxp envsxp
- {
- get { return this.u.envsxp; }
- }
-
- internal closxp closxp
- {
- get { return this.u.closxp; }
- }
-
- internal promsxp promsxp
- {
- get { return this.u.promsxp; }
- }
- }
-
- [StructLayout(LayoutKind.Explicit)]
- internal struct u
- {
- [FieldOffset(0)]
- internal primsxp primsxp;
-
- [FieldOffset(0)]
- internal symsxp symsxp;
-
- [FieldOffset(0)]
- internal listsxp listsxp;
-
- [FieldOffset(0)]
- internal envsxp envsxp;
-
- [FieldOffset(0)]
- internal closxp closxp;
-
- [FieldOffset(0)]
- internal promsxp promsxp;
- }
-
- [StructLayout(LayoutKind.Sequential)]
- internal struct vecsxp
- {
- public int length;
- public int truelength;
- }
-
- [StructLayout(LayoutKind.Sequential)]
- internal struct primsxp
- {
- public int offset;
- }
-
- [StructLayout(LayoutKind.Sequential)]
- internal struct symsxp
- {
- public IntPtr pname;
- public IntPtr value;
- public IntPtr @internal;
- }
-
- [StructLayout(LayoutKind.Sequential)]
- internal struct listsxp
- {
- public IntPtr carval;
- public IntPtr cdrval;
- public IntPtr tagval;
- }
-
- [StructLayout(LayoutKind.Sequential)]
- internal struct envsxp
- {
- public IntPtr frame;
- public IntPtr enclos;
- public IntPtr hashtab;
- }
-
- [StructLayout(LayoutKind.Sequential)]
- internal struct closxp
- {
- public IntPtr formals;
- public IntPtr body;
- public IntPtr env;
- }
-
- [StructLayout(LayoutKind.Sequential)]
- internal struct promsxp
- {
- public IntPtr value;
- public IntPtr expr;
- public IntPtr env;
- }
-}
+ [StructLayout(LayoutKind.Sequential)]
+ internal struct SEXPREC
+ {
+ private SEXPREC_HEADER header;
+ private u u;
+
+ public sxpinfo sxpinfo
+ {
+ get { return this.header.sxpinfo; }
+ }
+
+ public IntPtr attrib
+ {
+ get { return this.header.attrib; }
+ }
+
+ public IntPtr gengc_next_node
+ {
+ get { return this.header.gengc_next_node; }
+ }
+
+ public IntPtr gengc_prev_node
+ {
+ get { return this.header.gengc_prev_node; }
+ }
+
+ internal primsxp primsxp
+ {
+ get { return this.u.primsxp; }
+ }
+
+ internal symsxp symsxp
+ {
+ get { return this.u.symsxp; }
+ }
+
+ internal listsxp listsxp
+ {
+ get { return this.u.listsxp; }
+ }
+
+ internal envsxp envsxp
+ {
+ get { return this.u.envsxp; }
+ }
+
+ internal closxp closxp
+ {
+ get { return this.u.closxp; }
+ }
+
+ internal promsxp promsxp
+ {
+ get { return this.u.promsxp; }
+ }
+ }
+
+ [StructLayout(LayoutKind.Explicit)]
+ internal struct u
+ {
+ [FieldOffset(0)]
+ internal primsxp primsxp;
+
+ [FieldOffset(0)]
+ internal symsxp symsxp;
+
+ [FieldOffset(0)]
+ internal listsxp listsxp;
+
+ [FieldOffset(0)]
+ internal envsxp envsxp;
+
+ [FieldOffset(0)]
+ internal closxp closxp;
+
+ [FieldOffset(0)]
+ internal promsxp promsxp;
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ internal struct vecsxp
+ {
+ public int length;
+ public int truelength;
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ internal struct primsxp
+ {
+ public int offset;
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ internal struct symsxp
+ {
+ public IntPtr pname;
+ public IntPtr value;
+ public IntPtr @internal;
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ internal struct listsxp
+ {
+ public IntPtr carval;
+ public IntPtr cdrval;
+ public IntPtr tagval;
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ internal struct envsxp
+ {
+ public IntPtr frame;
+ public IntPtr enclos;
+ public IntPtr hashtab;
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ internal struct closxp
+ {
+ public IntPtr formals;
+ public IntPtr body;
+ public IntPtr env;
+ }
+
+ [StructLayout(LayoutKind.Sequential)]
+ internal struct promsxp
+ {
+ public IntPtr value;
+ public IntPtr expr;
+ public IntPtr env;
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/SEXPREC_HEADER.cs b/rdotnet/R.NET/Internals/SEXPREC_HEADER.cs
index 997e5e9..00c56f6 100644
--- a/rdotnet/R.NET/Internals/SEXPREC_HEADER.cs
+++ b/rdotnet/R.NET/Internals/SEXPREC_HEADER.cs
@@ -3,12 +3,12 @@ using System.Runtime.InteropServices;
namespace RDotNet.Internals
{
- [StructLayout(LayoutKind.Sequential)]
- internal struct SEXPREC_HEADER
- {
- public sxpinfo sxpinfo;
- public IntPtr attrib;
- public IntPtr gengc_next_node;
- public IntPtr gengc_prev_node;
- }
-}
+ [StructLayout(LayoutKind.Sequential)]
+ internal struct SEXPREC_HEADER
+ {
+ public sxpinfo sxpinfo;
+ public IntPtr attrib;
+ public IntPtr gengc_next_node;
+ public IntPtr gengc_prev_node;
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/SaveActions.cs b/rdotnet/R.NET/Internals/SaveActions.cs
index 897b8d5..55c26b8 100644
--- a/rdotnet/R.NET/Internals/SaveActions.cs
+++ b/rdotnet/R.NET/Internals/SaveActions.cs
@@ -1,54 +1,54 @@
namespace RDotNet.Internals
{
- /// <summary>
- /// Specifies the restore action.
- /// </summary>
- public enum StartupRestoreAction
- {
- /// <summary>
- /// Not restoring.
- /// </summary>
- NoRestore = 0,
+ /// <summary>
+ /// Specifies the restore action.
+ /// </summary>
+ public enum StartupRestoreAction
+ {
+ /// <summary>
+ /// Not restoring.
+ /// </summary>
+ NoRestore = 0,
- /// <summary>
- /// Restoring.
- /// </summary>
- Restore = 1,
+ /// <summary>
+ /// Restoring.
+ /// </summary>
+ Restore = 1,
- /// <summary>
- /// The default value.
- /// </summary>
- Default = 2,
- }
+ /// <summary>
+ /// The default value.
+ /// </summary>
+ Default = 2,
+ }
- /// <summary>
- /// Specifies the save action.
- /// </summary>
- public enum StartupSaveAction
- {
- /// <summary>
- /// The default value.
- /// </summary>
- Default = 2,
+ /// <summary>
+ /// Specifies the save action.
+ /// </summary>
+ public enum StartupSaveAction
+ {
+ /// <summary>
+ /// The default value.
+ /// </summary>
+ Default = 2,
- /// <summary>
- /// No saving.
- /// </summary>
- NoSave = 3,
+ /// <summary>
+ /// No saving.
+ /// </summary>
+ NoSave = 3,
- /// <summary>
- /// Saving.
- /// </summary>
- Save = 4,
+ /// <summary>
+ /// Saving.
+ /// </summary>
+ Save = 4,
- /// <summary>
- /// Asking user.
- /// </summary>
- Ask = 5,
+ /// <summary>
+ /// Asking user.
+ /// </summary>
+ Ask = 5,
- /// <summary>
- /// Terminates without any actions.
- /// </summary>
- Suicide = 6,
- }
-}
+ /// <summary>
+ /// Terminates without any actions.
+ /// </summary>
+ Suicide = 6,
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/SymbolicExpressionType.cs
b/rdotnet/R.NET/Internals/SymbolicExpressionType.cs
index 7affba6..7ca20e5 100644
--- a/rdotnet/R.NET/Internals/SymbolicExpressionType.cs
+++ b/rdotnet/R.NET/Internals/SymbolicExpressionType.cs
@@ -2,187 +2,187 @@
namespace RDotNet.Internals
{
- /// <summary>
- /// SEXPTYPE enumeration.
- /// </summary>
- public enum SymbolicExpressionType
- {
- /// <summary>
- /// Null.
- /// </summary>
- Null = 0,
-
- /// <summary>
- /// Symbols.
- /// </summary>
- Symbol = 1,
-
- /// <summary>
- /// Pairlists.
- /// </summary>
- Pairlist = 2,
-
- /// <summary>
- /// Closures.
- /// </summary>
- Closure = 3,
-
- /// <summary>
- /// Environments.
- /// </summary>
- Environment = 4,
-
- /// <summary>
- /// To be evaluated.
- /// </summary>
- Promise = 5,
-
- /// <summary>
- /// Pairlists for function calls.
- /// </summary>
- LanguageObject = 6,
-
- /// <summary>
- /// Special functions.
- /// </summary>
- SpecialFunction = 7,
-
- /// <summary>
- /// Builtin functions.
- /// </summary>
- BuiltinFunction = 8,
-
- /// <summary>
- /// Internal character string.
- /// </summary>
- InternalCharacterString = 9,
-
- /// <summary>
- /// Boolean vectors.
- /// </summary>
- LogicalVector = 10,
-
- /// <summary>
- /// Integer vectors.
- /// </summary>
- IntegerVector = 13,
-
- /// <summary>
- /// Numeric vectors.
- /// </summary>
- NumericVector = 14,
-
- /// <summary>
- /// Complex number vectors.
- /// </summary>
- ComplexVector = 15,
-
- /// <summary>
- /// Character vectors.
- /// </summary>
- CharacterVector = 16,
-
- /// <summary>
- /// Dot-dot-dot object.
- /// </summary>
- DotDotDotObject = 17,
-
- /// <summary>
- /// Place holders for any type.
- /// </summary>
- Any = 18,
-
- /// <summary>
- /// Generic vectors.
- /// </summary>
- List = 19,
-
- /// <summary>
- /// Expression vectors.
- /// </summary>
- ExpressionVector = 20,
-
- /// <summary>
- /// Byte code.
- /// </summary>
- ByteCode = 21,
-
- /// <summary>
- /// External pointer.
- /// </summary>
- ExternalPointer = 22,
-
- /// <summary>
- /// Weak reference.
- /// </summary>
- WeakReference = 23,
-
- /// <summary>
- /// Raw vectors.
- /// </summary>
- RawVector = 24,
-
- /// <summary>
- /// S4 classes.
- /// </summary>
- S4 = 25,
-
- #region Original Definitions
-
- //[Obsolete("Use SEXPTYPE.Null instead.")]
- //NILSXP = Null,
- //[Obsolete("Use SEXPTYPE.Symbol istead.")]
- //SYMSXP = Symbol,
- //[Obsolete("Use SEXPTYPE.Pairlist istead.")]
- //LISTSXP = Pairlist,
- //[Obsolete("Use SEXPTYPE.Closure instead.")]
- //CLOSXP = Closure,
- //[Obsolete("Use SEXPTYPE.Environment instead.")]
- //ENVSXP = Environment,
- //[Obsolete("Use SEXPTYPE.Promise instead.")]
- //PROMSXP = Promise,
- //[Obsolete("Use SEXPTYPE.LanguageObject instead.")]
- //LANGSXP = LanguageObject,
- //[Obsolete("Use SEXPTYPE.SpecialFunction instead.")]
- //SPECIALSXP = SpecialFunction,
- //[Obsolete("Use SEXPTYPE.BuiltinFunction instead.")]
- //BUILTINSXP = BuiltinFunction,
- //[Obsolete("Use SEXPTYPE.InternalCharacterString instead.")]
- //CHARSXP = InternalCharacterString,
- //[Obsolete("Use SEXPTYPE.LogicalVector instead.")]
- //LGLSXP = LogicalVector,
- //[Obsolete("Use SEXPTYPE.IntegerVector instead.")]
- //INTSXP = IntegerVector,
- //[Obsolete("Use SEXPTYPE.NumericVector instead.")]
- //REALSXP = NumericVector,
- //[Obsolete("Use SEXPTYPE.ComplexVector instead.")]
- //CPLXSXP = ComplexVector,
- //[Obsolete("Use SEXPTYPE.CharacterVector instead.")]
- //STRSXP = CharacterVector,
- //[Obsolete("Use SEXPTYPE.DotDotDotObject instead.")]
- //DOTSXP = DotDotDotObject,
- //[Obsolete("Use SEXPTYPE.Any instead.")]
- //ANYSXP = Any,
- //[Obsolete("Use SEXPTYPE.List instead.")]
- //VECSXP = List,
- //[Obsolete("Use SEXPTYPE.ExpressionVector instead.")]
- //EXPRSXP = ExpressionVector,
- //[Obsolete("Use SEXPTYPE.ByteCode instead.")]
- //BCODESXP = ByteCode,
- //[Obsolete("Use SEXPTYPE.ExternalPointer instead.")]
- //EXTPTRSXP = ExternalPointer,
- //[Obsolete("Use SEXPTYPE.WeakReference instead.")]
- //WEAKREFSXP = WeakReference,
- //[Obsolete("Use SEXPTYPE.RawVector instead.")]
- //RAWSXP = RawVector,
- //[Obsolete("Use SEXPTYPE.S4 instead.")]
- //S4SXP = S4,
- /// <summary>
- /// Closures, builtin functions or special functions.
- /// </summary>
- [Obsolete("Use SEXPTYPE.Closure instead. But, note that value is different from
SEXPTYPE.Closure.")]
- FUNSXP = 99,
-
- #endregion
- }
-}
+ /// <summary>
+ /// SEXPTYPE enumeration.
+ /// </summary>
+ public enum SymbolicExpressionType
+ {
+ /// <summary>
+ /// Null.
+ /// </summary>
+ Null = 0,
+
+ /// <summary>
+ /// Symbols.
+ /// </summary>
+ Symbol = 1,
+
+ /// <summary>
+ /// Pairlists.
+ /// </summary>
+ Pairlist = 2,
+
+ /// <summary>
+ /// Closures.
+ /// </summary>
+ Closure = 3,
+
+ /// <summary>
+ /// Environments.
+ /// </summary>
+ Environment = 4,
+
+ /// <summary>
+ /// To be evaluated.
+ /// </summary>
+ Promise = 5,
+
+ /// <summary>
+ /// Pairlists for function calls.
+ /// </summary>
+ LanguageObject = 6,
+
+ /// <summary>
+ /// Special functions.
+ /// </summary>
+ SpecialFunction = 7,
+
+ /// <summary>
+ /// Builtin functions.
+ /// </summary>
+ BuiltinFunction = 8,
+
+ /// <summary>
+ /// Internal character string.
+ /// </summary>
+ InternalCharacterString = 9,
+
+ /// <summary>
+ /// Boolean vectors.
+ /// </summary>
+ LogicalVector = 10,
+
+ /// <summary>
+ /// Integer vectors.
+ /// </summary>
+ IntegerVector = 13,
+
+ /// <summary>
+ /// Numeric vectors.
+ /// </summary>
+ NumericVector = 14,
+
+ /// <summary>
+ /// Complex number vectors.
+ /// </summary>
+ ComplexVector = 15,
+
+ /// <summary>
+ /// Character vectors.
+ /// </summary>
+ CharacterVector = 16,
+
+ /// <summary>
+ /// Dot-dot-dot object.
+ /// </summary>
+ DotDotDotObject = 17,
+
+ /// <summary>
+ /// Place holders for any type.
+ /// </summary>
+ Any = 18,
+
+ /// <summary>
+ /// Generic vectors.
+ /// </summary>
+ List = 19,
+
+ /// <summary>
+ /// Expression vectors.
+ /// </summary>
+ ExpressionVector = 20,
+
+ /// <summary>
+ /// Byte code.
+ /// </summary>
+ ByteCode = 21,
+
+ /// <summary>
+ /// External pointer.
+ /// </summary>
+ ExternalPointer = 22,
+
+ /// <summary>
+ /// Weak reference.
+ /// </summary>
+ WeakReference = 23,
+
+ /// <summary>
+ /// Raw vectors.
+ /// </summary>
+ RawVector = 24,
+
+ /// <summary>
+ /// S4 classes.
+ /// </summary>
+ S4 = 25,
+
+ #region Original Definitions
+
+ //[Obsolete("Use SEXPTYPE.Null instead.")]
+ //NILSXP = Null,
+ //[Obsolete("Use SEXPTYPE.Symbol istead.")]
+ //SYMSXP = Symbol,
+ //[Obsolete("Use SEXPTYPE.Pairlist istead.")]
+ //LISTSXP = Pairlist,
+ //[Obsolete("Use SEXPTYPE.Closure instead.")]
+ //CLOSXP = Closure,
+ //[Obsolete("Use SEXPTYPE.Environment instead.")]
+ //ENVSXP = Environment,
+ //[Obsolete("Use SEXPTYPE.Promise instead.")]
+ //PROMSXP = Promise,
+ //[Obsolete("Use SEXPTYPE.LanguageObject instead.")]
+ //LANGSXP = LanguageObject,
+ //[Obsolete("Use SEXPTYPE.SpecialFunction instead.")]
+ //SPECIALSXP = SpecialFunction,
+ //[Obsolete("Use SEXPTYPE.BuiltinFunction instead.")]
+ //BUILTINSXP = BuiltinFunction,
+ //[Obsolete("Use SEXPTYPE.InternalCharacterString instead.")]
+ //CHARSXP = InternalCharacterString,
+ //[Obsolete("Use SEXPTYPE.LogicalVector instead.")]
+ //LGLSXP = LogicalVector,
+ //[Obsolete("Use SEXPTYPE.IntegerVector instead.")]
+ //INTSXP = IntegerVector,
+ //[Obsolete("Use SEXPTYPE.NumericVector instead.")]
+ //REALSXP = NumericVector,
+ //[Obsolete("Use SEXPTYPE.ComplexVector instead.")]
+ //CPLXSXP = ComplexVector,
+ //[Obsolete("Use SEXPTYPE.CharacterVector instead.")]
+ //STRSXP = CharacterVector,
+ //[Obsolete("Use SEXPTYPE.DotDotDotObject instead.")]
+ //DOTSXP = DotDotDotObject,
+ //[Obsolete("Use SEXPTYPE.Any instead.")]
+ //ANYSXP = Any,
+ //[Obsolete("Use SEXPTYPE.List instead.")]
+ //VECSXP = List,
+ //[Obsolete("Use SEXPTYPE.ExpressionVector instead.")]
+ //EXPRSXP = ExpressionVector,
+ //[Obsolete("Use SEXPTYPE.ByteCode instead.")]
+ //BCODESXP = ByteCode,
+ //[Obsolete("Use SEXPTYPE.ExternalPointer instead.")]
+ //EXTPTRSXP = ExternalPointer,
+ //[Obsolete("Use SEXPTYPE.WeakReference instead.")]
+ //WEAKREFSXP = WeakReference,
+ //[Obsolete("Use SEXPTYPE.RawVector instead.")]
+ //RAWSXP = RawVector,
+ //[Obsolete("Use SEXPTYPE.S4 instead.")]
+ //S4SXP = S4,
+ /// <summary>
+ /// Closures, builtin functions or special functions.
+ /// </summary>
+ [Obsolete("Use SEXPTYPE.Closure instead. But, note that value is different from SEXPTYPE.Closure.")]
+ FUNSXP = 99,
+
+ #endregion Original Definitions
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/Unix/Delegates.cs b/rdotnet/R.NET/Internals/Unix/Delegates.cs
index fa7e06d..ddb04da 100644
--- a/rdotnet/R.NET/Internals/Unix/Delegates.cs
+++ b/rdotnet/R.NET/Internals/Unix/Delegates.cs
@@ -4,54 +4,54 @@ using System.Text;
namespace RDotNet.Internals.Unix
{
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate void ptr_R_Suicide([In] [MarshalAs(UnmanagedType.LPStr)] string message);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ptr_R_Suicide([In] [MarshalAs(UnmanagedType.LPStr)] string message);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate void ptr_R_ShowMessage([In] [MarshalAs(UnmanagedType.LPStr)] string message);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ptr_R_ShowMessage([In] [MarshalAs(UnmanagedType.LPStr)] string message);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- [return : MarshalAs(UnmanagedType.Bool)]
- internal delegate bool ptr_R_ReadConsole([In] [MarshalAs(UnmanagedType.LPStr)] string prompt,
[MarshalAs(UnmanagedType.LPStr)] StringBuilder buffer, int length, [MarshalAs(UnmanagedType.Bool)] bool
history);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ [return: MarshalAs(UnmanagedType.Bool)]
+ internal delegate bool ptr_R_ReadConsole([In] [MarshalAs(UnmanagedType.LPStr)] string prompt,
[MarshalAs(UnmanagedType.LPStr)] StringBuilder buffer, int length, [MarshalAs(UnmanagedType.Bool)] bool
history);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate void ptr_R_WriteConsole([In] [MarshalAs(UnmanagedType.LPStr)] string buffer, int
length);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ptr_R_WriteConsole([In] [MarshalAs(UnmanagedType.LPStr)] string buffer, int
length);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate void ptr_R_WriteConsoleEx([In] [MarshalAs(UnmanagedType.LPStr)] string buffer, int
length, ConsoleOutputType outputType);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ptr_R_WriteConsoleEx([In] [MarshalAs(UnmanagedType.LPStr)] string buffer, int
length, ConsoleOutputType outputType);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate void ptr_R_ResetConsole();
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ptr_R_ResetConsole();
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate void ptr_R_FlushConsole();
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ptr_R_FlushConsole();
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate void ptr_R_ClearerrConsole();
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ptr_R_ClearerrConsole();
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate void ptr_R_Busy(BusyType which);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ptr_R_Busy(BusyType which);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate void ptr_R_CleanUp(StartupSaveAction saveAction, int status,
[MarshalAs(UnmanagedType.Bool)] bool runLast);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ptr_R_CleanUp(StartupSaveAction saveAction, int status,
[MarshalAs(UnmanagedType.Bool)] bool runLast);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- [return : MarshalAs(UnmanagedType.Bool)]
- internal delegate bool ptr_R_ShowFiles(int count, [In] [MarshalAs(UnmanagedType.LPArray, ArraySubType
= UnmanagedType.LPStr)] string[] files, [In] [MarshalAs(UnmanagedType.LPArray, ArraySubType =
UnmanagedType.LPStr)] string[] headers, [In] [MarshalAs(UnmanagedType.LPStr)] string title,
[MarshalAs(UnmanagedType.Bool)] bool delete, [In] [MarshalAs(UnmanagedType.LPStr)] string pager);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ [return: MarshalAs(UnmanagedType.Bool)]
+ internal delegate bool ptr_R_ShowFiles(int count, [In] [MarshalAs(UnmanagedType.LPArray, ArraySubType =
UnmanagedType.LPStr)] string[] files, [In] [MarshalAs(UnmanagedType.LPArray, ArraySubType =
UnmanagedType.LPStr)] string[] headers, [In] [MarshalAs(UnmanagedType.LPStr)] string title,
[MarshalAs(UnmanagedType.Bool)] bool delete, [In] [MarshalAs(UnmanagedType.LPStr)] string pager);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- [return : MarshalAs(UnmanagedType.Bool)]
- internal delegate int ptr_R_ChooseFile([MarshalAs(UnmanagedType.Bool)] bool create, StringBuilder
buffer, int length);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ [return: MarshalAs(UnmanagedType.Bool)]
+ internal delegate int ptr_R_ChooseFile([MarshalAs(UnmanagedType.Bool)] bool create, StringBuilder buffer,
int length);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate void ptr_R_EditFile([MarshalAs(UnmanagedType.LPStr)] string file);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void ptr_R_EditFile([MarshalAs(UnmanagedType.LPStr)] string file);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate IntPtr ptr_R_loadhistory(IntPtr call, IntPtr operation, IntPtr args, IntPtr
environment);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr ptr_R_loadhistory(IntPtr call, IntPtr operation, IntPtr args, IntPtr
environment);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate IntPtr ptr_R_savehistory(IntPtr call, IntPtr operation, IntPtr args, IntPtr
environment);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr ptr_R_savehistory(IntPtr call, IntPtr operation, IntPtr args, IntPtr
environment);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate IntPtr ptr_R_addhistory(IntPtr call, IntPtr operation, IntPtr args, IntPtr
environment);
-}
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate IntPtr ptr_R_addhistory(IntPtr call, IntPtr operation, IntPtr args, IntPtr environment);
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/Unix/RStart.cs b/rdotnet/R.NET/Internals/Unix/RStart.cs
index edc70c4..56a949f 100644
--- a/rdotnet/R.NET/Internals/Unix/RStart.cs
+++ b/rdotnet/R.NET/Internals/Unix/RStart.cs
@@ -3,39 +3,39 @@ using System.Runtime.InteropServices;
namespace RDotNet.Internals.Unix
{
- [StructLayout(LayoutKind.Sequential)]
- internal struct RStart
- {
- [MarshalAs(UnmanagedType.Bool)]
- public bool R_Quiet;
-
- [MarshalAs(UnmanagedType.Bool)]
- public bool R_Slave;
-
- [MarshalAs(UnmanagedType.Bool)]
- public bool R_Interactive;
-
- [MarshalAs(UnmanagedType.Bool)]
- public bool R_Verbose;
-
- [MarshalAs(UnmanagedType.Bool)]
- public bool LoadSiteFile;
-
- [MarshalAs(UnmanagedType.Bool)]
- public bool LoadInitFile;
-
- [MarshalAs(UnmanagedType.Bool)]
- public bool DebugInitFile;
-
- public StartupRestoreAction RestoreAction;
- public StartupSaveAction SaveAction;
- internal UIntPtr vsize;
- internal UIntPtr nsize;
- internal UIntPtr max_vsize;
- internal UIntPtr max_nsize;
- internal UIntPtr ppsize;
-
- [MarshalAs(UnmanagedType.Bool)]
- public bool NoRenviron;
- }
-}
+ [StructLayout(LayoutKind.Sequential)]
+ internal struct RStart
+ {
+ [MarshalAs(UnmanagedType.Bool)]
+ public bool R_Quiet;
+
+ [MarshalAs(UnmanagedType.Bool)]
+ public bool R_Slave;
+
+ [MarshalAs(UnmanagedType.Bool)]
+ public bool R_Interactive;
+
+ [MarshalAs(UnmanagedType.Bool)]
+ public bool R_Verbose;
+
+ [MarshalAs(UnmanagedType.Bool)]
+ public bool LoadSiteFile;
+
+ [MarshalAs(UnmanagedType.Bool)]
+ public bool LoadInitFile;
+
+ [MarshalAs(UnmanagedType.Bool)]
+ public bool DebugInitFile;
+
+ public StartupRestoreAction RestoreAction;
+ public StartupSaveAction SaveAction;
+ internal UIntPtr vsize;
+ internal UIntPtr nsize;
+ internal UIntPtr max_vsize;
+ internal UIntPtr max_nsize;
+ internal UIntPtr ppsize;
+
+ [MarshalAs(UnmanagedType.Bool)]
+ public bool NoRenviron;
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/VECTOR_SEXPREC.cs b/rdotnet/R.NET/Internals/VECTOR_SEXPREC.cs
index 9fb07cf..854669d 100644
--- a/rdotnet/R.NET/Internals/VECTOR_SEXPREC.cs
+++ b/rdotnet/R.NET/Internals/VECTOR_SEXPREC.cs
@@ -3,58 +3,58 @@ using System.Runtime.InteropServices;
namespace RDotNet.Internals
{
- [StructLayout(LayoutKind.Sequential)]
- internal struct VECTOR_SEXPREC
- {
- private SEXPREC_HEADER header;
- private vecsxp vecsxp;
+ [StructLayout(LayoutKind.Sequential)]
+ internal struct VECTOR_SEXPREC
+ {
+ private SEXPREC_HEADER header;
+ private vecsxp vecsxp;
- public sxpinfo sxpinfo
- {
- get
- {
- return header.sxpinfo;
- }
- }
+ public sxpinfo sxpinfo
+ {
+ get
+ {
+ return header.sxpinfo;
+ }
+ }
- public IntPtr attrib
- {
- get
- {
- return header.attrib;
- }
- }
+ public IntPtr attrib
+ {
+ get
+ {
+ return header.attrib;
+ }
+ }
- public IntPtr gengc_next_node
- {
- get
- {
- return header.gengc_next_node;
- }
- }
+ public IntPtr gengc_next_node
+ {
+ get
+ {
+ return header.gengc_next_node;
+ }
+ }
- public IntPtr gengc_prev_node
- {
- get
- {
- return header.gengc_prev_node;
- }
- }
+ public IntPtr gengc_prev_node
+ {
+ get
+ {
+ return header.gengc_prev_node;
+ }
+ }
- public int Length
- {
- get
- {
- return vecsxp.length;
- }
- }
+ public int Length
+ {
+ get
+ {
+ return vecsxp.length;
+ }
+ }
- public int TrueLength
- {
- get
- {
- return vecsxp.truelength;
- }
- }
- }
-}
+ public int TrueLength
+ {
+ get
+ {
+ return vecsxp.truelength;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/Windows/Delegates.cs b/rdotnet/R.NET/Internals/Windows/Delegates.cs
index 5e87e20..bab3b56 100644
--- a/rdotnet/R.NET/Internals/Windows/Delegates.cs
+++ b/rdotnet/R.NET/Internals/Windows/Delegates.cs
@@ -3,25 +3,25 @@ using System.Text;
namespace RDotNet.Internals.Windows
{
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- [return : MarshalAs(UnmanagedType.Bool)]
- internal delegate bool blah1([In] [MarshalAs(UnmanagedType.LPStr)] string prompt,
[MarshalAs(UnmanagedType.LPStr)] StringBuilder buffer, int length, [MarshalAs(UnmanagedType.Bool)] bool
history);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ [return: MarshalAs(UnmanagedType.Bool)]
+ internal delegate bool blah1([In] [MarshalAs(UnmanagedType.LPStr)] string prompt,
[MarshalAs(UnmanagedType.LPStr)] StringBuilder buffer, int length, [MarshalAs(UnmanagedType.Bool)] bool
history);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate void blah2([In] [MarshalAs(UnmanagedType.LPStr)] string buffer, int length);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void blah2([In] [MarshalAs(UnmanagedType.LPStr)] string buffer, int length);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate void blah3();
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void blah3();
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate void blah4([In] [MarshalAs(UnmanagedType.LPStr)] string message);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void blah4([In] [MarshalAs(UnmanagedType.LPStr)] string message);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate YesNoCancel blah5([In] [MarshalAs(UnmanagedType.LPStr)] string question);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate YesNoCancel blah5([In] [MarshalAs(UnmanagedType.LPStr)] string question);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate void blah6(BusyType which);
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void blah6(BusyType which);
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- internal delegate void blah7([In] [MarshalAs(UnmanagedType.LPStr)] string buffer, int length,
ConsoleOutputType outputType);
-}
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ internal delegate void blah7([In] [MarshalAs(UnmanagedType.LPStr)] string buffer, int length,
ConsoleOutputType outputType);
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/Windows/RStart.cs b/rdotnet/R.NET/Internals/Windows/RStart.cs
index e3623a6..f3f035d 100644
--- a/rdotnet/R.NET/Internals/Windows/RStart.cs
+++ b/rdotnet/R.NET/Internals/Windows/RStart.cs
@@ -4,34 +4,34 @@ using UnixRStruct = RDotNet.Internals.Unix.RStart;
namespace RDotNet.Internals.Windows
{
- [StructLayout(LayoutKind.Sequential)]
- internal struct RStart
- {
- internal UnixRStruct Common;
- public IntPtr rhome;
- public IntPtr home;
+ [StructLayout(LayoutKind.Sequential)]
+ internal struct RStart
+ {
+ internal UnixRStruct Common;
+ public IntPtr rhome;
+ public IntPtr home;
- [MarshalAs(UnmanagedType.FunctionPtr)]
- public blah1 ReadConsole;
+ [MarshalAs(UnmanagedType.FunctionPtr)]
+ public blah1 ReadConsole;
- [MarshalAs(UnmanagedType.FunctionPtr)]
- public blah2 WriteConsole;
+ [MarshalAs(UnmanagedType.FunctionPtr)]
+ public blah2 WriteConsole;
- [MarshalAs(UnmanagedType.FunctionPtr)]
- public blah3 CallBack;
+ [MarshalAs(UnmanagedType.FunctionPtr)]
+ public blah3 CallBack;
- [MarshalAs(UnmanagedType.FunctionPtr)]
- public blah4 ShowMessage;
+ [MarshalAs(UnmanagedType.FunctionPtr)]
+ public blah4 ShowMessage;
- [MarshalAs(UnmanagedType.FunctionPtr)]
- public blah5 YesNoCancel;
+ [MarshalAs(UnmanagedType.FunctionPtr)]
+ public blah5 YesNoCancel;
- [MarshalAs(UnmanagedType.FunctionPtr)]
- public blah6 Busy;
+ [MarshalAs(UnmanagedType.FunctionPtr)]
+ public blah6 Busy;
- public UiMode CharacterMode;
+ public UiMode CharacterMode;
- [MarshalAs(UnmanagedType.FunctionPtr)]
- public blah7 WriteConsoleEx;
- }
-}
+ [MarshalAs(UnmanagedType.FunctionPtr)]
+ public blah7 WriteConsoleEx;
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/Windows/UiMode.cs b/rdotnet/R.NET/Internals/Windows/UiMode.cs
index 4f4a9a1..60a4e0f 100644
--- a/rdotnet/R.NET/Internals/Windows/UiMode.cs
+++ b/rdotnet/R.NET/Internals/Windows/UiMode.cs
@@ -1,9 +1,9 @@
namespace RDotNet.Internals.Windows
{
- public enum UiMode
- {
- RGui,
- RTerminal,
- LinkDll,
- }
-}
+ public enum UiMode
+ {
+ RGui,
+ RTerminal,
+ LinkDll,
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/YesNoCancel.cs b/rdotnet/R.NET/Internals/YesNoCancel.cs
index 9f2ef21..1bfa2fc 100644
--- a/rdotnet/R.NET/Internals/YesNoCancel.cs
+++ b/rdotnet/R.NET/Internals/YesNoCancel.cs
@@ -1,23 +1,23 @@
namespace RDotNet.Internals
{
- /// <summary>
- /// User's decision.
- /// </summary>
- public enum YesNoCancel
- {
- /// <summary>
- /// User agreed.
- /// </summary>
- Yes = 1,
+ /// <summary>
+ /// User's decision.
+ /// </summary>
+ public enum YesNoCancel
+ {
+ /// <summary>
+ /// User agreed.
+ /// </summary>
+ Yes = 1,
- /// <summary>
- /// User disagreed.
- /// </summary>
- No = -1,
+ /// <summary>
+ /// User disagreed.
+ /// </summary>
+ No = -1,
- /// <summary>
- /// User abandoned to answer.
- /// </summary>
- Cancel = 0,
- }
-}
+ /// <summary>
+ /// User abandoned to answer.
+ /// </summary>
+ Cancel = 0,
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Internals/sxpinfo.cs b/rdotnet/R.NET/Internals/sxpinfo.cs
index fe7515a..407e18c 100644
--- a/rdotnet/R.NET/Internals/sxpinfo.cs
+++ b/rdotnet/R.NET/Internals/sxpinfo.cs
@@ -2,59 +2,59 @@
namespace RDotNet.Internals
{
- [StructLayout(LayoutKind.Sequential)]
- internal struct sxpinfo
- {
- private uint bits;
-
- public SymbolicExpressionType type
- {
- get { return (SymbolicExpressionType)(this.bits & 31u); }
- }
-
- public uint obj
- {
- get { return ((this.bits & 32u) / 32); }
- }
-
- public uint named
- {
- get { return ((this.bits & 192u) / 64); }
- }
-
- public uint gp
- {
- get { return ((this.bits & 16776960u) / 256); }
- }
-
- public uint mark
- {
- get { return ((this.bits & 16777216u) / 16777216); }
- }
-
- public uint debug
- {
- get { return ((this.bits & 33554432u) / 33554432); }
- }
-
- public uint trace
- {
- get { return ((this.bits & 67108864u) / 67108864); }
- }
-
- public uint spare
- {
- get { return ((this.bits & 134217728u) / 134217728); }
- }
-
- public uint gcgen
- {
- get { return ((this.bits & 268435456u) / 268435456); }
- }
-
- public uint gccls
- {
- get { return ((this.bits & 3758096384u) / 536870912); }
- }
- }
-}
+ [StructLayout(LayoutKind.Sequential)]
+ internal struct sxpinfo
+ {
+ private uint bits;
+
+ public SymbolicExpressionType type
+ {
+ get { return (SymbolicExpressionType)(this.bits & 31u); }
+ }
+
+ public uint obj
+ {
+ get { return ((this.bits & 32u) / 32); }
+ }
+
+ public uint named
+ {
+ get { return ((this.bits & 192u) / 64); }
+ }
+
+ public uint gp
+ {
+ get { return ((this.bits & 16776960u) / 256); }
+ }
+
+ public uint mark
+ {
+ get { return ((this.bits & 16777216u) / 16777216); }
+ }
+
+ public uint debug
+ {
+ get { return ((this.bits & 33554432u) / 33554432); }
+ }
+
+ public uint trace
+ {
+ get { return ((this.bits & 67108864u) / 67108864); }
+ }
+
+ public uint spare
+ {
+ get { return ((this.bits & 134217728u) / 134217728); }
+ }
+
+ public uint gcgen
+ {
+ get { return ((this.bits & 268435456u) / 268435456); }
+ }
+
+ public uint gccls
+ {
+ get { return ((this.bits & 3758096384u) / 536870912); }
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Language.cs b/rdotnet/R.NET/Language.cs
index 795d70b..5a02f81 100644
--- a/rdotnet/R.NET/Language.cs
+++ b/rdotnet/R.NET/Language.cs
@@ -1,38 +1,38 @@
-using System;
-using RDotNet.Internals;
+using RDotNet.Internals;
+using System;
namespace RDotNet
{
- /// <summary>
- /// A language object.
- /// </summary>
- public class Language : SymbolicExpression
- {
- /// <summary>
- /// Creates a language object.
- /// </summary>
- /// <param name="engine">The engine</param>
- /// <param name="pointer">The pointer.</param>
- protected internal Language(REngine engine, IntPtr pointer)
- : base(engine, pointer)
- {}
+ /// <summary>
+ /// A language object.
+ /// </summary>
+ public class Language : SymbolicExpression
+ {
+ /// <summary>
+ /// Creates a language object.
+ /// </summary>
+ /// <param name="engine">The engine</param>
+ /// <param name="pointer">The pointer.</param>
+ protected internal Language(REngine engine, IntPtr pointer)
+ : base(engine, pointer)
+ { }
- /// <summary>
- /// Gets function calls.
- /// </summary>
- public Pairlist FunctionCall
- {
- get
- {
- int count = Engine.GetFunction<Rf_length>("Rf_length")(handle);
- // count == 1 for empty call.
- if (count < 2)
- {
- return null;
- }
- SEXPREC sexp = GetInternalStructure();
- return new Pairlist(Engine, sexp.listsxp.cdrval);
- }
- }
- }
-}
+ /// <summary>
+ /// Gets function calls.
+ /// </summary>
+ public Pairlist FunctionCall
+ {
+ get
+ {
+ int count = Engine.GetFunction<Rf_length>()(handle);
+ // count == 1 for empty call.
+ if (count < 2)
+ {
+ return null;
+ }
+ SEXPREC sexp = GetInternalStructure();
+ return new Pairlist(Engine, sexp.listsxp.cdrval);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/LogicalMatrix.cs b/rdotnet/R.NET/LogicalMatrix.cs
index f13e0a9..49f1ab8 100644
--- a/rdotnet/R.NET/LogicalMatrix.cs
+++ b/rdotnet/R.NET/LogicalMatrix.cs
@@ -1,96 +1,109 @@
-using System;
+using RDotNet.Internals;
+using System;
using System.Runtime.InteropServices;
using System.Security.Permissions;
-using RDotNet.Internals;
namespace RDotNet
{
- /// <summary>
- /// A matrix of Boolean values.
- /// </summary>
- [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
- public class LogicalMatrix : Matrix<bool>
- {
- /// <summary>
- /// Creates a new empty LogicalMatrix with the specified size.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="rowCount">The row size.</param>
- /// <param name="columnCount">The column size.</param>
- /// <seealso cref="REngineExtension.CreateLogicalMatrix(REngine, int, int)"/>
- public LogicalMatrix(REngine engine, int rowCount, int columnCount)
- : base(engine, SymbolicExpressionType.LogicalVector, rowCount, columnCount)
- {}
+ /// <summary>
+ /// A matrix of Boolean values.
+ /// </summary>
+ [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+ public class LogicalMatrix : Matrix<bool>
+ {
+ /// <summary>
+ /// Creates a new empty LogicalMatrix with the specified size.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="rowCount">The row size.</param>
+ /// <param name="columnCount">The column size.</param>
+ /// <seealso cref="REngineExtension.CreateLogicalMatrix(REngine, int, int)"/>
+ public LogicalMatrix(REngine engine, int rowCount, int columnCount)
+ : base(engine, SymbolicExpressionType.LogicalVector, rowCount, columnCount)
+ { }
- /// <summary>
- /// Creates a new LogicalMatrix with the specified values.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="matrix">The values.</param>
- /// <seealso cref="REngineExtension.CreateLogicalMatrix(REngine, bool[,])"/>
- public LogicalMatrix(REngine engine, bool[,] matrix)
- : base(engine, SymbolicExpressionType.LogicalVector, matrix)
- {}
+ /// <summary>
+ /// Creates a new LogicalMatrix with the specified values.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="matrix">The values.</param>
+ /// <seealso cref="REngineExtension.CreateLogicalMatrix(REngine, bool[,])"/>
+ public LogicalMatrix(REngine engine, bool[,] matrix)
+ : base(engine, SymbolicExpressionType.LogicalVector, matrix)
+ { }
- /// <summary>
- /// Creates a new instance for a Boolean matrix.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="coerced">The pointer to a Boolean matrix.</param>
- protected internal LogicalMatrix(REngine engine, IntPtr coerced)
- : base(engine, coerced)
- {}
+ /// <summary>
+ /// Creates a new instance for a Boolean matrix.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="coerced">The pointer to a Boolean matrix.</param>
+ protected internal LogicalMatrix(REngine engine, IntPtr coerced)
+ : base(engine, coerced)
+ { }
- /// <summary>
- /// Gets or sets the element at the specified index.
- /// </summary>
- /// <param name="rowIndex">The zero-based rowIndex index of the element to get or set.</param>
- /// <param name="columnIndex">The zero-based columnIndex index of the element to get or
set.</param>
- /// <returns>The element at the specified index.</returns>
- public override bool this[int rowIndex, int columnIndex]
- {
- get
- {
- if (rowIndex < 0 || RowCount <= rowIndex)
- {
- throw new ArgumentOutOfRangeException("rowIndex");
- }
- if (columnIndex < 0 || ColumnCount <= columnIndex)
- {
- throw new ArgumentOutOfRangeException("columnIndex");
- }
- using (new ProtectedPointer(this))
- {
- int offset = GetOffset(rowIndex, columnIndex);
- int data = Marshal.ReadInt32(DataPointer, offset);
- return Convert.ToBoolean(data);
- }
- }
- set
- {
- if (rowIndex < 0 || RowCount <= rowIndex)
- {
- throw new ArgumentOutOfRangeException("rowIndex");
- }
- if (columnIndex < 0 || ColumnCount <= columnIndex)
- {
- throw new ArgumentOutOfRangeException("columnIndex");
- }
- using (new ProtectedPointer(this))
- {
- int offset = GetOffset(rowIndex, columnIndex);
- int data = Convert.ToInt32(value);
- Marshal.WriteInt32(DataPointer, offset, data);
- }
- }
- }
+ /// <summary>
+ /// Gets or sets the element at the specified index.
+ /// </summary>
+ /// <param name="rowIndex">The zero-based rowIndex index of the element to get or set.</param>
+ /// <param name="columnIndex">The zero-based columnIndex index of the element to get or set.</param>
+ /// <returns>The element at the specified index.</returns>
+ public override bool this[int rowIndex, int columnIndex]
+ {
+ get
+ {
+ if (rowIndex < 0 || RowCount <= rowIndex)
+ {
+ throw new ArgumentOutOfRangeException("rowIndex");
+ }
+ if (columnIndex < 0 || ColumnCount <= columnIndex)
+ {
+ throw new ArgumentOutOfRangeException("columnIndex");
+ }
+ using (new ProtectedPointer(this))
+ {
+ int offset = GetOffset(rowIndex, columnIndex);
+ int data = Marshal.ReadInt32(DataPointer, offset);
+ return Convert.ToBoolean(data);
+ }
+ }
+ set
+ {
+ if (rowIndex < 0 || RowCount <= rowIndex)
+ {
+ throw new ArgumentOutOfRangeException("rowIndex");
+ }
+ if (columnIndex < 0 || ColumnCount <= columnIndex)
+ {
+ throw new ArgumentOutOfRangeException("columnIndex");
+ }
+ using (new ProtectedPointer(this))
+ {
+ int offset = GetOffset(rowIndex, columnIndex);
+ int data = Convert.ToInt32(value);
+ Marshal.WriteInt32(DataPointer, offset, data);
+ }
+ }
+ }
- /// <summary>
- /// Gets the size of an integer in byte.
- /// </summary>
- protected override int DataSize
- {
- get { return sizeof(int); }
- }
- }
-}
+ protected override void InitMatrixFastDirect(bool[,] matrix)
+ {
+ var intValues = Utility.ArrayConvertAllOneDim(matrix, Convert.ToInt32);
+ Marshal.Copy(intValues, 0, DataPointer, intValues.Length);
+ }
+
+ protected override bool[,] GetArrayFast()
+ {
+ int[] intValues = new int[this.ItemCount];
+ Marshal.Copy(DataPointer, intValues, 0, intValues.Length);
+ return Utility.ArrayConvertAllTwoDim(intValues, Convert.ToBoolean, this.RowCount, this.ColumnCount);
+ }
+
+ /// <summary>
+ /// Gets the size of an integer in byte.
+ /// </summary>
+ protected override int DataSize
+ {
+ get { return sizeof(int); }
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/LogicalVector.cs b/rdotnet/R.NET/LogicalVector.cs
index 3c4d6a9..643db74 100644
--- a/rdotnet/R.NET/LogicalVector.cs
+++ b/rdotnet/R.NET/LogicalVector.cs
@@ -1,91 +1,104 @@
-using System;
+using RDotNet.Internals;
+using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Security.Permissions;
-using RDotNet.Internals;
namespace RDotNet
{
- /// <summary>
- /// A collection of Boolean values.
- /// </summary>
- [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
- public class LogicalVector : Vector<bool>
- {
- /// <summary>
- /// Creates a new empty LogicalVector with the specified length.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="length">The length.</param>
- /// <seealso cref="REngineExtension.CreateLogicalVector(REngine, int)"/>
- public LogicalVector(REngine engine, int length)
- : base(engine, SymbolicExpressionType.LogicalVector, length)
- {}
+ /// <summary>
+ /// A collection of Boolean values.
+ /// </summary>
+ [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+ public class LogicalVector : Vector<bool>
+ {
+ /// <summary>
+ /// Creates a new empty LogicalVector with the specified length.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="length">The length.</param>
+ /// <seealso cref="REngineExtension.CreateLogicalVector(REngine, int)"/>
+ public LogicalVector(REngine engine, int length)
+ : base(engine, SymbolicExpressionType.LogicalVector, length)
+ { }
- /// <summary>
- /// Creates a new LogicalVector with the specified values.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="vector">The values.</param>
- /// <seealso cref="REngineExtension.CreateLogicalVector(REngine, IEnumerable{bool})"/>
- public LogicalVector(REngine engine, IEnumerable<bool> vector)
- : base(engine, SymbolicExpressionType.LogicalVector, vector)
- {}
+ /// <summary>
+ /// Creates a new LogicalVector with the specified values.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="vector">The values.</param>
+ /// <seealso cref="REngineExtension.CreateLogicalVector(REngine, IEnumerable{bool})"/>
+ public LogicalVector(REngine engine, IEnumerable<bool> vector)
+ : base(engine, SymbolicExpressionType.LogicalVector, vector)
+ { }
- /// <summary>
- /// Creates a new instance for a Boolean vector.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="coerced">The pointer to a Boolean vector.</param>
- protected internal LogicalVector(REngine engine, IntPtr coerced)
- : base(engine, coerced)
- {}
+ /// <summary>
+ /// Creates a new instance for a Boolean vector.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="coerced">The pointer to a Boolean vector.</param>
+ protected internal LogicalVector(REngine engine, IntPtr coerced)
+ : base(engine, coerced)
+ { }
- /// <summary>
- /// Gets or sets the element at the specified index.
- /// </summary>
- /// <param name="index">The zero-based index of the element to get or set.</param>
- /// <returns>The element at the specified index.</returns>
- public override bool this[int index]
- {
- get
- {
- if (index < 0 || Length <= index)
- {
- throw new ArgumentOutOfRangeException();
- }
- using (new ProtectedPointer(this))
- {
- int offset = GetOffset(index);
- int data = Marshal.ReadInt32(DataPointer, offset);
- return Convert.ToBoolean(data);
- }
- }
- set
- {
- if (index < 0 || Length <= index)
- {
- throw new ArgumentOutOfRangeException();
- }
- using (new ProtectedPointer(this))
- {
- int offset = GetOffset(index);
- int data = Convert.ToInt32(value);
- Marshal.WriteInt32(DataPointer, offset, data);
- }
- }
- }
+ /// <summary>
+ /// Gets or sets the element at the specified index.
+ /// </summary>
+ /// <param name="index">The zero-based index of the element to get or set.</param>
+ /// <returns>The element at the specified index.</returns>
+ public override bool this[int index]
+ {
+ get
+ {
+ if (index < 0 || Length <= index)
+ {
+ throw new ArgumentOutOfRangeException();
+ }
+ using (new ProtectedPointer(this))
+ {
+ int offset = GetOffset(index);
+ int data = Marshal.ReadInt32(DataPointer, offset);
+ return Convert.ToBoolean(data);
+ }
+ }
+ set
+ {
+ if (index < 0 || Length <= index)
+ {
+ throw new ArgumentOutOfRangeException();
+ }
+ using (new ProtectedPointer(this))
+ {
+ int offset = GetOffset(index);
+ int data = Convert.ToInt32(value);
+ Marshal.WriteInt32(DataPointer, offset, data);
+ }
+ }
+ }
- /// <summary>
- /// Gets the size of a Boolean value in byte.
- /// </summary>
- protected override int DataSize
- {
- get
- {
- // Boolean is int internally.
- return sizeof(int);
- }
- }
- }
-}
+ protected override bool[] GetArrayFast()
+ {
+ int[] intValues = new int[this.Length];
+ Marshal.Copy(DataPointer, intValues, 0, intValues.Length);
+ return Array.ConvertAll(intValues, Convert.ToBoolean);
+ }
+
+ protected override void SetVectorDirect(bool[] values)
+ {
+ var intValues = Array.ConvertAll(values, Convert.ToInt32);
+ Marshal.Copy(intValues, 0, DataPointer, values.Length);
+ }
+
+ /// <summary>
+ /// Gets the size of a Boolean value in byte.
+ /// </summary>
+ protected override int DataSize
+ {
+ get
+ {
+ // Boolean is int internally.
+ return sizeof(int);
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Makefile b/rdotnet/R.NET/Makefile
new file mode 100644
index 0000000..2235bc5
--- /dev/null
+++ b/rdotnet/R.NET/Makefile
@@ -0,0 +1,843 @@
+# Makefile.in generated by automake 1.12.4 from Makefile.am.
+# rdotnet/R.NET/Makefile. Generated from Makefile.in by configure.
+
+# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+
+
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
+pkgdatadir = $(datadir)/chronojump
+pkgincludedir = $(includedir)/chronojump
+pkglibdir = $(libdir)/chronojump
+pkglibexecdir = $(libexecdir)/chronojump
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = i686-pc-mingw32
+host_triplet = i686-pc-mingw32
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/build/build.environment.mk \
+ $(top_srcdir)/build/build.mk \
+ $(top_srcdir)/build/build.rules.mk
+#am__append_1 = " $(NUNIT_LIBS)"
+subdir = rdotnet/R.NET
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/build/m4/shamrock/expansions.m4 \
+ $(top_srcdir)/build/m4/shamrock/mono.m4 \
+ $(top_srcdir)/build/m4/shamrock/programs.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(moduledir)" "$(DESTDIR)$(desktopdir)" \
+ "$(DESTDIR)$(imagesdir)" "$(DESTDIR)$(logodir)" \
+ "$(DESTDIR)$(logo_48dir)"
+SCRIPTS = $(module_SCRIPTS)
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+DATA = $(desktop_DATA) $(images_DATA) $(logo_DATA) $(logo_48_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = aclocal -Ic:/gstreamer-sdk/0.10/x86/share/aclocal
-IC:/MinGW/msys/1.0/home/chronojump/cerbero/build-tools/share/aclocal
+ACLOCAL_AMFLAGS = -I build/m4/shamrock -I build/m4/shave ${ACLOCAL_FLAGS}
+ALL_LINGUAS =
+AMTAR = $${TAR-tar}
+AR = i686-w64-mingw32-ar
+AUTOCONF = ${SHELL} /usr/home/chronojump/chronojump/missing --run autoconf
+AUTOHEADER = ${SHELL} /usr/home/chronojump/chronojump/missing --run autoheader
+AUTOMAKE = ${SHELL} /usr/home/chronojump/chronojump/missing --run automake-1.12
+AWK = gawk
+CATALOGS =
+CATOBJEXT = .gmo
+CC = i686-w64-mingw32-gcc
+CCDEPMODE = depmode=gcc3
+CESARPLAYER_CFLAGS = -mms-bitfields -Ic:/gstreamer-sdk/0.10/x86/include/gtk-2.0
-Ic:/gstreamer-sdk/0.10/x86/lib/gtk-2.0/include -Ic:/gstreamer-sdk/0.10/x86/include/atk-1.0
-Ic:/gstreamer-sdk/0.10/x86/include/cairo -Ic:/gstreamer-sdk/0.10/x86/include/gdk-pixbuf-2.0
-Ic:/gstreamer-sdk/0.10/x86/include/pango-1.0 -Ic:/gstreamer-sdk/0.10/x86/include/glib-2.0
-Ic:/gstreamer-sdk/0.10/x86/lib/glib-2.0/include -Ic:/gstreamer-sdk/0.10/x86/include/pixman-1
-Ic:/gstreamer-sdk/0.10/x86/include/fontconfig -Ic:/gstreamer-sdk/0.10/x86/include/freetype2
-Ic:/gstreamer-sdk/0.10/x86/include/libpng15 -Ic:/gstreamer-sdk/0.10/x86/include/gstreamer-0.10
-Ic:/gstreamer-sdk/0.10/x86/include/libxml2
+CESARPLAYER_LIBS = -Lc:/gstreamer-sdk/0.10/x86/lib -lgtk-win32-2.0 -latk-1.0 -lgdk-win32-2.0
-lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lcairo -lgio-2.0 -lgstaudio-0.10
-lgstvideo-0.10 -lgstpbutils-0.10 -lgstinterfaces-0.10 -lgstapp-0.10 -lgstbase-0.10 -lgsttag-0.10
-lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lxml2 -lglib-2.0 -lintl
+CFLAGS = -Wall -g -O2 -DWINVER=0x0501
+CPP = i686-w64-mingw32-cpp
+CPPFLAGS =
+CYGPATH_W = echo
+DATADIRNAME = share
+DEFS = -DPACKAGE_NAME=\"chronojump\" -DPACKAGE_TARNAME=\"chronojump\" -DPACKAGE_VERSION=\"1.3.9\"
-DPACKAGE_STRING=\"chronojump\ 1.3.9\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"chronojump\"
-DVERSION=\"1.3.9\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1
-DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1
-DHAVE_UNISTD_H=1 -DLT_OBJDIR=\".libs/\" -DGETTEXT_PACKAGE=\"chronojump\" -DHAVE_LOCALE_H=1
-DHAVE_BIND_TEXTDOMAIN_CODESET=1 -DHAVE_GETTEXT=1 -DHAVE_DCGETTEXT=1 -DENABLE_NLS=1 -DOSTYPE_WINDOWS=1
+DEPDIR = .deps
+DLLTOOL = i686-w64-mingw32-dlltool
+DSYMUTIL =
+DUMPBIN =
+ECHO_C =
+ECHO_N = -n
+ECHO_T =
+EGREP = /bin/grep -E
+EXEEXT = .exe
+FGREP = /bin/grep -F
+GETTEXT_PACKAGE = chronojump
+GLADE_SHARP_20_CFLAGS = -I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/pango-api.xml
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/atk-api.xml
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/gdk-api.xml
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/gtk-api.xml
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/glib-api.xml
+GLADE_SHARP_20_LIBS = -r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/glade-sharp.dll
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/pango-sharp.dll
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/atk-sharp.dll
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/gdk-sharp.dll
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/gtk-sharp.dll
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/glib-sharp.dll
+GLIB_SHARP_20_CFLAGS = -I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/glib-api.xml
+GLIB_SHARP_20_LIBS = -r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/glib-sharp.dll
+GMOFILES =
+GMSGFMT = /usr/home/chronojump/cerbero/build-tools/bin/msgfmt
+GREP = /bin/grep
+GTK_SHARP_20_CFLAGS = -I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/pango-api.xml
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/atk-api.xml
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/gdk-api.xml
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/gtk-api.xml
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/glib-api.xml
+GTK_SHARP_20_LIBS = -r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/pango-sharp.dll
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/atk-sharp.dll
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/gdk-sharp.dll
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/gtk-sharp.dll
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/glib-sharp.dll
+INSTALL = /bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+INSTOBJEXT = .mo
+INTLLIBS = -lintl
+INTLTOOL_EXTRACT = /usr/home/chronojump/cerbero/build-tools/bin/intltool-extract
+INTLTOOL_MERGE = /usr/home/chronojump/cerbero/build-tools/bin/intltool-merge
+INTLTOOL_PERL = /bin/perl
+INTLTOOL_UPDATE = /usr/home/chronojump/cerbero/build-tools/bin/intltool-update
+LD = i686-w64-mingw32-ld
+LDFLAGS = -Lc:/gstreamer-sdk/0.10/x86/lib
+LIBOBJS =
+LIBS =
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIPO =
+LN_S = cp -p
+LTLIBOBJS =
+MAKEINFO = ${SHELL} /usr/home/chronojump/chronojump/missing --run makeinfo
+MANIFEST_TOOL = :
+MCS = /c/gstreamer-sdk/0.10/x86/bin/dmcs
+MKDIR_P = /bin/mkdir -p
+MKINSTALLDIRS = ./mkinstalldirs
+MONO = /c/gstreamer-sdk/0.10/x86/bin/mono
+MONO_MODULE_CFLAGS =
+MONO_MODULE_LIBS =
+MSGFMT = msgfmt
+MSGFMT_OPTS = -c
+MSGMERGE = /usr/home/chronojump/cerbero/build-tools/bin/msgmerge
+NM = i686-w64-mingw32-nm
+NMEDIT =
+OBJDUMP = objdump
+OBJEXT = o
+OTOOL =
+OTOOL64 =
+PACKAGE = chronojump
+PACKAGE_BUGREPORT =
+PACKAGE_NAME = chronojump
+PACKAGE_STRING = chronojump 1.3.9
+PACKAGE_TARNAME = chronojump
+PACKAGE_URL =
+PACKAGE_VERSION = 1.3.9
+PATH_SEPARATOR = :
+PKG_CONFIG = /usr/home/chronojump/cerbero/build-tools/bin/pkg-config
+PKG_CONFIG_LIBDIR = c:/gstreamer-sdk/0.10/x86/lib/pkgconfig
+PKG_CONFIG_PATH = c:/gstreamer-sdk/0.10/x86/share/pkgconfig
+POFILES =
+POSUB = po
+PO_IN_DATADIR_FALSE =
+PO_IN_DATADIR_TRUE =
+PYTHON = /c/Python27/python
+PYTHON_EXEC_PREFIX = ${exec_prefix}
+PYTHON_PLATFORM = win32
+PYTHON_PREFIX = ${prefix}
+PYTHON_VERSION = 2.7
+RANLIB = i686-w64-mingw32-ranlib
+SED = /bin/sed
+SET_MAKE =
+SHELL = /bin/sh
+STRIP = i686-w64-mingw32-strip
+USE_NLS = yes
+VERSION = 1.3.9
+XGETTEXT = /usr/home/chronojump/cerbero/build-tools/bin/xgettext
+abs_builddir = /usr/home/chronojump/chronojump/rdotnet/R.NET
+abs_srcdir = /usr/home/chronojump/chronojump/rdotnet/R.NET
+abs_top_builddir = /usr/home/chronojump/chronojump
+abs_top_srcdir = /usr/home/chronojump/chronojump
+ac_ct_AR =
+ac_ct_CC = i686-w64-mingw32-gcc
+ac_ct_DUMPBIN =
+am__include = include
+am__leading_dot = .
+am__quote =
+am__tar = $${TAR-tar} chof - "$$tardir"
+am__untar = $${TAR-tar} xf -
+bindir = ${exec_prefix}/bin
+build = i686-pc-mingw32
+build_alias =
+build_cpu = i686
+build_os = mingw32
+build_vendor = pc
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = /c/gstreamer-sdk/0.10/x86
+expanded_bindir = /c/gstreamer-sdk/0.10/x86/bin
+expanded_datadir = /c/gstreamer-sdk/0.10/x86/share
+expanded_libdir = /c/gstreamer-sdk/0.10/x86/lib
+host = i686-pc-mingw32
+host_alias =
+host_cpu = i686
+host_os = mingw32
+host_vendor = pc
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /usr/home/chronojump/chronojump/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = $(MKDIR_P)
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+pkgpyexecdir = ${pyexecdir}/chronojump
+pkgpythondir = ${pythondir}/chronojump
+prefix = /c/gstreamer-sdk/0.10/x86
+program_transform_name = s,x,x,
+psdir = ${docdir}
+pyexecdir = ${exec_prefix}\Lib\site-packages
+pythondir = ${prefix}\Lib\site-packages
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target_alias =
+top_build_prefix = ../../
+top_builddir = ../..
+top_srcdir = ../..
+ASSEMBLY = RDotNet
+TARGET = library
+LINK = $(REF_DEP_RDOTNET) $(am__append_1)
+SOURCES = \
+ Closure.cs \
+ ComplexVector.cs \
+ CharacterMatrix.cs \
+ ComplexMatrix.cs \
+ BuiltinFunction.cs \
+ Devices/CharacterDeviceAdapter.cs \
+ Devices/ConsoleDevice.cs \
+ Devices/NullCharacterDevice.cs \
+ Devices/ICharacterDevice.cs \
+ Internals/Delegates.cs \
+ Internals/OutputMode.cs \
+ Internals/Unix/RStart.cs \
+ Internals/ConsoleOutputType.cs \
+ Internals/BusyType.cs \
+ Internals/SaveActions.cs \
+ Internals/Unix/Delegates.cs \
+ Internals/Windows/Delegates.cs \
+ Internals/Windows/RStart.cs \
+ Internals/Windows/UiMode.cs \
+ Internals/YesNoCancel.cs \
+ SpecialFunction.cs \
+ Environment.cs \
+ Expression.cs \
+ ExpressionVector.cs \
+ DataFrame.cs \
+ DataFrameColumnAttribute.cs \
+ DataFrameRow.cs \
+ DataFrameRowAttribute.cs \
+ Diagnostics/DataFrameColumnDisplay.cs \
+ Diagnostics/DataFrameDebugView.cs \
+ Diagnostics/FactorDebugView.cs \
+ Diagnostics/MatrixDebugView.cs \
+ Diagnostics/VectorDebugView.cs \
+ DynamicVector.cs \
+ Dynamic/DataFrameDynamicMeta.cs \
+ Dynamic/SymbolicExpressionDynamicMeta.cs \
+ Dynamic/ListDynamicMeta.cs \
+ Function.cs \
+ GenericVector.cs \
+ Language.cs \
+ LogicalMatrix.cs \
+ Pairlist.cs \
+ RawMatrix.cs \
+ NumericMatrix.cs \
+ IntegerMatrix.cs \
+ Matrix.cs \
+ InternalString.cs \
+ Internals/SEXPREC_HEADER.cs \
+ RawVector.cs \
+ Internals/ParseStatus.cs \
+ NumericVector.cs \
+ IntegerVector.cs \
+ Internals/VECTOR_SEXPREC.cs \
+ ParseException.cs \
+ ProtectedPointer.cs \
+ REngineExtension.cs \
+ StartupParameter.cs \
+ Symbol.cs \
+ SymbolicExpression.cs \
+ Internals/SEXPREC.cs \
+ Internals/SymbolicExpressionType.cs \
+ Internals/sxpinfo.cs \
+ Properties/AssemblyInfo.cs \
+ REngine.cs \
+ Factor.cs \
+ SymbolicExpressionExtension.cs \
+ Utility.cs \
+ Vector.cs \
+ LogicalVector.cs \
+ CharacterVector.cs
+
+
+# Initializers
+MONO_BASE_PATH =
+MONO_ADDINS_PATH =
+
+# Install Paths
+DEFAULT_INSTALL_DIR = $(pkglibdir)
+
+# External libraries to link against, generated from configure
+LINK_SYSTEM = -r:System
+LINK_SYSTEM_CORE = -r:System.Core
+LINK_SYSTEM_DATA_DATASETEXTENSTIONS = -r:System.Data.DataSetExtensions
+LINK_SYSTEMDATA = -r:System.Data
+LINK_SYSTEM_DRAWING = -r:System.Drawing
+LINK_SYSTEM_NUMERICS = -r:System.Numerics
+LINK_SYSTEM_XML = -r:System.Xml
+LINK_SYSTEM_XML_LINQ = -r:System.Xml.Linq
+LINK_SYSTEM_WEB_SERVICES = -r:System.Web.Services
+LINK_MICROSOFT_CSHARP = -r:Microsoft.CSharp
+LINK_CAIRO = -r:Mono.Cairo
+LINK_MONO_POSIX = -r:Mono.Posix
+LINK_MONO_DATA_SQLITE = -r:Mono.Data.Sqlite
+LINK_GLIB = $(GLIB_SHARP_20_LIBS)
+LINK_GTK = $(GTK_SHARP_20_LIBS)
+LINK_GLADE = $(GLADE_SHARP_20_LIBS)
+LINK_CESARPLAYER = -r:$(DIR_BIN)/CesarPlayer.dll
+LINK_RDOTNET = -r:$(DIR_BIN)/RDotNet.dll
+LINK_RDOTNET_NATIVE = -r:$(DIR_BIN)/RDotNet.NativeLibrary.dll
+REF_DEP_CHRONOJUMP = \
+ $(LINK_SYSTEM) \
+ $(LINK_SYSTEMDATA) \
+ $(LINK_SYSTEM_DRAWING) \
+ $(LINK_SYSTEM_WEB_SERVICES) \
+ $(LINK_SYSTEM_XML) \
+ $(LINK_MONO_POSIX) \
+ $(LINK_MONO_DATA_SQLITE) \
+ $(LINK_GLIB) \
+ $(LINK_GLADE) \
+ $(LINK_GTK) \
+ $(LINK_CESARPLAYER) \
+ $(LINK_RDOTNET) \
+ $(LINK_RDOTNET_NATIVE)
+
+REF_DEP_CESARPLAYER = \
+ $(LINK_SYSTEM) \
+ $(LINK_MONO_POSIX) \
+ $(LINK_GLIB) \
+ $(LINK_GTK)
+
+REF_DEP_RDOTNET_NATIVE = \
+ $(LINK_SYSTEM) \
+ $(LINK_SYSTEM_CORE) \
+ $(LINK_SYSTEM_DATA_DATASETEXTENSTIONS) \
+ $(LINK_SYSTEM_XML) \
+ $(LINK_SYSTEM_XML_LINQ) \
+ $(LINK_MICROSOFT_CSHARP)
+
+REF_DEP_RDOTNET = \
+ $(LINK_SYSTEM) \
+ $(LINK_SYSTEM_CORE) \
+ $(LINK_SYSTEM_DATA_DATASETEXTENSTIONS) \
+ $(LINK_SYSTEM_NUMERICS) \
+ $(LINK_SYSTEM_XML) \
+ $(LINK_SYSTEM_XML_LINQ) \
+ $(LINK_MICROSOFT_CSHARP) \
+ $(LINK_RDOTNET_NATIVE)
+
+REF_DEP_CHRONOJUMP_SERVER = \
+ $(LINK_SYSTEM) \
+ $(LINK_SYSTEMDATA) \
+ $(LINK_SYSTEM_WEB_SERVICES) \
+ $(LINK_MONO_POSIX) \
+ $(LINK_MONO_DATA_SQLITE)
+
+DIR_BIN = $(top_builddir)/bin
+
+# Cute hack to replace a space with something
+colon := :
+empty :=
+space := $(empty) $(empty)
+
+# Build path to allow running uninstalled
+RUN_PATH = $(subst $(space),$(colon), $(MONO_BASE_PATH))
+UNIQUE_FILTER_PIPE = tr [:space:] \\n | sort | uniq
+BUILD_DATA_DIR = $(top_builddir)/bin/share/$(PACKAGE)
+SOURCES_BUILD = $(addprefix $(srcdir)/, $(SOURCES))
+#SOURCES_BUILD += $(top_srcdir)/src/AssemblyInfo.cs
+SUBST = ,
+RESOURCES_D := $(foreach res,$(RESOURCES),$(firstword $(subst $(SUBST), ,$(strip $(res)))))
+RESOURCES_DIST := $(addprefix $(srcdir)/, $(RESOURCES_D))
+RESOURCES_EXPANDED = $(addprefix $(srcdir)/, $(RESOURCES))
+RESOURCES_BUILD = $(foreach resource, $(RESOURCES_EXPANDED), \
+ -resource:$(resource))
+
+INSTALL_ICONS = $(top_srcdir)/build/private-icon-theme-installer "$(mkinstalldirs)" "$(INSTALL_DATA)"
+ASSEMBLY_EXTENSION = $(strip $(patsubst library, dll, $(TARGET)))
+ASSEMBLY_FILE = $(top_builddir)/bin/$(ASSEMBLY).$(ASSEMBLY_EXTENSION)
+INSTALL_DIR_RESOLVED = $(firstword $(subst , $(DEFAULT_INSTALL_DIR), $(INSTALL_DIR)))
+#ENABLE_TESTS_FLAG = "-define:ENABLE_TESTS"
+FILTERED_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE))
+DEP_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE) | sed s,-r:,,g | grep '$(top_builddir)/bin/')
+OUTPUT_FILES = \
+ $(ASSEMBLY_FILE) \
+ $(ASSEMBLY_FILE).mdb \
+ $(DLLCONFIG)
+
+moduledir = $(INSTALL_DIR_RESOLVED)
+module_SCRIPTS = $(OUTPUT_FILES)
+desktopdir = $(datadir)/applications
+desktop_in_files = $(DESKTOP_FILE)
+desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
+imagesdir = ${datarootdir}/chronojump/images
+images_DATA = $(IMAGES)
+logo_48dir = ${datarootdir}/icons/hicolor/48x48/apps
+logo_48_DATA = $(LOGO_48)
+logodir = ${datarootdir}/icons/hicolor/scalable/apps
+logo_DATA = $(LOGO)
+EXTRA_DIST = $(SOURCES_BUILD) $(RESOURCES_DIST) $(THEME_ICONS_SOURCE) $(IMAGES) $(LOGO) $(LOGO_48)
$(desktop_in_files)
+CLEANFILES = $(OUTPUT_FILES)
+DISTCLEANFILES = *.pidb $(desktop_DATA)
+MAINTAINERCLEANFILES = Makefile.in
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/build/build.mk
$(top_srcdir)/build/build.environment.mk $(top_srcdir)/build/build.rules.mk $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign rdotnet/R.NET/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign rdotnet/R.NET/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+$(top_srcdir)/build/build.mk $(top_srcdir)/build/build.environment.mk $(top_srcdir)/build/build.rules.mk:
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-moduleSCRIPTS: $(module_SCRIPTS)
+ @$(NORMAL_INSTALL)
+ @list='$(module_SCRIPTS)'; test -n "$(moduledir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(moduledir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(moduledir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(moduledir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(moduledir)$$dir" || exit $$?; \
+ } \
+ ; done
+
+uninstall-moduleSCRIPTS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(module_SCRIPTS)'; test -n "$(moduledir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(moduledir)'; $(am__uninstall_files_from_dir)
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-desktopDATA: $(desktop_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(desktopdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(desktopdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \
+ done
+
+uninstall-desktopDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(desktopdir)'; $(am__uninstall_files_from_dir)
+install-imagesDATA: $(images_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(imagesdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(imagesdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(imagesdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(imagesdir)" || exit $$?; \
+ done
+
+uninstall-imagesDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(imagesdir)'; $(am__uninstall_files_from_dir)
+install-logoDATA: $(logo_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(logo_DATA)'; test -n "$(logodir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(logodir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(logodir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(logodir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(logodir)" || exit $$?; \
+ done
+
+uninstall-logoDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(logo_DATA)'; test -n "$(logodir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(logodir)'; $(am__uninstall_files_from_dir)
+install-logo_48DATA: $(logo_48_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(logo_48_DATA)'; test -n "$(logo_48dir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(logo_48dir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(logo_48dir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(logo_48dir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(logo_48dir)" || exit $$?; \
+ done
+
+uninstall-logo_48DATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(logo_48_DATA)'; test -n "$(logo_48dir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(logo_48dir)'; $(am__uninstall_files_from_dir)
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(SCRIPTS) $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(moduledir)" "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(imagesdir)"
"$(DESTDIR)$(logodir)" "$(DESTDIR)$(logo_48dir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-desktopDATA install-imagesDATA \
+ install-logoDATA install-logo_48DATA install-moduleSCRIPTS
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-desktopDATA uninstall-imagesDATA \
+ uninstall-logoDATA uninstall-logo_48DATA \
+ uninstall-moduleSCRIPTS
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) uninstall-hook
+.MAKE: install-am install-data-am install-strip uninstall-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-data-hook \
+ install-desktopDATA install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am \
+ install-imagesDATA install-info install-info-am \
+ install-logoDATA install-logo_48DATA install-man \
+ install-moduleSCRIPTS install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am uninstall uninstall-am uninstall-desktopDATA \
+ uninstall-hook uninstall-imagesDATA uninstall-logoDATA \
+ uninstall-logo_48DATA uninstall-moduleSCRIPTS
+
+
+%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE)
-d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+
+all: $(ASSEMBLY_FILE)
+
+run:
+ @pushd $(top_builddir); \
+ make run; \
+ popd;
+
+test:
+ @pushd $(top_builddir)/tests; \
+ make $(ASSEMBLY); \
+ popd;
+
+build-debug:
+ @echo $(DEP_LINK)
+
+$(ASSEMBLY_FILE).mdb: $(ASSEMBLY_FILE)
+
+$(ASSEMBLY_FILE): $(SOURCES_BUILD) $(DEP_LINK)
+ @mkdir -p $(top_builddir)/bin
+ $(MCS) \
+ $(GMCS_FLAGS) \
+ $(ASSEMBLY_BUILD_FLAGS) \
+ -nowarn:0278 -nowarn:0078 $$warn -unsafe \
+ -define:HAVE_GTK -codepage:utf8 \
+ -debug -target:$(TARGET) -out:$@ \
+ $(BUILD_DEFINES) $(ENABLE_TESTS_FLAG) $(ENABLE_ATK_FLAG) \
+ $(FILTERED_LINK) $(RESOURCES_BUILD) $(SOURCES_BUILD)
+ @if [ ! -z "$(EXTRA_BUNDLE)" ]; then \
+ cp $(EXTRA_BUNDLE) $(top_builddir)/bin; \
+ fi;
+
+#theme-icons: $(THEME_ICONS_SOURCE)
+# @$(INSTALL_ICONS) -il "$(BUILD_DATA_DIR)" "$(srcdir)" $(THEME_ICONS_RELATIVE)
+
+install-data-hook: $(THEME_ICONS_SOURCE)
+ @$(INSTALL_ICONS) -i "$(DESTDIR)$(pkgdatadir)" "$(srcdir)" $(THEME_ICONS_RELATIVE)
+ $(EXTRA_INSTALL_DATA_HOOK)
+
+uninstall-hook: $(THEME_ICONS_SOURCE)
+ @$(INSTALL_ICONS) -u "$(DESTDIR)$(pkgdatadir)" "$(srcdir)" $(THEME_ICONS_RELATIVE)
+ $(EXTRA_UNINSTALL_HOOK)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/rdotnet/R.NET/Makefile.am b/rdotnet/R.NET/Makefile.am
index f76a722..d95f262 100644
--- a/rdotnet/R.NET/Makefile.am
+++ b/rdotnet/R.NET/Makefile.am
@@ -29,8 +29,15 @@ SOURCES = \
Expression.cs \
ExpressionVector.cs \
DataFrame.cs \
+ DataFrameColumnAttribute.cs \
DataFrameRow.cs \
- DynamicVector.cs \
+ DataFrameRowAttribute.cs \
+ Diagnostics/DataFrameColumnDisplay.cs \
+ Diagnostics/DataFrameDebugView.cs \
+ Diagnostics/FactorDebugView.cs \
+ Diagnostics/MatrixDebugView.cs \
+ Diagnostics/VectorDebugView.cs \
+ DynamicVector.cs \
Dynamic/DataFrameDynamicMeta.cs \
Dynamic/SymbolicExpressionDynamicMeta.cs \
Dynamic/ListDynamicMeta.cs \
@@ -61,6 +68,7 @@ SOURCES = \
Internals/sxpinfo.cs \
Properties/AssemblyInfo.cs \
REngine.cs \
+ Factor.cs \
SymbolicExpressionExtension.cs \
Utility.cs \
Vector.cs \
diff --git a/rdotnet/R.NET/Makefile.in b/rdotnet/R.NET/Makefile.in
new file mode 100644
index 0000000..0c39a9d
--- /dev/null
+++ b/rdotnet/R.NET/Makefile.in
@@ -0,0 +1,843 @@
+# Makefile.in generated by automake 1.12.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ SET_MAKE@
+
+
+VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/build/build.environment.mk \
+ $(top_srcdir)/build/build.mk \
+ $(top_srcdir)/build/build.rules.mk
+ ENABLE_TESTS_TRUE@am__append_1 = " $(NUNIT_LIBS)"
+subdir = rdotnet/R.NET
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/build/m4/shamrock/expansions.m4 \
+ $(top_srcdir)/build/m4/shamrock/mono.m4 \
+ $(top_srcdir)/build/m4/shamrock/programs.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(moduledir)" "$(DESTDIR)$(desktopdir)" \
+ "$(DESTDIR)$(imagesdir)" "$(DESTDIR)$(logodir)" \
+ "$(DESTDIR)$(logo_48dir)"
+SCRIPTS = $(module_SCRIPTS)
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+DATA = $(desktop_DATA) $(images_DATA) $(logo_DATA) $(logo_48_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CESARPLAYER_CFLAGS = @CESARPLAYER_CFLAGS@
+CESARPLAYER_LIBS = @CESARPLAYER_LIBS@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLADE_SHARP_20_CFLAGS = @GLADE_SHARP_20_CFLAGS@
+GLADE_SHARP_20_LIBS = @GLADE_SHARP_20_LIBS@
+GLIB_SHARP_20_CFLAGS = @GLIB_SHARP_20_CFLAGS@
+GLIB_SHARP_20_LIBS = @GLIB_SHARP_20_LIBS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+GTK_SHARP_20_CFLAGS = @GTK_SHARP_20_CFLAGS@
+GTK_SHARP_20_LIBS = @GTK_SHARP_20_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MCS = @MCS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MONO = @MONO@
+MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@
+MONO_MODULE_LIBS = @MONO_MODULE_LIBS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+expanded_bindir = @expanded_bindir@
+expanded_datadir = @expanded_datadir@
+expanded_libdir = @expanded_libdir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+ASSEMBLY = RDotNet
+TARGET = library
+LINK = $(REF_DEP_RDOTNET) $(am__append_1)
+SOURCES = \
+ Closure.cs \
+ ComplexVector.cs \
+ CharacterMatrix.cs \
+ ComplexMatrix.cs \
+ BuiltinFunction.cs \
+ Devices/CharacterDeviceAdapter.cs \
+ Devices/ConsoleDevice.cs \
+ Devices/NullCharacterDevice.cs \
+ Devices/ICharacterDevice.cs \
+ Internals/Delegates.cs \
+ Internals/OutputMode.cs \
+ Internals/Unix/RStart.cs \
+ Internals/ConsoleOutputType.cs \
+ Internals/BusyType.cs \
+ Internals/SaveActions.cs \
+ Internals/Unix/Delegates.cs \
+ Internals/Windows/Delegates.cs \
+ Internals/Windows/RStart.cs \
+ Internals/Windows/UiMode.cs \
+ Internals/YesNoCancel.cs \
+ SpecialFunction.cs \
+ Environment.cs \
+ Expression.cs \
+ ExpressionVector.cs \
+ DataFrame.cs \
+ DataFrameColumnAttribute.cs \
+ DataFrameRow.cs \
+ DataFrameRowAttribute.cs \
+ Diagnostics/DataFrameColumnDisplay.cs \
+ Diagnostics/DataFrameDebugView.cs \
+ Diagnostics/FactorDebugView.cs \
+ Diagnostics/MatrixDebugView.cs \
+ Diagnostics/VectorDebugView.cs \
+ DynamicVector.cs \
+ Dynamic/DataFrameDynamicMeta.cs \
+ Dynamic/SymbolicExpressionDynamicMeta.cs \
+ Dynamic/ListDynamicMeta.cs \
+ Function.cs \
+ GenericVector.cs \
+ Language.cs \
+ LogicalMatrix.cs \
+ Pairlist.cs \
+ RawMatrix.cs \
+ NumericMatrix.cs \
+ IntegerMatrix.cs \
+ Matrix.cs \
+ InternalString.cs \
+ Internals/SEXPREC_HEADER.cs \
+ RawVector.cs \
+ Internals/ParseStatus.cs \
+ NumericVector.cs \
+ IntegerVector.cs \
+ Internals/VECTOR_SEXPREC.cs \
+ ParseException.cs \
+ ProtectedPointer.cs \
+ REngineExtension.cs \
+ StartupParameter.cs \
+ Symbol.cs \
+ SymbolicExpression.cs \
+ Internals/SEXPREC.cs \
+ Internals/SymbolicExpressionType.cs \
+ Internals/sxpinfo.cs \
+ Properties/AssemblyInfo.cs \
+ REngine.cs \
+ Factor.cs \
+ SymbolicExpressionExtension.cs \
+ Utility.cs \
+ Vector.cs \
+ LogicalVector.cs \
+ CharacterVector.cs
+
+
+# Initializers
+MONO_BASE_PATH =
+MONO_ADDINS_PATH =
+
+# Install Paths
+DEFAULT_INSTALL_DIR = $(pkglibdir)
+
+# External libraries to link against, generated from configure
+LINK_SYSTEM = -r:System
+LINK_SYSTEM_CORE = -r:System.Core
+LINK_SYSTEM_DATA_DATASETEXTENSTIONS = -r:System.Data.DataSetExtensions
+LINK_SYSTEMDATA = -r:System.Data
+LINK_SYSTEM_DRAWING = -r:System.Drawing
+LINK_SYSTEM_NUMERICS = -r:System.Numerics
+LINK_SYSTEM_XML = -r:System.Xml
+LINK_SYSTEM_XML_LINQ = -r:System.Xml.Linq
+LINK_SYSTEM_WEB_SERVICES = -r:System.Web.Services
+LINK_MICROSOFT_CSHARP = -r:Microsoft.CSharp
+LINK_CAIRO = -r:Mono.Cairo
+LINK_MONO_POSIX = -r:Mono.Posix
+LINK_MONO_DATA_SQLITE = -r:Mono.Data.Sqlite
+LINK_GLIB = $(GLIB_SHARP_20_LIBS)
+LINK_GTK = $(GTK_SHARP_20_LIBS)
+LINK_GLADE = $(GLADE_SHARP_20_LIBS)
+LINK_CESARPLAYER = -r:$(DIR_BIN)/CesarPlayer.dll
+LINK_RDOTNET = -r:$(DIR_BIN)/RDotNet.dll
+LINK_RDOTNET_NATIVE = -r:$(DIR_BIN)/RDotNet.NativeLibrary.dll
+REF_DEP_CHRONOJUMP = \
+ $(LINK_SYSTEM) \
+ $(LINK_SYSTEMDATA) \
+ $(LINK_SYSTEM_DRAWING) \
+ $(LINK_SYSTEM_WEB_SERVICES) \
+ $(LINK_SYSTEM_XML) \
+ $(LINK_MONO_POSIX) \
+ $(LINK_MONO_DATA_SQLITE) \
+ $(LINK_GLIB) \
+ $(LINK_GLADE) \
+ $(LINK_GTK) \
+ $(LINK_CESARPLAYER) \
+ $(LINK_RDOTNET) \
+ $(LINK_RDOTNET_NATIVE)
+
+REF_DEP_CESARPLAYER = \
+ $(LINK_SYSTEM) \
+ $(LINK_MONO_POSIX) \
+ $(LINK_GLIB) \
+ $(LINK_GTK)
+
+REF_DEP_RDOTNET_NATIVE = \
+ $(LINK_SYSTEM) \
+ $(LINK_SYSTEM_CORE) \
+ $(LINK_SYSTEM_DATA_DATASETEXTENSTIONS) \
+ $(LINK_SYSTEM_XML) \
+ $(LINK_SYSTEM_XML_LINQ) \
+ $(LINK_MICROSOFT_CSHARP)
+
+REF_DEP_RDOTNET = \
+ $(LINK_SYSTEM) \
+ $(LINK_SYSTEM_CORE) \
+ $(LINK_SYSTEM_DATA_DATASETEXTENSTIONS) \
+ $(LINK_SYSTEM_NUMERICS) \
+ $(LINK_SYSTEM_XML) \
+ $(LINK_SYSTEM_XML_LINQ) \
+ $(LINK_MICROSOFT_CSHARP) \
+ $(LINK_RDOTNET_NATIVE)
+
+REF_DEP_CHRONOJUMP_SERVER = \
+ $(LINK_SYSTEM) \
+ $(LINK_SYSTEMDATA) \
+ $(LINK_SYSTEM_WEB_SERVICES) \
+ $(LINK_MONO_POSIX) \
+ $(LINK_MONO_DATA_SQLITE)
+
+DIR_BIN = $(top_builddir)/bin
+
+# Cute hack to replace a space with something
+colon := :
+empty :=
+space := $(empty) $(empty)
+
+# Build path to allow running uninstalled
+RUN_PATH = $(subst $(space),$(colon), $(MONO_BASE_PATH))
+UNIQUE_FILTER_PIPE = tr [:space:] \\n | sort | uniq
+BUILD_DATA_DIR = $(top_builddir)/bin/share/$(PACKAGE)
+SOURCES_BUILD = $(addprefix $(srcdir)/, $(SOURCES))
+#SOURCES_BUILD += $(top_srcdir)/src/AssemblyInfo.cs
+SUBST = ,
+RESOURCES_D := $(foreach res,$(RESOURCES),$(firstword $(subst $(SUBST), ,$(strip $(res)))))
+RESOURCES_DIST := $(addprefix $(srcdir)/, $(RESOURCES_D))
+RESOURCES_EXPANDED = $(addprefix $(srcdir)/, $(RESOURCES))
+RESOURCES_BUILD = $(foreach resource, $(RESOURCES_EXPANDED), \
+ -resource:$(resource))
+
+INSTALL_ICONS = $(top_srcdir)/build/private-icon-theme-installer "$(mkinstalldirs)" "$(INSTALL_DATA)"
+ASSEMBLY_EXTENSION = $(strip $(patsubst library, dll, $(TARGET)))
+ASSEMBLY_FILE = $(top_builddir)/bin/$(ASSEMBLY).$(ASSEMBLY_EXTENSION)
+INSTALL_DIR_RESOLVED = $(firstword $(subst , $(DEFAULT_INSTALL_DIR), $(INSTALL_DIR)))
+ ENABLE_TESTS_TRUE@ENABLE_TESTS_FLAG = "-define:ENABLE_TESTS"
+FILTERED_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE))
+DEP_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE) | sed s,-r:,,g | grep '$(top_builddir)/bin/')
+OUTPUT_FILES = \
+ $(ASSEMBLY_FILE) \
+ $(ASSEMBLY_FILE).mdb \
+ $(DLLCONFIG)
+
+moduledir = $(INSTALL_DIR_RESOLVED)
+module_SCRIPTS = $(OUTPUT_FILES)
+desktopdir = $(datadir)/applications
+desktop_in_files = $(DESKTOP_FILE)
+desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
+imagesdir = @datadir@/@PACKAGE@/images
+images_DATA = $(IMAGES)
+logo_48dir = @datadir@/icons/hicolor/48x48/apps
+logo_48_DATA = $(LOGO_48)
+logodir = @datadir@/icons/hicolor/scalable/apps
+logo_DATA = $(LOGO)
+EXTRA_DIST = $(SOURCES_BUILD) $(RESOURCES_DIST) $(THEME_ICONS_SOURCE) $(IMAGES) $(LOGO) $(LOGO_48)
$(desktop_in_files)
+CLEANFILES = $(OUTPUT_FILES)
+DISTCLEANFILES = *.pidb $(desktop_DATA)
+MAINTAINERCLEANFILES = Makefile.in
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/build/build.mk
$(top_srcdir)/build/build.environment.mk $(top_srcdir)/build/build.rules.mk $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign rdotnet/R.NET/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign rdotnet/R.NET/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+$(top_srcdir)/build/build.mk $(top_srcdir)/build/build.environment.mk $(top_srcdir)/build/build.rules.mk:
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-moduleSCRIPTS: $(module_SCRIPTS)
+ @$(NORMAL_INSTALL)
+ @list='$(module_SCRIPTS)'; test -n "$(moduledir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(moduledir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(moduledir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(moduledir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(moduledir)$$dir" || exit $$?; \
+ } \
+ ; done
+
+uninstall-moduleSCRIPTS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(module_SCRIPTS)'; test -n "$(moduledir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(moduledir)'; $(am__uninstall_files_from_dir)
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-desktopDATA: $(desktop_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(desktopdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(desktopdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \
+ done
+
+uninstall-desktopDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(desktopdir)'; $(am__uninstall_files_from_dir)
+install-imagesDATA: $(images_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(imagesdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(imagesdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(imagesdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(imagesdir)" || exit $$?; \
+ done
+
+uninstall-imagesDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(imagesdir)'; $(am__uninstall_files_from_dir)
+install-logoDATA: $(logo_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(logo_DATA)'; test -n "$(logodir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(logodir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(logodir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(logodir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(logodir)" || exit $$?; \
+ done
+
+uninstall-logoDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(logo_DATA)'; test -n "$(logodir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(logodir)'; $(am__uninstall_files_from_dir)
+install-logo_48DATA: $(logo_48_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(logo_48_DATA)'; test -n "$(logo_48dir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(logo_48dir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(logo_48dir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(logo_48dir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(logo_48dir)" || exit $$?; \
+ done
+
+uninstall-logo_48DATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(logo_48_DATA)'; test -n "$(logo_48dir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(logo_48dir)'; $(am__uninstall_files_from_dir)
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(SCRIPTS) $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(moduledir)" "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(imagesdir)"
"$(DESTDIR)$(logodir)" "$(DESTDIR)$(logo_48dir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-desktopDATA install-imagesDATA \
+ install-logoDATA install-logo_48DATA install-moduleSCRIPTS
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-desktopDATA uninstall-imagesDATA \
+ uninstall-logoDATA uninstall-logo_48DATA \
+ uninstall-moduleSCRIPTS
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) uninstall-hook
+.MAKE: install-am install-data-am install-strip uninstall-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-data-hook \
+ install-desktopDATA install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am \
+ install-imagesDATA install-info install-info-am \
+ install-logoDATA install-logo_48DATA install-man \
+ install-moduleSCRIPTS install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am uninstall uninstall-am uninstall-desktopDATA \
+ uninstall-hook uninstall-imagesDATA uninstall-logoDATA \
+ uninstall-logo_48DATA uninstall-moduleSCRIPTS
+
+
+ INTLTOOL_DESKTOP_RULE@
+
+all: $(ASSEMBLY_FILE)
+
+run:
+ @pushd $(top_builddir); \
+ make run; \
+ popd;
+
+test:
+ @pushd $(top_builddir)/tests; \
+ make $(ASSEMBLY); \
+ popd;
+
+build-debug:
+ @echo $(DEP_LINK)
+
+$(ASSEMBLY_FILE).mdb: $(ASSEMBLY_FILE)
+
+$(ASSEMBLY_FILE): $(SOURCES_BUILD) $(DEP_LINK)
+ @mkdir -p $(top_builddir)/bin
+ $(MCS) \
+ $(GMCS_FLAGS) \
+ $(ASSEMBLY_BUILD_FLAGS) \
+ -nowarn:0278 -nowarn:0078 $$warn -unsafe \
+ -define:HAVE_GTK -codepage:utf8 \
+ -debug -target:$(TARGET) -out:$@ \
+ $(BUILD_DEFINES) $(ENABLE_TESTS_FLAG) $(ENABLE_ATK_FLAG) \
+ $(FILTERED_LINK) $(RESOURCES_BUILD) $(SOURCES_BUILD)
+ @if [ ! -z "$(EXTRA_BUNDLE)" ]; then \
+ cp $(EXTRA_BUNDLE) $(top_builddir)/bin; \
+ fi;
+
+#theme-icons: $(THEME_ICONS_SOURCE)
+# @$(INSTALL_ICONS) -il "$(BUILD_DATA_DIR)" "$(srcdir)" $(THEME_ICONS_RELATIVE)
+
+install-data-hook: $(THEME_ICONS_SOURCE)
+ @$(INSTALL_ICONS) -i "$(DESTDIR)$(pkgdatadir)" "$(srcdir)" $(THEME_ICONS_RELATIVE)
+ $(EXTRA_INSTALL_DATA_HOOK)
+
+uninstall-hook: $(THEME_ICONS_SOURCE)
+ @$(INSTALL_ICONS) -u "$(DESTDIR)$(pkgdatadir)" "$(srcdir)" $(THEME_ICONS_RELATIVE)
+ $(EXTRA_UNINSTALL_HOOK)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/rdotnet/R.NET/Matrix.cs b/rdotnet/R.NET/Matrix.cs
index b54fca5..91caf18 100644
--- a/rdotnet/R.NET/Matrix.cs
+++ b/rdotnet/R.NET/Matrix.cs
@@ -1,280 +1,314 @@
-using System;
+using RDotNet.Diagnostics;
+using RDotNet.Internals;
+using System;
+using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Security.Permissions;
-using RDotNet.Internals;
namespace RDotNet
{
- /// <summary>
- /// A matrix base.
- /// </summary>
- /// <typeparam name="T">The element type.</typeparam>
- [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
- public abstract class Matrix<T> : SymbolicExpression
- {
- /// <summary>
- /// Creates a new matrix with the specified size.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="type">The element type.</param>
- /// <param name="rowCount">The size of row.</param>
- /// <param name="columnCount">The size of column.</param>
- protected Matrix(REngine engine, SymbolicExpressionType type, int rowCount, int columnCount)
- : base(engine, engine.GetFunction<Rf_allocMatrix>("Rf_allocMatrix")(type, rowCount,
columnCount))
- {
- if (rowCount <= 0)
- {
- throw new ArgumentOutOfRangeException("rowCount");
- }
- if (columnCount <= 0)
- {
- throw new ArgumentOutOfRangeException("columnCount");
- }
- var empty = new byte[rowCount * columnCount * DataSize];
- Marshal.Copy(empty, 0, DataPointer, empty.Length);
- }
+ /// <summary>
+ /// A matrix base.
+ /// </summary>
+ /// <typeparam name="T">The element type.</typeparam>
+ [DebuggerDisplay("MatrixSize = {RowCount} x {ColumnCount}; RObjectType = {Type}")]
+ [DebuggerTypeProxy(typeof(MatrixDebugView<>))]
+ [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+ public abstract class Matrix<T> : SymbolicExpression
+ {
+ /// <summary>
+ /// Creates a new matrix with the specified size.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="type">The element type.</param>
+ /// <param name="rowCount">The size of row.</param>
+ /// <param name="columnCount">The size of column.</param>
+ protected Matrix(REngine engine, SymbolicExpressionType type, int rowCount, int columnCount)
+ : base(engine, engine.GetFunction<Rf_allocMatrix>()(type, rowCount, columnCount))
+ {
+ if (rowCount <= 0)
+ {
+ throw new ArgumentOutOfRangeException("rowCount");
+ }
+ if (columnCount <= 0)
+ {
+ throw new ArgumentOutOfRangeException("columnCount");
+ }
+ var empty = new byte[rowCount * columnCount * DataSize];
+ Marshal.Copy(empty, 0, DataPointer, empty.Length);
+ }
+
+ /// <summary>
+ /// Creates a new matrix with the specified values.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="type">The element type.</param>
+ /// <param name="matrix">The values.</param>
+ public Matrix(REngine engine, SymbolicExpressionType type, T[,] matrix)
+ : base(engine, engine.GetFunction<Rf_allocMatrix>()(type, matrix.GetLength(0), matrix.GetLength(1)))
+ {
+ int rowCount = RowCount;
+ int columnCount = ColumnCount;
+ //InitMatrixWithIndexers(matrix, rowCount, columnCount);
+ InitMatrixFast(matrix);
+ }
+
+ private void InitMatrixFast(T[,] matrix)
+ {
+ using (new ProtectedPointer(this))
+ {
+ InitMatrixFastDirect(matrix);
+ }
+ }
+
+ protected abstract void InitMatrixFastDirect(T[,] matrix);
+
+ private void InitMatrixWithIndexers(T[,] matrix, int rowCount, int columnCount)
+ {
+ for (int rowIndex = 0; rowIndex < rowCount; rowIndex++)
+ {
+ for (int columnIndex = 0; columnIndex < columnCount; columnIndex++)
+ {
+ this[rowIndex, columnIndex] = matrix[rowIndex, columnIndex];
+ }
+ }
+ }
+
+ /// <summary>
+ /// Creates a new instance for a matrix.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="coerced">The pointer to a matrix.</param>
+ protected Matrix(REngine engine, IntPtr coerced)
+ : base(engine, coerced)
+ { }
+ /// <summary>
+ /// Gets or sets the element at the specified index.
+ /// </summary>
+ /// <param name="rowIndex">The zero-based row index of the element to get or set.</param>
+ /// <param name="columnIndex">The zero-based column index of the element to get or set.</param>
+ /// <returns>The element at the specified index.</returns>
+ public abstract T this[int rowIndex, int columnIndex] { get; set; }
- /// <summary>
- /// Creates a new matrix with the specified values.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="type">The element type.</param>
- /// <param name="matrix">The values.</param>
- public Matrix(REngine engine, SymbolicExpressionType type, T[,] matrix)
- : base(engine, engine.GetFunction<Rf_allocMatrix>("Rf_allocMatrix")(type,
matrix.GetLength(0), matrix.GetLength(1)))
- {
- int rowCount = RowCount;
- int columnCount = ColumnCount;
- for (int rowIndex = 0; rowIndex < rowCount; rowIndex++)
- {
- for (int columnIndex = 0; columnIndex < columnCount; columnIndex++)
- {
- this[rowIndex, columnIndex] = matrix[rowIndex, columnIndex];
- }
- }
- }
+ /// <summary>
+ /// Gets or sets the element at the specified names.
+ /// </summary>
+ /// <param name="rowName">The row name of the element to get or set.</param>
+ /// <param name="columnName">The column name of the element to get or set.</param>
+ /// <returns>The element at the specified names.</returns>
+ public virtual T this[string rowName, string columnName]
+ {
+ get
+ {
+ if (rowName == null)
+ {
+ throw new ArgumentNullException("rowName");
+ }
+ if (columnName == null)
+ {
+ throw new ArgumentNullException("columnName");
+ }
+ string[] rowNames = RowNames;
+ if (rowNames == null)
+ {
+ throw new InvalidOperationException();
+ }
+ string[] columnNames = ColumnNames;
+ if (columnNames == null)
+ {
+ throw new InvalidOperationException();
+ }
+ int rowIndex = Array.IndexOf(rowNames, rowName);
+ int columnIndex = Array.IndexOf(columnNames, columnName);
+ return this[rowIndex, columnIndex];
+ }
+ set
+ {
+ if (rowName == null)
+ {
+ throw new ArgumentNullException("rowName");
+ }
+ if (columnName == null)
+ {
+ throw new ArgumentNullException("columnName");
+ }
+ string[] rowNames = RowNames;
+ if (rowNames == null)
+ {
+ throw new InvalidOperationException();
+ }
+ string[] columnNames = ColumnNames;
+ if (columnNames == null)
+ {
+ throw new InvalidOperationException();
+ }
+ int rowIndex = Array.IndexOf(rowNames, rowName);
+ int columnIndex = Array.IndexOf(columnNames, columnName);
+ this[rowIndex, columnIndex] = value;
+ }
+ }
- /// <summary>
- /// Creates a new instance for a matrix.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="coerced">The pointer to a matrix.</param>
- protected Matrix(REngine engine, IntPtr coerced)
- : base(engine, coerced)
- {}
+ /// <summary>
+ /// Gets the row size of elements.
+ /// </summary>
+ public int RowCount
+ {
+ get { return Engine.GetFunction<Rf_nrows>()(handle); }
+ }
- /// <summary>
- /// Gets or sets the element at the specified index.
- /// </summary>
- /// <param name="rowIndex">The zero-based row index of the element to get or set.</param>
- /// <param name="columnIndex">The zero-based column index of the element to get or
set.</param>
- /// <returns>The element at the specified index.</returns>
- public abstract T this[int rowIndex, int columnIndex] { get; set; }
+ /// <summary>
+ /// Gets the column size of elements.
+ /// </summary>
+ public int ColumnCount
+ {
+ get { return Engine.GetFunction<Rf_ncols>()(handle); }
+ }
- /// <summary>
- /// Gets or sets the element at the specified names.
- /// </summary>
- /// <param name="rowName">The row name of the element to get or set.</param>
- /// <param name="columnName">The column name of the element to get or set.</param>
- /// <returns>The element at the specified names.</returns>
- public virtual T this[string rowName, string columnName]
- {
- get
- {
- if (rowName == null)
- {
- throw new ArgumentNullException("rowName");
- }
- if (columnName == null)
- {
- throw new ArgumentNullException("columnName");
- }
- string[] rowNames = RowNames;
- if (rowNames == null)
- {
- throw new InvalidOperationException();
- }
- string[] columnNames = ColumnNames;
- if (columnNames == null)
- {
- throw new InvalidOperationException();
- }
- int rowIndex = Array.IndexOf(rowNames, rowName);
- int columnIndex = Array.IndexOf(columnNames, columnName);
- return this[rowIndex, columnIndex];
- }
- set
- {
- if (rowName == null)
- {
- throw new ArgumentNullException("rowName");
- }
- if (columnName == null)
- {
- throw new ArgumentNullException("columnName");
- }
- string[] rowNames = RowNames;
- if (rowNames == null)
- {
- throw new InvalidOperationException();
- }
- string[] columnNames = ColumnNames;
- if (columnNames == null)
- {
- throw new InvalidOperationException();
- }
- int rowIndex = Array.IndexOf(rowNames, rowName);
- int columnIndex = Array.IndexOf(columnNames, columnName);
- this[rowIndex, columnIndex] = value;
- }
- }
+ /// <summary>
+ /// Gets the total number of items (rows times columns) in this matrix
+ /// </summary>
+ public int ItemCount { get { return RowCount * ColumnCount; } }
- /// <summary>
- /// Gets the row size of elements.
- /// </summary>
- public int RowCount
- {
- get { return Engine.GetFunction<Rf_nrows>("Rf_nrows")(handle); }
- }
+ /// <summary>
+ /// Gets the names of rows.
+ /// </summary>
+ public string[] RowNames
+ {
+ get
+ {
+ SymbolicExpression dimnamesSymbol = Engine.GetPredefinedSymbol("R_DimNamesSymbol");
+ SymbolicExpression dimnames = GetAttribute(dimnamesSymbol);
+ if (dimnames == null)
+ {
+ return null;
+ }
+ CharacterVector rowNames = dimnames.AsList()[0].AsCharacter();
+ if (rowNames == null)
+ {
+ return null;
+ }
- /// <summary>
- /// Gets the column size of elements.
- /// </summary>
- public int ColumnCount
- {
- get { return Engine.GetFunction<Rf_ncols>("Rf_ncols")(handle); }
- }
+ int length = rowNames.Length;
+ var result = new string[length];
+ rowNames.CopyTo(result, length);
+ return result;
+ }
+ }
- /// <summary>
- /// Gets the names of rows.
- /// </summary>
- public string[] RowNames
- {
- get
- {
- SymbolicExpression dimnamesSymbol =
Engine.GetPredefinedSymbol("R_DimNamesSymbol");
- SymbolicExpression dimnames = GetAttribute(dimnamesSymbol);
- if (dimnames == null)
- {
- return null;
- }
- CharacterVector rowNames = dimnames.AsList()[0].AsCharacter();
- if (rowNames == null)
- {
- return null;
- }
+ /// <summary>
+ /// Gets the names of columns.
+ /// </summary>
+ public string[] ColumnNames
+ {
+ get
+ {
+ SymbolicExpression dimnamesSymbol = Engine.GetPredefinedSymbol("R_DimNamesSymbol");
+ SymbolicExpression dimnames = GetAttribute(dimnamesSymbol);
+ if (dimnames == null)
+ {
+ return null;
+ }
+ CharacterVector columnNames = dimnames.AsList()[1].AsCharacter();
+ if (columnNames == null)
+ {
+ return null;
+ }
- int length = rowNames.Length;
- var result = new string[length];
- rowNames.CopyTo(result, length);
- return result;
- }
- }
+ int length = columnNames.Length;
+ var result = new string[length];
+ columnNames.CopyTo(result, length);
+ return result;
+ }
+ }
- /// <summary>
- /// Gets the names of columns.
- /// </summary>
- public string[] ColumnNames
- {
- get
- {
- SymbolicExpression dimnamesSymbol =
Engine.GetPredefinedSymbol("R_DimNamesSymbol");
- SymbolicExpression dimnames = GetAttribute(dimnamesSymbol);
- if (dimnames == null)
- {
- return null;
- }
- CharacterVector columnNames = dimnames.AsList()[1].AsCharacter();
- if (columnNames == null)
- {
- return null;
- }
+ /// <summary>
+ /// Gets the pointer for the first element.
+ /// </summary>
+ protected IntPtr DataPointer
+ {
+ get { return IntPtr.Add(handle, Marshal.SizeOf(typeof(VECTOR_SEXPREC))); }
+ }
- int length = columnNames.Length;
- var result = new string[length];
- columnNames.CopyTo(result, length);
- return result;
- }
- }
+ /// <summary>
+ /// Gets the size of an element in byte.
+ /// </summary>
+ protected abstract int DataSize { get; }
- /// <summary>
- /// Gets the pointer for the first element.
- /// </summary>
- protected IntPtr DataPointer
- {
- get { return IntPtr.Add(handle, Marshal.SizeOf(typeof(VECTOR_SEXPREC))); }
- }
+ /// <summary>
+ /// Gets the offset for the specified indexes.
+ /// </summary>
+ /// <param name="rowIndex">The index of row.</param>
+ /// <param name="columnIndex">The index of column.</param>
+ /// <returns>The offset.</returns>
+ protected int GetOffset(int rowIndex, int columnIndex)
+ {
+ return DataSize * (columnIndex * RowCount + rowIndex);
+ }
- /// <summary>
- /// Gets the size of an element in byte.
- /// </summary>
- protected abstract int DataSize { get; }
+ /// <summary>
+ /// Copies the elements to the specified array.
+ /// </summary>
+ /// <param name="destination">The destination array.</param>
+ /// <param name="rowCount">The row length to copy.</param>
+ /// <param name="columnCount">The column length to copy.</param>
+ /// <param name="sourceRowIndex">The first row index of the matrix.</param>
+ /// <param name="sourceColumnIndex">The first column index of the matrix.</param>
+ /// <param name="destinationRowIndex">The first row index of the destination array.</param>
+ /// <param name="destinationColumnIndex">The first column index of the destination array.</param>
+ public void CopyTo(T[,] destination, int rowCount, int columnCount, int sourceRowIndex = 0, int
sourceColumnIndex = 0, int destinationRowIndex = 0, int destinationColumnIndex = 0)
+ {
+ if (destination == null)
+ {
+ throw new ArgumentNullException("destination");
+ }
+ if (rowCount < 0)
+ {
+ throw new IndexOutOfRangeException("rowCount");
+ }
+ if (columnCount < 0)
+ {
+ throw new IndexOutOfRangeException("columnCount");
+ }
+ if (sourceRowIndex < 0 || RowCount < sourceRowIndex + rowCount)
+ {
+ throw new IndexOutOfRangeException("sourceRowIndex");
+ }
+ if (sourceColumnIndex < 0 || ColumnCount < sourceColumnIndex + columnCount)
+ {
+ throw new IndexOutOfRangeException("sourceColumnIndex");
+ }
+ if (destinationRowIndex < 0 || destination.GetLength(0) < destinationRowIndex + rowCount)
+ {
+ throw new IndexOutOfRangeException("destinationRowIndex");
+ }
+ if (destinationColumnIndex < 0 || destination.GetLength(1) < destinationColumnIndex + columnCount)
+ {
+ throw new IndexOutOfRangeException("destinationColumnIndex");
+ }
- /// <summary>
- /// Gets the offset for the specified indexes.
- /// </summary>
- /// <param name="rowIndex">The index of row.</param>
- /// <param name="columnIndex">The index of column.</param>
- /// <returns>The offset.</returns>
- protected int GetOffset(int rowIndex, int columnIndex)
- {
- return DataSize * (columnIndex * RowCount + rowIndex);
- }
+ while (--rowCount >= 0)
+ {
+ int currentSourceRowIndex = sourceRowIndex++;
+ int currentDestinationRowIndex = destinationRowIndex++;
+ int currentColumnCount = columnCount;
+ int currentSourceColumnIndex = sourceColumnIndex;
+ int currentDestinationColumnIndex = destinationColumnIndex;
+ while (--currentColumnCount >= 0)
+ {
+ destination[currentDestinationRowIndex, currentDestinationColumnIndex++] =
this[currentSourceRowIndex, currentSourceColumnIndex++];
+ }
+ }
+ }
- /// <summary>
- /// Copies the elements to the specified array.
- /// </summary>
- /// <param name="destination">The destination array.</param>
- /// <param name="rowCount">The row length to copy.</param>
- /// <param name="columnCount">The column length to copy.</param>
- /// <param name="sourceRowIndex">The first row index of the matrix.</param>
- /// <param name="sourceColumnIndex">The first column index of the matrix.</param>
- /// <param name="destinationRowIndex">The first row index of the destination array.</param>
- /// <param name="destinationColumnIndex">The first column index of the destination
array.</param>
- public void CopyTo(T[,] destination, int rowCount, int columnCount, int sourceRowIndex = 0,
int sourceColumnIndex = 0, int destinationRowIndex = 0, int destinationColumnIndex = 0)
- {
- if (destination == null)
- {
- throw new ArgumentNullException("destination");
- }
- if (rowCount < 0)
- {
- throw new IndexOutOfRangeException("rowCount");
- }
- if (columnCount < 0)
- {
- throw new IndexOutOfRangeException("columnCount");
- }
- if (sourceRowIndex < 0 || RowCount < sourceRowIndex + rowCount)
- {
- throw new IndexOutOfRangeException("sourceRowIndex");
- }
- if (sourceColumnIndex < 0 || ColumnCount < sourceColumnIndex + columnCount)
- {
- throw new IndexOutOfRangeException("sourceColumnIndex");
- }
- if (destinationRowIndex < 0 || destination.GetLength(0) < destinationRowIndex +
rowCount)
- {
- throw new IndexOutOfRangeException("destinationRowIndex");
- }
- if (destinationColumnIndex < 0 || destination.GetLength(1) < destinationColumnIndex +
columnCount)
- {
- throw new IndexOutOfRangeException("destinationColumnIndex");
- }
+ public T[,] ToArrayFast()
+ {
+ using (var p = new ProtectedPointer(this))
+ {
+ return GetArrayFast();
+ }
+ }
- while (--rowCount >= 0)
- {
- int currentSourceRowIndex = sourceRowIndex++;
- int currentDestinationRowIndex = destinationRowIndex++;
- int currentColumnCount = columnCount;
- int currentSourceColumnIndex = sourceColumnIndex;
- int currentDestinationColumnIndex = destinationColumnIndex;
- while (--currentColumnCount >= 0)
- {
- destination[currentDestinationRowIndex,
currentDestinationColumnIndex++] = this[currentSourceRowIndex, currentSourceColumnIndex++];
- }
- }
- }
- }
-}
+ protected abstract T[,] GetArrayFast();
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/NumericMatrix.cs b/rdotnet/R.NET/NumericMatrix.cs
index d273d4f..d1ea612 100644
--- a/rdotnet/R.NET/NumericMatrix.cs
+++ b/rdotnet/R.NET/NumericMatrix.cs
@@ -1,105 +1,118 @@
-using System;
+using RDotNet.Internals;
+using System;
using System.Runtime.InteropServices;
using System.Security.Permissions;
-using RDotNet.Internals;
namespace RDotNet
{
- /// <summary>
- /// A matrix of real numbers in double precision.
- /// </summary>
- [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
- public class NumericMatrix : Matrix<double>
- {
- /// <summary>
- /// Creates a new empty NumericMatrix with the specified size.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="rowCount">The row size.</param>
- /// <param name="columnCount">The column size.</param>
- /// <seealso cref="REngineExtension.CreateNumericMatrix(REngine, int, int)"/>
- public NumericMatrix(REngine engine, int rowCount, int columnCount)
- : base(engine, SymbolicExpressionType.NumericVector, rowCount, columnCount)
- {}
+ /// <summary>
+ /// A matrix of real numbers in double precision.
+ /// </summary>
+ [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+ public class NumericMatrix : Matrix<double>
+ {
+ /// <summary>
+ /// Creates a new empty NumericMatrix with the specified size.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="rowCount">The row size.</param>
+ /// <param name="columnCount">The column size.</param>
+ /// <seealso cref="REngineExtension.CreateNumericMatrix(REngine, int, int)"/>
+ public NumericMatrix(REngine engine, int rowCount, int columnCount)
+ : base(engine, SymbolicExpressionType.NumericVector, rowCount, columnCount)
+ { }
- /// <summary>
- /// Creates a new NumericMatrix with the specified values.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="matrix">The values.</param>
- /// <seealso cref="REngineExtension.CreateNumericMatrix(REngine, double[,])"/>
- public NumericMatrix(REngine engine, double[,] matrix)
- : base(engine, SymbolicExpressionType.NumericVector, matrix)
- {}
+ /// <summary>
+ /// Creates a new NumericMatrix with the specified values.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="matrix">The values.</param>
+ /// <seealso cref="REngineExtension.CreateNumericMatrix(REngine, double[,])"/>
+ public NumericMatrix(REngine engine, double[,] matrix)
+ : base(engine, SymbolicExpressionType.NumericVector, matrix)
+ { }
- /// <summary>
- /// Creates a new instance for a numeric matrix.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="coerced">The pointer to a numeric matrix.</param>
- protected internal NumericMatrix(REngine engine, IntPtr coerced)
- : base(engine, coerced)
- {}
+ /// <summary>
+ /// Creates a new instance for a numeric matrix.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="coerced">The pointer to a numeric matrix.</param>
+ protected internal NumericMatrix(REngine engine, IntPtr coerced)
+ : base(engine, coerced)
+ { }
- /// <summary>
- /// Gets or sets the element at the specified index.
- /// </summary>
- /// <param name="rowIndex">The zero-based rowIndex index of the element to get or set.</param>
- /// <param name="columnIndex">The zero-based columnIndex index of the element to get or
set.</param>
- /// <returns>The element at the specified index.</returns>
- public override double this[int rowIndex, int columnIndex]
- {
- get
- {
- if (rowIndex < 0 || RowCount <= rowIndex)
- {
- throw new ArgumentOutOfRangeException("rowIndex");
- }
- if (columnIndex < 0 || ColumnCount <= columnIndex)
- {
- throw new ArgumentOutOfRangeException("columnIndex");
- }
- using (new ProtectedPointer(this))
- {
- var data = new byte[DataSize];
- IntPtr pointer = DataPointer;
- int offset = GetOffset(rowIndex, columnIndex);
- for (int byteIndex = 0; byteIndex < data.Length; byteIndex++)
- {
- data[byteIndex] = Marshal.ReadByte(pointer, offset +
byteIndex);
- }
- return BitConverter.ToDouble(data, 0);
- }
- }
- set
- {
- if (rowIndex < 0 || RowCount <= rowIndex)
- {
- throw new ArgumentOutOfRangeException("rowIndex");
- }
- if (columnIndex < 0 || ColumnCount <= columnIndex)
- {
- throw new ArgumentOutOfRangeException("columnIndex");
- }
- using (new ProtectedPointer(this))
- {
- byte[] data = BitConverter.GetBytes(value);
- IntPtr pointer = DataPointer;
- int offset = GetOffset(rowIndex, columnIndex);
- for (int byteIndex = 0; byteIndex < data.Length; byteIndex++)
- {
- Marshal.WriteByte(pointer, offset + byteIndex,
data[byteIndex]);
- }
- }
- }
- }
+ /// <summary>
+ /// Gets or sets the element at the specified index.
+ /// </summary>
+ /// <param name="rowIndex">The zero-based rowIndex index of the element to get or set.</param>
+ /// <param name="columnIndex">The zero-based columnIndex index of the element to get or set.</param>
+ /// <returns>The element at the specified index.</returns>
+ public override double this[int rowIndex, int columnIndex]
+ {
+ get
+ {
+ if (rowIndex < 0 || RowCount <= rowIndex)
+ {
+ throw new ArgumentOutOfRangeException("rowIndex");
+ }
+ if (columnIndex < 0 || ColumnCount <= columnIndex)
+ {
+ throw new ArgumentOutOfRangeException("columnIndex");
+ }
+ using (new ProtectedPointer(this))
+ {
+ var data = new byte[DataSize];
+ IntPtr pointer = DataPointer;
+ int offset = GetOffset(rowIndex, columnIndex);
+ for (int byteIndex = 0; byteIndex < data.Length; byteIndex++)
+ {
+ data[byteIndex] = Marshal.ReadByte(pointer, offset + byteIndex);
+ }
+ return BitConverter.ToDouble(data, 0);
+ }
+ }
+ set
+ {
+ if (rowIndex < 0 || RowCount <= rowIndex)
+ {
+ throw new ArgumentOutOfRangeException("rowIndex");
+ }
+ if (columnIndex < 0 || ColumnCount <= columnIndex)
+ {
+ throw new ArgumentOutOfRangeException("columnIndex");
+ }
+ using (new ProtectedPointer(this))
+ {
+ byte[] data = BitConverter.GetBytes(value);
+ IntPtr pointer = DataPointer;
+ int offset = GetOffset(rowIndex, columnIndex);
+ for (int byteIndex = 0; byteIndex < data.Length; byteIndex++)
+ {
+ Marshal.WriteByte(pointer, offset + byteIndex, data[byteIndex]);
+ }
+ }
+ }
+ }
- /// <summary>
- /// Gets the size of a real number in byte.
- /// </summary>
- protected override int DataSize
- {
- get { return sizeof(double); }
- }
- }
-}
+ protected override void InitMatrixFastDirect(double[,] matrix)
+ {
+ var values = Utility.ArrayConvertOneDim(matrix);
+ Marshal.Copy(values, 0, DataPointer, values.Length);
+ }
+
+ protected override double[,] GetArrayFast()
+ {
+ var values = new double[this.ItemCount];
+ Marshal.Copy(DataPointer, values, 0, values.Length);
+ return Utility.ArrayConvertAllTwoDim(values, this.RowCount, this.ColumnCount);
+ }
+
+ /// <summary>
+ /// Gets the size of a real number in byte.
+ /// </summary>
+ protected override int DataSize
+ {
+ get { return sizeof(double); }
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/NumericVector.cs b/rdotnet/R.NET/NumericVector.cs
index 94de933..82d5332 100644
--- a/rdotnet/R.NET/NumericVector.cs
+++ b/rdotnet/R.NET/NumericVector.cs
@@ -1,133 +1,146 @@
-using System;
+using RDotNet.Internals;
+using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Security.Permissions;
-using RDotNet.Internals;
namespace RDotNet
{
- /// <summary>
- /// A collection of real numbers in double precision.
- /// </summary>
- [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
- public class NumericVector : Vector<double>
- {
- /// <summary>
- /// Creates a new empty NumericVector with the specified length.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="length">The length.</param>
- /// <seealso cref="REngineExtension.CreateNumericVector(REngine, int)"/>
- public NumericVector(REngine engine, int length)
- : base(engine, SymbolicExpressionType.NumericVector, length)
- {}
+ /// <summary>
+ /// A collection of real numbers in double precision.
+ /// </summary>
+ [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+ public class NumericVector : Vector<double>
+ {
+ /// <summary>
+ /// Creates a new empty NumericVector with the specified length.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="length">The length.</param>
+ /// <seealso cref="REngineExtension.CreateNumericVector(REngine, int)"/>
+ public NumericVector(REngine engine, int length)
+ : base(engine, SymbolicExpressionType.NumericVector, length)
+ { }
- /// <summary>
- /// Creates a new NumericVector with the specified values.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="vector">The values.</param>
- /// <seealso cref="REngineExtension.CreateNumericVector(REngine, IEnumerable{double})"/>
- public NumericVector(REngine engine, IEnumerable<double> vector)
- : base(engine, SymbolicExpressionType.NumericVector, vector)
- {}
+ /// <summary>
+ /// Creates a new NumericVector with the specified values.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="vector">The values.</param>
+ /// <seealso cref="REngineExtension.CreateNumericVector(REngine, IEnumerable{double})"/>
+ public NumericVector(REngine engine, IEnumerable<double> vector)
+ : base(engine, SymbolicExpressionType.NumericVector, vector)
+ { }
- /// <summary>
- /// Creates a new NumericVector with the specified values.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="vector">The values.</param>
- /// <seealso cref="REngineExtension.CreateNumericVector(REngine, double[])"/>
- public NumericVector(REngine engine, double[] vector)
- : base(engine, SymbolicExpressionType.NumericVector, vector.Length)
- {
- Marshal.Copy(vector, 0, DataPointer, vector.Length);
- }
+ /// <summary>
+ /// Creates a new NumericVector with the specified values.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="vector">The values.</param>
+ /// <seealso cref="REngineExtension.CreateNumericVector(REngine, double[])"/>
+ public NumericVector(REngine engine, double[] vector)
+ : base(engine, SymbolicExpressionType.NumericVector, vector.Length)
+ {
+ Marshal.Copy(vector, 0, DataPointer, vector.Length);
+ }
- /// <summary>
- /// Creates a new instance for a numeric vector.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="coerced">The pointer to a numeric vector.</param>
- protected internal NumericVector(REngine engine, IntPtr coerced)
- : base(engine, coerced)
- {}
+ /// <summary>
+ /// Creates a new instance for a numeric vector.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="coerced">The pointer to a numeric vector.</param>
+ protected internal NumericVector(REngine engine, IntPtr coerced)
+ : base(engine, coerced)
+ { }
- /// <summary>
- /// Gets or sets the element at the specified index.
- /// </summary>
- /// <param name="index">The zero-based index of the element to get or set.</param>
- /// <returns>The element at the specified index.</returns>
- public override double this[int index]
- {
- get
- {
- if (index < 0 || Length <= index)
- {
- throw new ArgumentOutOfRangeException();
- }
- using (new ProtectedPointer(this))
- {
- var data = new double[1];
- int offset = GetOffset(index);
- IntPtr pointer = IntPtr.Add(DataPointer, offset);
- Marshal.Copy(pointer, data, 0, data.Length);
- return data[0];
- }
- }
- set
- {
- if (index < 0 || Length <= index)
- {
- throw new ArgumentOutOfRangeException();
- }
- using (new ProtectedPointer(this))
- {
- var data = new[] { value };
- int offset = GetOffset(index);
- IntPtr pointer = IntPtr.Add(DataPointer, offset);
- Marshal.Copy(data, 0, pointer, data.Length);
- }
- }
- }
+ /// <summary>
+ /// Gets or sets the element at the specified index.
+ /// </summary>
+ /// <param name="index">The zero-based index of the element to get or set.</param>
+ /// <returns>The element at the specified index.</returns>
+ public override double this[int index]
+ {
+ get
+ {
+ if (index < 0 || Length <= index)
+ {
+ throw new ArgumentOutOfRangeException();
+ }
+ using (new ProtectedPointer(this))
+ {
+ var data = new double[1];
+ int offset = GetOffset(index);
+ IntPtr pointer = IntPtr.Add(DataPointer, offset);
+ Marshal.Copy(pointer, data, 0, data.Length);
+ return data[0];
+ }
+ }
+ set
+ {
+ if (index < 0 || Length <= index)
+ {
+ throw new ArgumentOutOfRangeException();
+ }
+ using (new ProtectedPointer(this))
+ {
+ var data = new[] { value };
+ int offset = GetOffset(index);
+ IntPtr pointer = IntPtr.Add(DataPointer, offset);
+ Marshal.Copy(data, 0, pointer, data.Length);
+ }
+ }
+ }
- /// <summary>
- /// Gets the size of a real number in byte.
- /// </summary>
- protected override int DataSize
- {
- get { return sizeof(double); }
- }
+ protected override double[] GetArrayFast()
+ {
+ var res = new double[this.Length];
+ Marshal.Copy(DataPointer, res, 0, res.Length);
+ return res;
+ }
- /// <summary>
- /// Copies the elements to the specified array.
- /// </summary>
- /// <param name="destination">The destination array.</param>
- /// <param name="length">The length to copy.</param>
- /// <param name="sourceIndex">The first index of the vector.</param>
- /// <param name="destinationIndex">The first index of the destination array.</param>
- public new void CopyTo(double[] destination, int length, int sourceIndex = 0, int
destinationIndex = 0)
- {
- if (destination == null)
- {
- throw new ArgumentNullException("destination");
- }
- if (length < 0)
- {
- throw new IndexOutOfRangeException("length");
- }
- if (sourceIndex < 0 || Length < sourceIndex + length)
- {
- throw new IndexOutOfRangeException("sourceIndex");
- }
- if (destinationIndex < 0 || destination.Length < destinationIndex + length)
- {
- throw new IndexOutOfRangeException("destinationIndex");
- }
+ protected override void SetVectorDirect(double[] values)
+ {
+ IntPtr pointer = IntPtr.Add(DataPointer, 0);
+ Marshal.Copy(values, 0, pointer, values.Length);
+ }
- int offset = GetOffset(sourceIndex);
- IntPtr pointer = IntPtr.Add(DataPointer, offset);
- Marshal.Copy(pointer, destination, destinationIndex, length);
- }
- }
-}
+ /// <summary>
+ /// Gets the size of a real number in byte.
+ /// </summary>
+ protected override int DataSize
+ {
+ get { return sizeof(double); }
+ }
+
+ /// <summary>
+ /// Copies the elements to the specified array.
+ /// </summary>
+ /// <param name="destination">The destination array.</param>
+ /// <param name="length">The length to copy.</param>
+ /// <param name="sourceIndex">The first index of the vector.</param>
+ /// <param name="destinationIndex">The first index of the destination array.</param>
+ public new void CopyTo(double[] destination, int length, int sourceIndex = 0, int destinationIndex = 0)
+ {
+ if (destination == null)
+ {
+ throw new ArgumentNullException("destination");
+ }
+ if (length < 0)
+ {
+ throw new IndexOutOfRangeException("length");
+ }
+ if (sourceIndex < 0 || Length < sourceIndex + length)
+ {
+ throw new IndexOutOfRangeException("sourceIndex");
+ }
+ if (destinationIndex < 0 || destination.Length < destinationIndex + length)
+ {
+ throw new IndexOutOfRangeException("destinationIndex");
+ }
+
+ int offset = GetOffset(sourceIndex);
+ IntPtr pointer = IntPtr.Add(DataPointer, offset);
+ Marshal.Copy(pointer, destination, destinationIndex, length);
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Pairlist.cs b/rdotnet/R.NET/Pairlist.cs
index 972b223..c7d1178 100644
--- a/rdotnet/R.NET/Pairlist.cs
+++ b/rdotnet/R.NET/Pairlist.cs
@@ -1,51 +1,51 @@
-using System;
+using RDotNet.Internals;
+using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
-using RDotNet.Internals;
namespace RDotNet
{
- /// <summary>
- /// A pairlist.
- /// </summary>
- public class Pairlist : SymbolicExpression, IEnumerable<Symbol>
- {
- /// <summary>
- /// Creates a pairlist.
- /// </summary>
- /// <param name="engine">The engine</param>
- /// <param name="pointer">The pointer.</param>
- protected internal Pairlist(REngine engine, IntPtr pointer)
- : base(engine, pointer)
- {}
+ /// <summary>
+ /// A pairlist.
+ /// </summary>
+ public class Pairlist : SymbolicExpression, IEnumerable<Symbol>
+ {
+ /// <summary>
+ /// Creates a pairlist.
+ /// </summary>
+ /// <param name="engine">The engine</param>
+ /// <param name="pointer">The pointer.</param>
+ protected internal Pairlist(REngine engine, IntPtr pointer)
+ : base(engine, pointer)
+ { }
- /// <summary>
- /// Gets the number of nodes.
- /// </summary>
- public int Count
- {
- get { return Engine.GetFunction<Rf_length>("Rf_length")(handle); }
- }
+ /// <summary>
+ /// Gets the number of nodes.
+ /// </summary>
+ public int Count
+ {
+ get { return Engine.GetFunction<Rf_length>()(handle); }
+ }
- #region IEnumerable<Symbol> Members
+ #region IEnumerable<Symbol> Members
- public IEnumerator<Symbol> GetEnumerator()
- {
- if (Count != 0)
- {
- for (SEXPREC sexp = GetInternalStructure(); sexp.sxpinfo.type !=
SymbolicExpressionType.Null; sexp = (SEXPREC)Marshal.PtrToStructure(sexp.listsxp.cdrval, typeof(SEXPREC)))
- {
- yield return new Symbol(Engine, sexp.listsxp.tagval);
- }
- }
- }
+ public IEnumerator<Symbol> GetEnumerator()
+ {
+ if (Count != 0)
+ {
+ for (SEXPREC sexp = GetInternalStructure(); sexp.sxpinfo.type != SymbolicExpressionType.Null;
sexp = (SEXPREC)Marshal.PtrToStructure(sexp.listsxp.cdrval, typeof(SEXPREC)))
+ {
+ yield return new Symbol(Engine, sexp.listsxp.tagval);
+ }
+ }
+ }
- IEnumerator IEnumerable.GetEnumerator()
- {
- return GetEnumerator();
- }
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
- #endregion
- }
-}
+ #endregion IEnumerable<Symbol> Members
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/ParseException.cs b/rdotnet/R.NET/ParseException.cs
index 29ba066..24d0f11 100644
--- a/rdotnet/R.NET/ParseException.cs
+++ b/rdotnet/R.NET/ParseException.cs
@@ -1,70 +1,70 @@
-using System;
+using RDotNet.Internals;
+using System;
using System.Runtime.Serialization;
-using RDotNet.Internals;
namespace RDotNet
{
- /// <summary>
- /// Thrown when an engine comes to an error.
- /// </summary>
- [Serializable]
- public class ParseException : ApplicationException
- {
- private const string StatusFieldName = "status";
+ /// <summary>
+ /// Thrown when an engine comes to an error.
+ /// </summary>
+ [Serializable]
+ public class ParseException : ApplicationException
+ {
+ private const string StatusFieldName = "status";
- private const string ErrorStatementFieldName = "errorStatement";
- private readonly string errorStatement;
- private readonly ParseStatus status;
+ private const string ErrorStatementFieldName = "errorStatement";
+ private readonly string errorStatement;
+ private readonly ParseStatus status;
- /// <summary>
- /// Creates a new instance.
- /// </summary>
- public ParseException()
- {
- // This does not internally occur. See Parse.h in R_HOME/include/R_ext/Parse.h
- this.status = ParseStatus.Null;
- this.errorStatement = null;
- }
+ /// <summary>
+ /// Creates a new instance.
+ /// </summary>
+ public ParseException()
+ {
+ // This does not internally occur. See Parse.h in R_HOME/include/R_ext/Parse.h
+ this.status = ParseStatus.Null;
+ this.errorStatement = null;
+ }
- /// <summary>
- /// Creates a new instance with the specified error.
- /// </summary>
- /// <param name="status">The error.</param>
- /// <param name="errorStatement">The error statement.</param>
- public ParseException(ParseStatus status, string errorStatement)
- {
- this.status = status;
- this.errorStatement = errorStatement;
- }
+ /// <summary>
+ /// Creates a new instance with the specified error.
+ /// </summary>
+ /// <param name="status">The error.</param>
+ /// <param name="errorStatement">The error statement.</param>
+ public ParseException(ParseStatus status, string errorStatement)
+ {
+ this.status = status;
+ this.errorStatement = errorStatement;
+ }
- protected ParseException(SerializationInfo info, StreamingContext context)
- : base(info, context)
- {
- this.status = (ParseStatus)info.GetValue(StatusFieldName, typeof(ParseStatus));
- this.errorStatement = info.GetString(ErrorStatementFieldName);
- }
+ protected ParseException(SerializationInfo info, StreamingContext context)
+ : base(info, context)
+ {
+ this.status = (ParseStatus)info.GetValue(StatusFieldName, typeof(ParseStatus));
+ this.errorStatement = info.GetString(ErrorStatementFieldName);
+ }
- /// <summary>
- /// The error.
- /// </summary>
- public ParseStatus Status
- {
- get { return this.status; }
- }
+ /// <summary>
+ /// The error.
+ /// </summary>
+ public ParseStatus Status
+ {
+ get { return this.status; }
+ }
- /// <summary>
- /// The statement caused the error.
- /// </summary>
- public string ErrorStatement
- {
- get { return this.errorStatement; }
- }
+ /// <summary>
+ /// The statement caused the error.
+ /// </summary>
+ public string ErrorStatement
+ {
+ get { return this.errorStatement; }
+ }
- public override void GetObjectData(SerializationInfo info, StreamingContext context)
- {
- base.GetObjectData(info, context);
- info.AddValue(StatusFieldName, this.status);
- info.AddValue(ErrorStatementFieldName, this.errorStatement);
- }
- }
-}
+ public override void GetObjectData(SerializationInfo info, StreamingContext context)
+ {
+ base.GetObjectData(info, context);
+ info.AddValue(StatusFieldName, this.status);
+ info.AddValue(ErrorStatementFieldName, this.errorStatement);
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Properties/AssemblyInfo.cs b/rdotnet/R.NET/Properties/AssemblyInfo.cs
index 2a958f5..da04eda 100644
--- a/rdotnet/R.NET/Properties/AssemblyInfo.cs
+++ b/rdotnet/R.NET/Properties/AssemblyInfo.cs
@@ -1,39 +1,38 @@
using System.Reflection;
using System.Runtime.InteropServices;
-// General Information about an assembly is controlled through the following
+// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
-[assembly : AssemblyTitle("R.NET")]
-[assembly : AssemblyDescription("Collaboration of .NET Framework with R statistical computing")]
-[assembly : AssemblyConfiguration("")]
-[assembly : AssemblyCompany("RecycleBin")]
-[assembly : AssemblyProduct("R.NET")]
-[assembly : AssemblyCopyright("Copyright © RecycleBin 2011")]
-[assembly : AssemblyTrademark("")]
-[assembly : AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
+[assembly: AssemblyTitle("R.NET")]
+[assembly: AssemblyDescription("Collaboration of .NET Framework with R statistical computing")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("RecycleBin")]
+[assembly: AssemblyProduct("R.NET")]
+[assembly: AssemblyCopyright("Copyright © RecycleBin 2011")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
-[assembly : ComVisible(false)]
+[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly : Guid("9ecd1b81-67cd-417a-8b4d-77847c3353d4")]
+[assembly: Guid("9ecd1b81-67cd-417a-8b4d-77847c3353d4")]
// DllVersion information for an assembly consists of the following four values:
//
// Major DllVersion
-// Minor DllVersion
+// Minor DllVersion
// Build Number
// Revision
//
-// You can specify all the values or you can default the Build and Revision Numbers
+// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-
-[assembly : AssemblyVersion("1.5.0.0")]
-[assembly : AssemblyFileVersion("1.5.0.0")]
+[assembly: AssemblyVersion("1.5.5.0")]
+[assembly: AssemblyInformationalVersion("1.5.5")]
\ No newline at end of file
diff --git a/rdotnet/R.NET/ProtectedPointer.cs b/rdotnet/R.NET/ProtectedPointer.cs
index b8ddc29..bae317c 100644
--- a/rdotnet/R.NET/ProtectedPointer.cs
+++ b/rdotnet/R.NET/ProtectedPointer.cs
@@ -1,43 +1,43 @@
-using System;
+using RDotNet.Internals;
+using System;
using System.Security.Permissions;
-using RDotNet.Internals;
namespace RDotNet
{
- [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
- internal class ProtectedPointer : IDisposable
- {
- private readonly REngine engine;
- private readonly IntPtr sexp;
-
- public ProtectedPointer(REngine engine, IntPtr sexp)
- {
- this.sexp = sexp;
- this.engine = engine;
-
- engine.GetFunction<Rf_protect>("Rf_protect")(this.sexp);
- }
-
- public ProtectedPointer(SymbolicExpression sexp)
- {
- this.sexp = sexp.DangerousGetHandle();
- this.engine = sexp.Engine;
-
- this.engine.GetFunction<Rf_protect>("Rf_protect")(this.sexp);
- }
-
- #region IDisposable Members
-
- public void Dispose()
- {
- this.engine.GetFunction<Rf_unprotect_ptr>("Rf_unprotect_ptr")(this.sexp);
- }
-
- #endregion
-
- public static implicit operator IntPtr(ProtectedPointer p)
- {
- return p.sexp;
- }
- }
-}
+ [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+ internal class ProtectedPointer : IDisposable
+ {
+ private readonly REngine engine;
+ private readonly IntPtr sexp;
+
+ public ProtectedPointer(REngine engine, IntPtr sexp)
+ {
+ this.sexp = sexp;
+ this.engine = engine;
+
+ engine.GetFunction<Rf_protect>()(this.sexp);
+ }
+
+ public ProtectedPointer(SymbolicExpression sexp)
+ {
+ this.sexp = sexp.DangerousGetHandle();
+ this.engine = sexp.Engine;
+
+ this.engine.GetFunction<Rf_protect>()(this.sexp);
+ }
+
+ #region IDisposable Members
+
+ public void Dispose()
+ {
+ this.engine.GetFunction<Rf_unprotect_ptr>()(this.sexp);
+ }
+
+ #endregion IDisposable Members
+
+ public static implicit operator IntPtr(ProtectedPointer p)
+ {
+ return p.sexp;
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/RDotNet.csproj b/rdotnet/R.NET/RDotNet.csproj
index 4e18f32..4e86625 100644
--- a/rdotnet/R.NET/RDotNet.csproj
+++ b/rdotnet/R.NET/RDotNet.csproj
@@ -21,7 +21,7 @@
<DefineConstants>TRACE;DEBUG</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
- <DocumentationFile>bin\Debug\RDotNet.xml</DocumentationFile>
+ <DocumentationFile>bin\Debug\RDotNet.XML</DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>none</DebugType>
@@ -31,16 +31,7 @@
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>AnyCPU</PlatformTarget>
- <DocumentationFile>bin\Release\RDotNet.xml</DocumentationFile>
- </PropertyGroup>
- <PropertyGroup>
- <SignAssembly>true</SignAssembly>
- </PropertyGroup>
- <PropertyGroup>
- <DelaySign>true</DelaySign>
- </PropertyGroup>
- <PropertyGroup>
- <AssemblyOriginatorKeyFile>..\RecycleBin.snk.pub</AssemblyOriginatorKeyFile>
+ <DocumentationFile>bin\Release\RDotNet.XML</DocumentationFile>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
@@ -58,10 +49,18 @@
<Compile Include="CharacterMatrix.cs" />
<Compile Include="ComplexMatrix.cs" />
<Compile Include="BuiltinFunction.cs" />
+ <Compile Include="DataFrameColumnAttribute.cs" />
+ <Compile Include="DataFrameRowAttribute.cs" />
<Compile Include="Devices\CharacterDeviceAdapter.cs" />
<Compile Include="Devices\ConsoleDevice.cs" />
<Compile Include="Devices\NullCharacterDevice.cs" />
<Compile Include="Devices\ICharacterDevice.cs" />
+ <Compile Include="Diagnostics\DataFrameDebugView.cs" />
+ <Compile Include="Diagnostics\DataFrameColumnDisplay.cs" />
+ <Compile Include="Diagnostics\FactorDebugView.cs" />
+ <Compile Include="Diagnostics\MatrixDebugView.cs" />
+ <Compile Include="Diagnostics\VectorDebugView.cs" />
+ <Compile Include="Factor.cs" />
<Compile Include="Internals\Delegates.cs" />
<Compile Include="Internals\OutputMode.cs" />
<Compile Include="Internals\Unix\RStart.cs" />
diff --git a/rdotnet/R.NET/REngine.cs b/rdotnet/R.NET/REngine.cs
index 3755ff6..8d7ba76 100644
--- a/rdotnet/R.NET/REngine.cs
+++ b/rdotnet/R.NET/REngine.cs
@@ -1,530 +1,554 @@
-using System;
+using RDotNet.Devices;
+using RDotNet.Internals;
+using RDotNet.NativeLibrary;
+using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Security.Permissions;
using System.Text;
-using RDotNet.Devices;
-using RDotNet.Internals;
-using RDotNet.NativeLibrary;
namespace RDotNet
{
- /// <summary>
- /// REngine handles R environment through evaluation of R statement.
- /// </summary>
- /// <example>This example generates and outputs five random numbers from standard normal distribution.
- /// <code>
- /// Environment.SetEnvironmentVariable("PATH", @"C:\Program Files\R\R-2.12.0\bin\i386");
- /// using (REngine engine = REngine.CreateInstance("RDotNet"))
- /// {
- /// engine.Initialize();
- /// NumericVector random = engine.Evaluate("rnorm(5, 0, 1)").AsNumeric();
- /// foreach (double r in random)
- /// {
- /// Console.Write(r + " ");
- /// }
- /// }
- /// </code>
- /// </example>
- [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
- public class REngine : UnmanagedDll
- {
- private static readonly ICharacterDevice DefaultDevice = new ConsoleDevice();
- private static readonly Dictionary<string, REngine> instances = new Dictionary<string,
REngine>();
-
- private readonly string id;
- private CharacterDeviceAdapter adapter;
- private bool isRunning;
- private StartupParameter parameter;
-
- private REngine(string id, string dll)
- : base(dll)
- {
- this.id = id;
- this.isRunning = false;
- }
-
- /// <summary>
- /// Gets whether this instance is running.
- /// </summary>
- public bool IsRunning
- {
- get { return this.isRunning; }
- }
-
- /// <summary>
- /// Gets the version of R.DLL.
- /// </summary>
- public string DllVersion
- {
- get
- {
- // As R's version definitions are defined in #define preprocessor,
- // C# cannot access them dynamically.
- // But, on Win32 platform, we can get the version string via getDLLVersion
function.
- if (Environment.OSVersion.Platform != PlatformID.Win32NT)
- {
- throw new NotImplementedException();
- }
- var getVersion = GetFunction<_getDLLVersion>("getDLLVersion");
- return Marshal.PtrToStringAnsi(getVersion());
- }
- }
-
- /// <summary>
- /// Gets the ID of this instance.
- /// </summary>
- public string ID
- {
- get { return this.id; }
- }
-
- /// <summary>
- /// Gets the global environment.
- /// </summary>
- public REnvironment GlobalEnvironment
- {
- get
- {
- if (!IsRunning)
- {
- throw new InvalidOperationException();
- }
- return GetPredefinedSymbol("R_GlobalEnv").AsEnvironment();
- }
- }
-
- /// <summary>
- /// Gets the root environment.
- /// </summary>
- public REnvironment EmptyEnvironment
- {
- get
- {
- if (!IsRunning)
- {
- throw new InvalidOperationException();
- }
- return GetPredefinedSymbol("R_EmptyEnv").AsEnvironment();
- }
- }
-
- /// <summary>
- /// Gets the base environment.
- /// </summary>
- public REnvironment BaseNamespace
- {
- get
- {
- if (!IsRunning)
- {
- throw new InvalidOperationException();
- }
- return GetPredefinedSymbol("R_BaseNamespace").AsEnvironment();
- }
- }
-
- /// <summary>
- /// Gets the <c>NULL</c> value.
- /// </summary>
- public SymbolicExpression NilValue
- {
- get
- {
- if (!IsRunning)
- {
- throw new InvalidOperationException();
- }
- return GetPredefinedSymbol("R_NilValue");
- }
- }
-
- /// <summary>
- /// Gets the unbound value.
- /// </summary>
- public SymbolicExpression UnboundValue
- {
- get
- {
- if (!IsRunning)
- {
- throw new InvalidOperationException();
- }
- return GetPredefinedSymbol("R_UnboundValue");
- }
- }
-
- /// <summary>
- /// Creates a new instance that handles R.DLL.
- /// </summary>
- /// <param name="id">ID.</param>
- /// <param name="dll">The core dll of R.</param>
- /// <returns>The engine.</returns>
- public static REngine CreateInstance(string id, string dll = null)
- {
- if (id == null)
- {
- throw new ArgumentNullException("id", "Empty ID is not allowed.");
- }
- if (id == string.Empty)
- {
- throw new ArgumentException("Empty ID is not allowed.", "id");
- }
- if (instances.ContainsKey(id))
- {
- throw new ArgumentException();
- }
- if (dll == null)
- {
- switch (NativeUtility.GetPlatform())
- {
- case PlatformID.Win32NT:
- dll = "R.dll";
- break;
- case PlatformID.MacOSX:
- dll = "libR.dylib";
- break;
- case PlatformID.Unix:
- dll = "libR.so";
- break;
- default:
- throw new NotSupportedException();
- }
- }
- var engine = new REngine(id, dll);
- instances.Add(id, engine);
- return engine;
- }
-
- /// <summary>
- /// Gets an instance specified in the given ID.
- /// </summary>
- /// <param name="id">ID.</param>
- /// <returns>The engine.</returns>
- public static REngine GetInstanceFromID(string id)
- {
- REngine engine;
- instances.TryGetValue(id, out engine);
- return engine;
- }
-
- /// <summary>
- /// Initializes R process.
- /// </summary>
- /// <param name="parameter">The startup parameter.</param>
- /// <param name="device">The IO device.</param>
- public void Initialize(StartupParameter parameter = null, ICharacterDevice device = null)
- {
- this.parameter = parameter ?? new StartupParameter();
- this.adapter = new CharacterDeviceAdapter(device ?? DefaultDevice);
- GetFunction<R_setStartTime>("R_setStartTime")();
- ///GetFunction<Rf_initialize_R>("Rf_initialize_R")(1, new[] { ID });
- GetFunction<Rf_initialize_R>("Rf_initialize_R")(3, new[] { ID, "--quiet", "--vanilla"
});
- this.adapter.Install(this, this.parameter);
- switch (Environment.OSVersion.Platform)
- {
- case PlatformID.Win32NT:
- GetFunction<R_SetParams_Windows>("R_SetParams")(ref
this.parameter.start);
- break;
- case PlatformID.MacOSX:
- case PlatformID.Unix:
- GetFunction<R_SetParams_Unix>("R_SetParams")(ref
this.parameter.start.Common);
- break;
- }
- GetFunction<setup_Rmainloop>("setup_Rmainloop")();
- this.isRunning = true;
- }
-
- /// <summary>
- /// Forces garbage collection.
- /// </summary>
- public void ForceGarbageCollection()
- {
- GetFunction<R_gc>("R_gc")();
- }
-
- /// <summary>
- /// Gets a symbol defined in the global environment.
- /// </summary>
- /// <param name="name">The name.</param>
- /// <returns>The symbol.</returns>
- public SymbolicExpression GetSymbol(string name)
- {
- if (!IsRunning)
- {
- throw new InvalidOperationException();
- }
- return GlobalEnvironment.GetSymbol(name);
- }
-
- /// <summary>
- /// Gets a symbol defined in the global environment.
- /// </summary>
- /// <param name="name">The name.</param>
- /// <param name="environment">The environment. If <c>null</c> is passed, <see
cref="GlobalEnvironment"/> is used.</param>
- /// <returns>The symbol.</returns>
- public SymbolicExpression GetSymbol(string name, REnvironment environment)
- {
- if (!IsRunning)
- {
- throw new InvalidOperationException();
- }
- if (environment == null)
- {
- environment = GlobalEnvironment;
- }
- return environment.GetSymbol(name);
- }
-
- /// <summary>
- /// Defines a symbol in the global environment.
- /// </summary>
- /// <param name="name">The name.</param>
- /// <param name="expression">The symbol.</param>
- public void SetSymbol(string name, SymbolicExpression expression)
- {
- if (!IsRunning)
- {
- throw new InvalidOperationException();
- }
- GlobalEnvironment.SetSymbol(name, expression);
- }
-
- /// <summary>
- /// Defines a symbol in the specified environment.
- /// </summary>
- /// <param name="name">The name.</param>
- /// <param name="expression">The symbol.</param>
- /// <param name="environment">The environment. If <c>null</c> is passed, <see
cref="GlobalEnvironment"/> is used.</param>
- public void SetSymbol(string name, SymbolicExpression expression, REnvironment environment)
- {
- if (!IsRunning)
- {
- throw new InvalidOperationException();
- }
- if (environment == null)
- {
- environment = GlobalEnvironment;
- }
- environment.SetSymbol(name, expression);
- }
-
- /// <summary>
- /// Evaluates a statement in the given string.
- /// </summary>
- /// <param name="statement">The statement.</param>
- /// <returns>Last evaluation.</returns>
- public SymbolicExpression Evaluate(string statement)
- {
- if (!IsRunning)
- {
- throw new InvalidOperationException();
- }
- return Defer(statement).LastOrDefault();
- }
-
- /// <summary>
- /// Evaluates a statement in the given stream.
- /// </summary>
- /// <param name="stream">The stream.</param>
- /// <returns>Last evaluation.</returns>
- public SymbolicExpression Evaluate(Stream stream)
- {
- if (!IsRunning)
- {
- throw new InvalidOperationException();
- }
- return Defer(stream).LastOrDefault();
- }
-
- /// <summary>
- /// Evaluates a statement in the given string.
- /// </summary>
- /// <param name="statement">The statement.</param>
- /// <returns>Each evaluation.</returns>
- private IEnumerable<SymbolicExpression> Defer(string statement)
- {
- if (!IsRunning)
- {
- throw new InvalidOperationException();
- }
- if (statement == null)
- {
- throw new ArgumentNullException();
- }
-
- using (TextReader reader = new StringReader(statement))
- {
- var incompleteStatement = new StringBuilder();
- string line;
- while ((line = reader.ReadLine()) != null)
- {
- foreach (string segment in Segment(line))
- {
- SymbolicExpression result = Parse(segment,
incompleteStatement);
- if (result != null)
- {
- yield return result;
- }
- }
- }
- }
- }
-
- /// <summary>
- /// Evaluates a statement in the given stream.
- /// </summary>
- /// <param name="stream">The stream.</param>
- /// <returns>Each evaluation.</returns>
- public IEnumerable<SymbolicExpression> Defer(Stream stream)
- {
- if (!IsRunning)
- {
- throw new InvalidOperationException();
- }
- if (stream == null)
- {
- throw new ArgumentNullException();
- }
- if (!stream.CanRead)
- {
- throw new ArgumentException();
- }
-
- using (TextReader reader = new StreamReader(stream))
- {
- var incompleteStatement = new StringBuilder();
- string line;
- while ((line = reader.ReadLine()) != null)
- {
- foreach (string segment in Segment(line))
- {
- SymbolicExpression result = Parse(segment,
incompleteStatement);
- if (result != null)
- {
- yield return result;
- }
- }
- }
- }
- }
-
- private static IEnumerable<string> Segment(string line)
- {
- string[] segments = line.Split(';');
- for (int index = 0; index < segments.Length; index++)
- {
- if (index == segments.Length - 1)
- {
- if (segments[index] != string.Empty)
- {
- yield return segments[index];
- }
- }
- else
- {
- yield return segments[index] + ";";
- }
- }
- }
-
- private SymbolicExpression Parse(string statement, StringBuilder incompleteStatement)
- {
- incompleteStatement.Append(statement);
- IntPtr s = GetFunction<Rf_mkString>("Rf_mkString")(incompleteStatement.ToString());
-
- using (new ProtectedPointer(this, s))
- {
- ParseStatus status;
- var vector = new ExpressionVector(this,
GetFunction<R_ParseVector>("R_ParseVector")(s, -1, out status, NilValue.DangerousGetHandle()));
- if (vector.Length == 0)
- {
- return null;
- }
-
- switch (status)
- {
- case ParseStatus.OK:
- incompleteStatement.Clear();
- using (new ProtectedPointer(vector))
- {
- SymbolicExpression result;
- if (!vector.First().TryEvaluate(GlobalEnvironment,
out result))
- {
- throw new ParseException();
- }
- return result;
- }
- case ParseStatus.Incomplete:
- return null;
- default:
- string errorStatement = incompleteStatement.ToString();
- incompleteStatement.Clear();
- throw new ParseException(status, errorStatement);
- }
- }
- }
-
- /// <summary>
- /// Sets the command line arguments.
- /// </summary>
- /// <param name="args">The arguments.</param>
- public void SetCommandLineArguments(string[] args)
- {
- if (!IsRunning)
- {
- throw new InvalidOperationException();
- }
- string[] newArgs = Utility.AddFirst(ID, args);
-
GetFunction<R_set_command_line_arguments>("R_set_command_line_arguments")(newArgs.Length, newArgs);
- }
-
- protected override void Dispose(bool disposing)
- {
- this.isRunning = false;
- instances.Remove(ID);
- if (disposing)
- {
- GetFunction<Rf_endEmbeddedR>("Rf_endEmbeddedR")(0);
- }
- if (this.adapter != null)
- {
- this.adapter.Dispose();
- this.adapter = null;
- }
- GC.KeepAlive(this.parameter);
- base.Dispose(disposing);
- }
-
- /// <summary>
- /// Gets the predefined symbol with the specified name.
- /// </summary>
- /// <param name="name">The name.</param>
- /// <returns>The symbol.</returns>
- public SymbolicExpression GetPredefinedSymbol(string name)
- {
- if (!IsRunning)
- {
- throw new InvalidOperationException();
- }
- try
- {
- IntPtr pointer = DangerousGetHandle(name);
- return new SymbolicExpression(this, Marshal.ReadIntPtr(pointer));
- }
- catch (Exception ex)
- {
- throw new ArgumentException(null, ex);
- }
- }
-
- #region Nested type: _getDLLVersion
-
- [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
- private delegate IntPtr _getDLLVersion();
-
- #endregion
- }
-}
+ /// <summary>
+ /// REngine handles R environment through evaluation of R statement.
+ /// </summary>
+ /// <example>This example generates and outputs five random numbers from standard normal distribution.
+ /// <code>
+ /// Environment.SetEnvironmentVariable("PATH", @"C:\Program Files\R\R-2.12.0\bin\i386");
+ /// using (REngine engine = REngine.CreateInstance("RDotNet"))
+ /// {
+ /// engine.Initialize();
+ /// NumericVector random = engine.Evaluate("rnorm(5, 0, 1)").AsNumeric();
+ /// foreach (double r in random)
+ /// {
+ /// Console.Write(r + " ");
+ /// }
+ /// }
+ /// </code>
+ /// </example>
+ [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+ public class REngine : UnmanagedDll
+ {
+ private static readonly ICharacterDevice DefaultDevice = new ConsoleDevice();
+ private static readonly Dictionary<string, REngine> instances = new Dictionary<string, REngine>();
+
+ private readonly string id;
+ private CharacterDeviceAdapter adapter;
+ private bool isRunning;
+ private StartupParameter parameter;
+
+ private REngine(string id, string dll)
+ : base(dll)
+ {
+ this.id = id;
+ this.isRunning = false;
+ }
+
+ /// <summary>
+ /// Gets whether this instance is running.
+ /// </summary>
+ public bool IsRunning
+ {
+ get { return this.isRunning; }
+ }
+
+ /// <summary>
+ /// Gets the version of R.DLL.
+ /// </summary>
+ public string DllVersion
+ {
+ get
+ {
+ // As R's version definitions are defined in #define preprocessor,
+ // C# cannot access them dynamically.
+ // But, on Win32 platform, we can get the version string via getDLLVersion function.
+ if (Environment.OSVersion.Platform != PlatformID.Win32NT)
+ {
+ throw new NotImplementedException();
+ }
+ var getVersion = GetFunction<_getDLLVersion>("getDLLVersion");
+ return Marshal.PtrToStringAnsi(getVersion());
+ }
+ }
+
+ /// <summary>
+ /// Gets the ID of this instance.
+ /// </summary>
+ public string ID
+ {
+ get { return this.id; }
+ }
+
+ /// <summary>
+ /// Gets the global environment.
+ /// </summary>
+ public REnvironment GlobalEnvironment
+ {
+ get
+ {
+ if (!IsRunning)
+ {
+ throw new InvalidOperationException();
+ }
+ return GetPredefinedSymbol("R_GlobalEnv").AsEnvironment();
+ }
+ }
+
+ /// <summary>
+ /// Gets the root environment.
+ /// </summary>
+ public REnvironment EmptyEnvironment
+ {
+ get
+ {
+ if (!IsRunning)
+ {
+ throw new InvalidOperationException();
+ }
+ return GetPredefinedSymbol("R_EmptyEnv").AsEnvironment();
+ }
+ }
+
+ /// <summary>
+ /// Gets the base environment.
+ /// </summary>
+ public REnvironment BaseNamespace
+ {
+ get
+ {
+ if (!IsRunning)
+ {
+ throw new InvalidOperationException();
+ }
+ return GetPredefinedSymbol("R_BaseNamespace").AsEnvironment();
+ }
+ }
+
+ /// <summary>
+ /// Gets the <c>NULL</c> value.
+ /// </summary>
+ public SymbolicExpression NilValue
+ {
+ get
+ {
+ if (!IsRunning)
+ {
+ throw new InvalidOperationException();
+ }
+ return GetPredefinedSymbol("R_NilValue");
+ }
+ }
+
+ /// <summary>
+ /// Gets the unbound value.
+ /// </summary>
+ public SymbolicExpression UnboundValue
+ {
+ get
+ {
+ if (!IsRunning)
+ {
+ throw new InvalidOperationException();
+ }
+ return GetPredefinedSymbol("R_UnboundValue");
+ }
+ }
+
+ /// <summary>
+ /// Creates a new instance that handles R.DLL.
+ /// </summary>
+ /// <param name="id">ID.</param>
+ /// <param name="dll">The core dll of R.</param>
+ /// <returns>The engine.</returns>
+ public static REngine CreateInstance(string id, string dll = null)
+ {
+ if (id == null)
+ {
+ throw new ArgumentNullException("id", "Empty ID is not allowed.");
+ }
+ if (id == string.Empty)
+ {
+ throw new ArgumentException("Empty ID is not allowed.", "id");
+ }
+ if (instances.ContainsKey(id))
+ {
+ throw new ArgumentException();
+ }
+ if (dll == null)
+ {
+ switch (NativeUtility.GetPlatform())
+ {
+ case PlatformID.Win32NT:
+ dll = "R.dll";
+ break;
+
+ case PlatformID.MacOSX:
+ dll = "libR.dylib";
+ break;
+
+ case PlatformID.Unix:
+ dll = "libR.so";
+ break;
+
+ default:
+ throw new NotSupportedException();
+ }
+ }
+ var engine = new REngine(id, dll);
+ instances.Add(id, engine);
+ return engine;
+ }
+
+ /// <summary>
+ /// Gets an instance specified in the given ID.
+ /// </summary>
+ /// <param name="id">ID.</param>
+ /// <returns>The engine.</returns>
+ public static REngine GetInstanceFromID(string id)
+ {
+ REngine engine;
+ instances.TryGetValue(id, out engine);
+ return engine;
+ }
+
+ /// <summary>
+ /// Initializes R process.
+ /// </summary>
+ /// <param name="parameter">The startup parameter.</param>
+ /// <param name="device">The IO device.</param>
+ public void Initialize(StartupParameter parameter = null, ICharacterDevice device = null)
+ {
+ this.parameter = parameter ?? new StartupParameter();
+ this.adapter = new CharacterDeviceAdapter(device ?? DefaultDevice);
+ GetFunction<R_setStartTime>()();
+ GetFunction<Rf_initialize_R>()(1, new[] { ID });
+ this.adapter.Install(this, this.parameter);
+ switch (Environment.OSVersion.Platform)
+ {
+ case PlatformID.Win32NT:
+ GetFunction<R_SetParams_Windows>("R_SetParams")(ref this.parameter.start);
+ break;
+
+ case PlatformID.MacOSX:
+ case PlatformID.Unix:
+ GetFunction<R_SetParams_Unix>("R_SetParams")(ref this.parameter.start.Common);
+ break;
+ }
+ GetFunction<setup_Rmainloop>()();
+ this.isRunning = true;
+ }
+
+ /// <summary>
+ /// Forces garbage collection.
+ /// </summary>
+ public void ForceGarbageCollection()
+ {
+ GetFunction<R_gc>()();
+ }
+
+ /// <summary>
+ /// Gets a symbol defined in the global environment.
+ /// </summary>
+ /// <param name="name">The name.</param>
+ /// <returns>The symbol.</returns>
+ public SymbolicExpression GetSymbol(string name)
+ {
+ if (!IsRunning)
+ {
+ throw new InvalidOperationException();
+ }
+ return GlobalEnvironment.GetSymbol(name);
+ }
+
+ /// <summary>
+ /// Gets a symbol defined in the global environment.
+ /// </summary>
+ /// <param name="name">The name.</param>
+ /// <param name="environment">The environment. If <c>null</c> is passed, <see
cref="GlobalEnvironment"/> is used.</param>
+ /// <returns>The symbol.</returns>
+ public SymbolicExpression GetSymbol(string name, REnvironment environment)
+ {
+ if (!IsRunning)
+ {
+ throw new InvalidOperationException();
+ }
+ if (environment == null)
+ {
+ environment = GlobalEnvironment;
+ }
+ return environment.GetSymbol(name);
+ }
+
+ /// <summary>
+ /// Defines a symbol in the global environment.
+ /// </summary>
+ /// <param name="name">The name.</param>
+ /// <param name="expression">The symbol.</param>
+ public void SetSymbol(string name, SymbolicExpression expression)
+ {
+ if (!IsRunning)
+ {
+ throw new InvalidOperationException();
+ }
+ GlobalEnvironment.SetSymbol(name, expression);
+ }
+
+ /// <summary>
+ /// Defines a symbol in the specified environment.
+ /// </summary>
+ /// <param name="name">The name.</param>
+ /// <param name="expression">The symbol.</param>
+ /// <param name="environment">The environment. If <c>null</c> is passed, <see
cref="GlobalEnvironment"/> is used.</param>
+ public void SetSymbol(string name, SymbolicExpression expression, REnvironment environment)
+ {
+ if (!IsRunning)
+ {
+ throw new InvalidOperationException();
+ }
+ if (environment == null)
+ {
+ environment = GlobalEnvironment;
+ }
+ environment.SetSymbol(name, expression);
+ }
+
+ /// <summary>
+ /// Evaluates a statement in the given string.
+ /// </summary>
+ /// <param name="statement">The statement.</param>
+ /// <returns>Last evaluation.</returns>
+ public SymbolicExpression Evaluate(string statement)
+ {
+ if (!IsRunning)
+ {
+ throw new InvalidOperationException();
+ }
+ return Defer(statement).LastOrDefault();
+ }
+
+ /// <summary>
+ /// Evaluates a statement in the given stream.
+ /// </summary>
+ /// <param name="stream">The stream.</param>
+ /// <returns>Last evaluation.</returns>
+ public SymbolicExpression Evaluate(Stream stream)
+ {
+ if (!IsRunning)
+ {
+ throw new InvalidOperationException();
+ }
+ return Defer(stream).LastOrDefault();
+ }
+
+ /// <summary>
+ /// Evaluates a statement in the given string.
+ /// </summary>
+ /// <param name="statement">The statement.</param>
+ /// <returns>Each evaluation.</returns>
+ private IEnumerable<SymbolicExpression> Defer(string statement)
+ {
+ if (!IsRunning)
+ {
+ throw new InvalidOperationException();
+ }
+ if (statement == null)
+ {
+ throw new ArgumentNullException();
+ }
+
+ using (TextReader reader = new StringReader(statement))
+ {
+ var incompleteStatement = new StringBuilder();
+ string line;
+ while ((line = reader.ReadLine()) != null)
+ {
+ foreach (var segment in Segment(line))
+ {
+ var result = Parse(segment, incompleteStatement);
+ if (result != null)
+ {
+ yield return result;
+ }
+ }
+ }
+ }
+ }
+
+ /// <summary>
+ /// Evaluates a statement in the given stream.
+ /// </summary>
+ /// <param name="stream">The stream.</param>
+ /// <returns>Each evaluation.</returns>
+ public IEnumerable<SymbolicExpression> Defer(Stream stream)
+ {
+ if (!IsRunning)
+ {
+ throw new InvalidOperationException();
+ }
+ if (stream == null)
+ {
+ throw new ArgumentNullException();
+ }
+ if (!stream.CanRead)
+ {
+ throw new ArgumentException();
+ }
+
+ using (TextReader reader = new StreamReader(stream))
+ {
+ var incompleteStatement = new StringBuilder();
+ string line;
+ while ((line = reader.ReadLine()) != null)
+ {
+ foreach (var segment in Segment(line))
+ {
+ var result = Parse(segment, incompleteStatement);
+ if (result != null)
+ {
+ yield return result;
+ }
+ }
+ }
+ }
+ }
+
+ private static IEnumerable<string> Segment(string line)
+ {
+ var segments = line.Split(';');
+ for (var index = 0; index < segments.Length; index++)
+ {
+ if (index == segments.Length - 1)
+ {
+ if (segments[index] != string.Empty)
+ {
+ yield return segments[index] + "\n";
+ }
+ }
+ else
+ {
+ yield return segments[index] + ";";
+ }
+ }
+ }
+
+ private SymbolicExpression Parse(string statement, StringBuilder incompleteStatement)
+ {
+ incompleteStatement.Append(statement);
+ var s = GetFunction<Rf_mkString>()(incompleteStatement.ToString());
+
+ using (new ProtectedPointer(this, s))
+ {
+ ParseStatus status;
+ var vector = new ExpressionVector(this, GetFunction<R_ParseVector>()(s, -1, out status,
NilValue.DangerousGetHandle()));
+ if (vector.Length == 0)
+ {
+ return null;
+ }
+
+ switch (status)
+ {
+ case ParseStatus.OK:
+ incompleteStatement.Clear();
+ using (new ProtectedPointer(vector))
+ {
+ SymbolicExpression result;
+ if (!vector.First().TryEvaluate(GlobalEnvironment, out result))
+ {
+ throw new ParseException();
+ }
+ return result;
+ }
+ case ParseStatus.Incomplete:
+ return null;
+
+ default:
+ var errorStatement = incompleteStatement.ToString();
+ incompleteStatement.Clear();
+ throw new ParseException(status, errorStatement);
+ }
+ }
+ }
+
+ /// <summary>
+ /// Sets the command line arguments.
+ /// </summary>
+ /// <param name="args">The arguments.</param>
+ public void SetCommandLineArguments(string[] args)
+ {
+ if (!IsRunning)
+ {
+ throw new InvalidOperationException();
+ }
+ var newArgs = Utility.AddFirst(ID, args);
+ GetFunction<R_set_command_line_arguments>()(newArgs.Length, newArgs);
+ }
+
+ public event EventHandler Disposing;
+
+ protected virtual void OnDisposing(EventArgs e)
+ {
+ if (Disposing != null)
+ {
+ Disposing(this, e);
+ }
+ }
+
+ protected override void Dispose(bool disposing)
+ {
+ if (isRunning)
+ {
+ this.isRunning = false;
+ instances.Remove(ID);
+ }
+ OnDisposing(EventArgs.Empty);
+ if (disposing)
+ {
+ GetFunction<R_RunExitFinalizers>()();
+ GetFunction<Rf_CleanEd>()();
+ GetFunction<R_CleanTempDir>()();
+ }
+ this.isRunning = false;
+
+ if (disposing && this.adapter != null)
+ {
+ this.adapter.Dispose();
+ this.adapter = null;
+ }
+
+ // Why is this here?
+ GC.KeepAlive(this.parameter);
+ base.Dispose(disposing);
+ }
+
+ /// <summary>
+ /// Gets the predefined symbol with the specified name.
+ /// </summary>
+ /// <param name="name">The name.</param>
+ /// <returns>The symbol.</returns>
+ public SymbolicExpression GetPredefinedSymbol(string name)
+ {
+ if (!IsRunning)
+ {
+ throw new InvalidOperationException();
+ }
+ try
+ {
+ var pointer = DangerousGetHandle(name);
+ return new SymbolicExpression(this, Marshal.ReadIntPtr(pointer));
+ }
+ catch (Exception ex)
+ {
+ throw new ArgumentException(null, ex);
+ }
+ }
+
+ #region Nested type: _getDLLVersion
+
+ [UnmanagedFunctionPointer(CallingConvention.Cdecl)]
+ private delegate IntPtr _getDLLVersion();
+
+ #endregion Nested type: _getDLLVersion
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/REngineExtension.cs b/rdotnet/R.NET/REngineExtension.cs
index cdeae31..0b504e0 100644
--- a/rdotnet/R.NET/REngineExtension.cs
+++ b/rdotnet/R.NET/REngineExtension.cs
@@ -1,474 +1,517 @@
+using RDotNet.Internals;
using System;
using System.Collections.Generic;
using System.Numerics;
namespace RDotNet
{
- /// <summary>
- /// Provides extension methods for <see cref="REngine"/>.
- /// </summary>
- public static class REngineExtension
- {
- /// <summary>
- /// Creates a new empty CharacterVector with the specified length.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="length">The length.</param>
- /// <returns>The new vector.</returns>
- public static CharacterVector CreateCharacterVector(this REngine engine, int length)
- {
- if (engine == null)
- {
- throw new ArgumentNullException();
- }
- if (!engine.IsRunning)
- {
- throw new ArgumentException();
- }
- return new CharacterVector(engine, length);
- }
+ /// <summary>
+ /// Provides extension methods for <see cref="REngine"/>.
+ /// </summary>
+ public static class REngineExtension
+ {
+ /// <summary>
+ /// Creates a new empty CharacterVector with the specified length.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="length">The length.</param>
+ /// <returns>The new vector.</returns>
+ public static CharacterVector CreateCharacterVector(this REngine engine, int length)
+ {
+ if (engine == null)
+ {
+ throw new ArgumentNullException();
+ }
+ if (!engine.IsRunning)
+ {
+ throw new ArgumentException();
+ }
+ return new CharacterVector(engine, length);
+ }
- /// <summary>
- /// Creates a new empty ComplexVector with the specified length.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="length">The length.</param>
- /// <returns>The new vector.</returns>
- public static ComplexVector CreateComplexVector(this REngine engine, int length)
- {
- if (engine == null)
- {
- throw new ArgumentNullException();
- }
- if (!engine.IsRunning)
- {
- throw new ArgumentException();
- }
- return new ComplexVector(engine, length);
- }
+ /// <summary>
+ /// Creates a new empty ComplexVector with the specified length.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="length">The length.</param>
+ /// <returns>The new vector.</returns>
+ public static ComplexVector CreateComplexVector(this REngine engine, int length)
+ {
+ if (engine == null)
+ {
+ throw new ArgumentNullException();
+ }
+ if (!engine.IsRunning)
+ {
+ throw new ArgumentException();
+ }
+ return new ComplexVector(engine, length);
+ }
- /// <summary>
- /// Creates a new empty IntegerVector with the specified length.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="length">The length.</param>
- /// <returns>The new vector.</returns>
- public static IntegerVector CreateIntegerVector(this REngine engine, int length)
- {
- if (engine == null)
- {
- throw new ArgumentNullException();
- }
- if (!engine.IsRunning)
- {
- throw new ArgumentException();
- }
- return new IntegerVector(engine, length);
- }
+ /// <summary>
+ /// Creates a new empty IntegerVector with the specified length.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="length">The length.</param>
+ /// <returns>The new vector.</returns>
+ public static IntegerVector CreateIntegerVector(this REngine engine, int length)
+ {
+ if (engine == null)
+ {
+ throw new ArgumentNullException();
+ }
+ if (!engine.IsRunning)
+ {
+ throw new ArgumentException();
+ }
+ return new IntegerVector(engine, length);
+ }
- /// <summary>
- /// Creates a new empty LogicalVector with the specified length.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="length">The length.</param>
- /// <returns>The new vector.</returns>
- public static LogicalVector CreateLogicalVector(this REngine engine, int length)
- {
- if (engine == null)
- {
- throw new ArgumentNullException();
- }
- if (!engine.IsRunning)
- {
- throw new ArgumentException();
- }
- return new LogicalVector(engine, length);
- }
+ /// <summary>
+ /// Creates a new empty LogicalVector with the specified length.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="length">The length.</param>
+ /// <returns>The new vector.</returns>
+ public static LogicalVector CreateLogicalVector(this REngine engine, int length)
+ {
+ if (engine == null)
+ {
+ throw new ArgumentNullException();
+ }
+ if (!engine.IsRunning)
+ {
+ throw new ArgumentException();
+ }
+ return new LogicalVector(engine, length);
+ }
- /// <summary>
- /// Creates a new empty NumericVector with the specified length.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="length">The length.</param>
- /// <returns>The new vector.</returns>
- public static NumericVector CreateNumericVector(this REngine engine, int length)
- {
- if (engine == null)
- {
- throw new ArgumentNullException();
- }
- if (!engine.IsRunning)
- {
- throw new ArgumentException();
- }
- return new NumericVector(engine, length);
- }
+ /// <summary>
+ /// Creates a new empty NumericVector with the specified length.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="length">The length.</param>
+ /// <returns>The new vector.</returns>
+ public static NumericVector CreateNumericVector(this REngine engine, int length)
+ {
+ if (engine == null)
+ {
+ throw new ArgumentNullException();
+ }
+ if (!engine.IsRunning)
+ {
+ throw new ArgumentException();
+ }
+ return new NumericVector(engine, length);
+ }
- /// <summary>
- /// Creates a new empty RawVector with the specified length.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="length">The length.</param>
- /// <returns>The new vector.</returns>
- public static RawVector CreateRawVector(this REngine engine, int length)
- {
- if (engine == null)
- {
- throw new ArgumentNullException();
- }
- if (!engine.IsRunning)
- {
- throw new ArgumentException();
- }
- return new RawVector(engine, length);
- }
+ /// <summary>
+ /// Creates a new empty RawVector with the specified length.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="length">The length.</param>
+ /// <returns>The new vector.</returns>
+ public static RawVector CreateRawVector(this REngine engine, int length)
+ {
+ if (engine == null)
+ {
+ throw new ArgumentNullException();
+ }
+ if (!engine.IsRunning)
+ {
+ throw new ArgumentException();
+ }
+ return new RawVector(engine, length);
+ }
- /// <summary>
- /// Creates a new CharacterVector with the specified values.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="vector">The values.</param>
- /// <returns>The new vector.</returns>
- public static CharacterVector CreateCharacterVector(this REngine engine, IEnumerable<string>
vector)
- {
- if (engine == null)
- {
- throw new ArgumentNullException();
- }
- if (!engine.IsRunning)
- {
- throw new ArgumentException();
- }
- return new CharacterVector(engine, vector);
- }
+ /// <summary>
+ /// Creates a new CharacterVector with the specified values.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="vector">The values.</param>
+ /// <returns>The new vector.</returns>
+ public static CharacterVector CreateCharacterVector(this REngine engine, IEnumerable<string> vector)
+ {
+ if (engine == null)
+ {
+ throw new ArgumentNullException();
+ }
+ if (!engine.IsRunning)
+ {
+ throw new ArgumentException();
+ }
+ return new CharacterVector(engine, vector);
+ }
- /// <summary>
- /// Creates a new ComplexVector with the specified values.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="vector">The values.</param>
- /// <returns>The new vector.</returns>
- public static ComplexVector CreateComplexVector(this REngine engine, IEnumerable<Complex>
vector)
- {
- if (engine == null)
- {
- throw new ArgumentNullException();
- }
- if (!engine.IsRunning)
- {
- throw new ArgumentException();
- }
- return new ComplexVector(engine, vector);
- }
+ /// <summary>
+ /// Creates a new ComplexVector with the specified values.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="vector">The values.</param>
+ /// <returns>The new vector.</returns>
+ public static ComplexVector CreateComplexVector(this REngine engine, IEnumerable<Complex> vector)
+ {
+ if (engine == null)
+ {
+ throw new ArgumentNullException();
+ }
+ if (!engine.IsRunning)
+ {
+ throw new ArgumentException();
+ }
+ return new ComplexVector(engine, vector);
+ }
- /// <summary>
- /// Creates a new IntegerVector with the specified values.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="vector">The values.</param>
- /// <returns>The new vector.</returns>
- public static IntegerVector CreateIntegerVector(this REngine engine, IEnumerable<int> vector)
- {
- if (engine == null)
- {
- throw new ArgumentNullException();
- }
- if (!engine.IsRunning)
- {
- throw new ArgumentException();
- }
- return new IntegerVector(engine, vector);
- }
+ /// <summary>
+ /// Creates a new IntegerVector with the specified values.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="vector">The values.</param>
+ /// <returns>The new vector.</returns>
+ public static IntegerVector CreateIntegerVector(this REngine engine, IEnumerable<int> vector)
+ {
+ if (engine == null)
+ {
+ throw new ArgumentNullException();
+ }
+ if (!engine.IsRunning)
+ {
+ throw new ArgumentException();
+ }
+ return new IntegerVector(engine, vector);
+ }
- /// <summary>
- /// Creates a new LogicalVector with the specified values.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="vector">The values.</param>
- /// <returns>The new vector.</returns>
- public static LogicalVector CreateLogicalVector(this REngine engine, IEnumerable<bool> vector)
- {
- if (engine == null)
- {
- throw new ArgumentNullException();
- }
- if (!engine.IsRunning)
- {
- throw new ArgumentException();
- }
- return new LogicalVector(engine, vector);
- }
+ /// <summary>
+ /// Creates a new LogicalVector with the specified values.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="vector">The values.</param>
+ /// <returns>The new vector.</returns>
+ public static LogicalVector CreateLogicalVector(this REngine engine, IEnumerable<bool> vector)
+ {
+ if (engine == null)
+ {
+ throw new ArgumentNullException();
+ }
+ if (!engine.IsRunning)
+ {
+ throw new ArgumentException();
+ }
+ return new LogicalVector(engine, vector);
+ }
- /// <summary>
- /// Creates a new NumericVector with the specified values.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="vector">The values.</param>
- /// <returns>The new vector.</returns>
- public static NumericVector CreateNumericVector(this REngine engine, IEnumerable<double>
vector)
- {
- if (engine == null)
- {
- throw new ArgumentNullException();
- }
- if (!engine.IsRunning)
- {
- throw new ArgumentException();
- }
- return new NumericVector(engine, vector);
- }
+ /// <summary>
+ /// Creates a new NumericVector with the specified values.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="vector">The values.</param>
+ /// <returns>The new vector.</returns>
+ public static NumericVector CreateNumericVector(this REngine engine, IEnumerable<double> vector)
+ {
+ if (engine == null)
+ {
+ throw new ArgumentNullException();
+ }
+ if (!engine.IsRunning)
+ {
+ throw new ArgumentException();
+ }
+ return new NumericVector(engine, vector);
+ }
- /// <summary>
- /// Creates a new RawVector with the specified values.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="vector">The values.</param>
- /// <returns>The new vector.</returns>
- public static RawVector CreateRawVector(this REngine engine, IEnumerable<byte> vector)
- {
- if (engine == null)
- {
- throw new ArgumentNullException();
- }
- if (!engine.IsRunning)
- {
- throw new ArgumentException();
- }
- return new RawVector(engine, vector);
- }
+ /// <summary>
+ /// Creates a new RawVector with the specified values.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="vector">The values.</param>
+ /// <returns>The new vector.</returns>
+ public static RawVector CreateRawVector(this REngine engine, IEnumerable<byte> vector)
+ {
+ if (engine == null)
+ {
+ throw new ArgumentNullException();
+ }
+ if (!engine.IsRunning)
+ {
+ throw new ArgumentException();
+ }
+ return new RawVector(engine, vector);
+ }
- /// <summary>
- /// Creates a new empty CharacterMatrix with the specified size.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="rowCount">The row size.</param>
- /// <param name="columnCount">The column size.</param>
- /// <returns>The new matrix.</returns>
- public static CharacterMatrix CreateCharacterMatrix(this REngine engine, int rowCount, int
columnCount)
- {
- if (engine == null)
- {
- throw new ArgumentNullException();
- }
- if (!engine.IsRunning)
- {
- throw new ArgumentException();
- }
- return new CharacterMatrix(engine, rowCount, columnCount);
- }
+ /// <summary>
+ /// Creates a new empty CharacterMatrix with the specified size.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="rowCount">The row size.</param>
+ /// <param name="columnCount">The column size.</param>
+ /// <returns>The new matrix.</returns>
+ public static CharacterMatrix CreateCharacterMatrix(this REngine engine, int rowCount, int columnCount)
+ {
+ if (engine == null)
+ {
+ throw new ArgumentNullException();
+ }
+ if (!engine.IsRunning)
+ {
+ throw new ArgumentException();
+ }
+ return new CharacterMatrix(engine, rowCount, columnCount);
+ }
- /// <summary>
- /// Creates a new empty ComplexMatrix with the specified size.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="rowCount">The row size.</param>
- /// <param name="columnCount">The column size.</param>
- /// <returns>The new matrix.</returns>
- public static ComplexMatrix CreateComplexMatrix(this REngine engine, int rowCount, int
columnCount)
- {
- if (engine == null)
- {
- throw new ArgumentNullException();
- }
- if (!engine.IsRunning)
- {
- throw new ArgumentException();
- }
- return new ComplexMatrix(engine, rowCount, columnCount);
- }
+ /// <summary>
+ /// Creates a new empty ComplexMatrix with the specified size.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="rowCount">The row size.</param>
+ /// <param name="columnCount">The column size.</param>
+ /// <returns>The new matrix.</returns>
+ public static ComplexMatrix CreateComplexMatrix(this REngine engine, int rowCount, int columnCount)
+ {
+ if (engine == null)
+ {
+ throw new ArgumentNullException();
+ }
+ if (!engine.IsRunning)
+ {
+ throw new ArgumentException();
+ }
+ return new ComplexMatrix(engine, rowCount, columnCount);
+ }
- /// <summary>
- /// Creates a new empty IntegerMatrix with the specified size.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="rowCount">The row size.</param>
- /// <param name="columnCount">The column size.</param>
- /// <returns>The new matrix.</returns>
- public static IntegerMatrix CreateIntegerMatrix(this REngine engine, int rowCount, int
columnCount)
- {
- if (engine == null)
- {
- throw new ArgumentNullException();
- }
- if (!engine.IsRunning)
- {
- throw new ArgumentException();
- }
- return new IntegerMatrix(engine, rowCount, columnCount);
- }
+ /// <summary>
+ /// Creates a new empty IntegerMatrix with the specified size.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="rowCount">The row size.</param>
+ /// <param name="columnCount">The column size.</param>
+ /// <returns>The new matrix.</returns>
+ public static IntegerMatrix CreateIntegerMatrix(this REngine engine, int rowCount, int columnCount)
+ {
+ if (engine == null)
+ {
+ throw new ArgumentNullException();
+ }
+ if (!engine.IsRunning)
+ {
+ throw new ArgumentException();
+ }
+ return new IntegerMatrix(engine, rowCount, columnCount);
+ }
- /// <summary>
- /// Creates a new empty LogicalMatrix with the specified size.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="rowCount">The row size.</param>
- /// <param name="columnCount">The column size.</param>
- /// <returns>The new matrix.</returns>
- public static LogicalMatrix CreateLogicalMatrix(this REngine engine, int rowCount, int
columnCount)
- {
- if (engine == null)
- {
- throw new ArgumentNullException();
- }
- if (!engine.IsRunning)
- {
- throw new ArgumentException();
- }
- return new LogicalMatrix(engine, rowCount, columnCount);
- }
+ /// <summary>
+ /// Creates a new empty LogicalMatrix with the specified size.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="rowCount">The row size.</param>
+ /// <param name="columnCount">The column size.</param>
+ /// <returns>The new matrix.</returns>
+ public static LogicalMatrix CreateLogicalMatrix(this REngine engine, int rowCount, int columnCount)
+ {
+ if (engine == null)
+ {
+ throw new ArgumentNullException();
+ }
+ if (!engine.IsRunning)
+ {
+ throw new ArgumentException();
+ }
+ return new LogicalMatrix(engine, rowCount, columnCount);
+ }
- /// <summary>
- /// Creates a new empty NumericMatrix with the specified size.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="rowCount">The row size.</param>
- /// <param name="columnCount">The column size.</param>
- /// <returns>The new matrix.</returns>
- public static NumericMatrix CreateNumericMatrix(this REngine engine, int rowCount, int
columnCount)
- {
- if (engine == null)
- {
- throw new ArgumentNullException();
- }
- if (!engine.IsRunning)
- {
- throw new ArgumentException();
- }
- return new NumericMatrix(engine, rowCount, columnCount);
- }
+ /// <summary>
+ /// Creates a new empty NumericMatrix with the specified size.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="rowCount">The row size.</param>
+ /// <param name="columnCount">The column size.</param>
+ /// <returns>The new matrix.</returns>
+ public static NumericMatrix CreateNumericMatrix(this REngine engine, int rowCount, int columnCount)
+ {
+ if (engine == null)
+ {
+ throw new ArgumentNullException();
+ }
+ if (!engine.IsRunning)
+ {
+ throw new ArgumentException();
+ }
+ return new NumericMatrix(engine, rowCount, columnCount);
+ }
- /// <summary>
- /// Creates a new empty RawMatrix with the specified size.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="rowCount">The row size.</param>
- /// <param name="columnCount">The column size.</param>
- /// <returns>The new matrix.</returns>
- public static RawMatrix CreateRawMatrix(this REngine engine, int rowCount, int columnCount)
- {
- if (engine == null)
- {
- throw new ArgumentNullException();
- }
- if (!engine.IsRunning)
- {
- throw new ArgumentException();
- }
- return new RawMatrix(engine, rowCount, columnCount);
- }
+ /// <summary>
+ /// Creates a new empty RawMatrix with the specified size.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="rowCount">The row size.</param>
+ /// <param name="columnCount">The column size.</param>
+ /// <returns>The new matrix.</returns>
+ public static RawMatrix CreateRawMatrix(this REngine engine, int rowCount, int columnCount)
+ {
+ if (engine == null)
+ {
+ throw new ArgumentNullException();
+ }
+ if (!engine.IsRunning)
+ {
+ throw new ArgumentException();
+ }
+ return new RawMatrix(engine, rowCount, columnCount);
+ }
- /// <summary>
- /// Creates a new CharacterMatrix with the specified values.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="matrix">The values.</param>
- /// <returns>The new matrix.</returns>
- public static CharacterMatrix CreateCharacterMatrix(this REngine engine, string[,] matrix)
- {
- if (engine == null)
- {
- throw new ArgumentNullException();
- }
- if (!engine.IsRunning)
- {
- throw new ArgumentException();
- }
- return new CharacterMatrix(engine, matrix);
- }
+ /// <summary>
+ /// Creates a new CharacterMatrix with the specified values.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="matrix">The values.</param>
+ /// <returns>The new matrix.</returns>
+ public static CharacterMatrix CreateCharacterMatrix(this REngine engine, string[,] matrix)
+ {
+ if (engine == null)
+ {
+ throw new ArgumentNullException();
+ }
+ if (!engine.IsRunning)
+ {
+ throw new ArgumentException();
+ }
+ return new CharacterMatrix(engine, matrix);
+ }
- /// <summary>
- /// Creates a new ComplexMatrix with the specified values.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="matrix">The values.</param>
- /// <returns>The new matrix.</returns>
- public static ComplexMatrix CreateComplexMatrix(this REngine engine, Complex[,] matrix)
- {
- if (engine == null)
- {
- throw new ArgumentNullException();
- }
- if (!engine.IsRunning)
- {
- throw new ArgumentException();
- }
- return new ComplexMatrix(engine, matrix);
- }
+ /// <summary>
+ /// Creates a new ComplexMatrix with the specified values.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="matrix">The values.</param>
+ /// <returns>The new matrix.</returns>
+ public static ComplexMatrix CreateComplexMatrix(this REngine engine, Complex[,] matrix)
+ {
+ if (engine == null)
+ {
+ throw new ArgumentNullException();
+ }
+ if (!engine.IsRunning)
+ {
+ throw new ArgumentException();
+ }
+ return new ComplexMatrix(engine, matrix);
+ }
- /// <summary>
- /// Creates a new IntegerMatrix with the specified values.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="matrix">The values.</param>
- /// <returns>The new matrix.</returns>
- public static IntegerMatrix CreateIntegerMatrix(this REngine engine, int[,] matrix)
- {
- if (engine == null)
- {
- throw new ArgumentNullException();
- }
- if (!engine.IsRunning)
- {
- throw new ArgumentException();
- }
- return new IntegerMatrix(engine, matrix);
- }
+ /// <summary>
+ /// Creates a new IntegerMatrix with the specified values.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="matrix">The values.</param>
+ /// <returns>The new matrix.</returns>
+ public static IntegerMatrix CreateIntegerMatrix(this REngine engine, int[,] matrix)
+ {
+ if (engine == null)
+ {
+ throw new ArgumentNullException();
+ }
+ if (!engine.IsRunning)
+ {
+ throw new ArgumentException();
+ }
+ return new IntegerMatrix(engine, matrix);
+ }
- /// <summary>
- /// Creates a new LogicalMatrix with the specified values.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="matrix">The values.</param>
- /// <returns>The new matrix.</returns>
- public static LogicalMatrix CreateLogicalMatrix(this REngine engine, bool[,] matrix)
- {
- if (engine == null)
- {
- throw new ArgumentNullException();
- }
- if (!engine.IsRunning)
- {
- throw new ArgumentException();
- }
- return new LogicalMatrix(engine, matrix);
- }
+ /// <summary>
+ /// Creates a new LogicalMatrix with the specified values.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="matrix">The values.</param>
+ /// <returns>The new matrix.</returns>
+ public static LogicalMatrix CreateLogicalMatrix(this REngine engine, bool[,] matrix)
+ {
+ if (engine == null)
+ {
+ throw new ArgumentNullException();
+ }
+ if (!engine.IsRunning)
+ {
+ throw new ArgumentException();
+ }
+ return new LogicalMatrix(engine, matrix);
+ }
- /// <summary>
- /// Creates a new NumericMatrix with the specified values.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="matrix">The values.</param>
- /// <returns>The new matrix.</returns>
- public static NumericMatrix CreateNumericMatrix(this REngine engine, double[,] matrix)
- {
- if (engine == null)
- {
- throw new ArgumentNullException();
- }
- if (!engine.IsRunning)
- {
- throw new ArgumentException();
- }
- return new NumericMatrix(engine, matrix);
- }
+ /// <summary>
+ /// Creates a new NumericMatrix with the specified values.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="matrix">The values.</param>
+ /// <returns>The new matrix.</returns>
+ public static NumericMatrix CreateNumericMatrix(this REngine engine, double[,] matrix)
+ {
+ if (engine == null)
+ {
+ throw new ArgumentNullException();
+ }
+ if (!engine.IsRunning)
+ {
+ throw new ArgumentException();
+ }
+ return new NumericMatrix(engine, matrix);
+ }
- /// <summary>
- /// Creates a new RawMatrix with the specified values.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="matrix">The values.</param>
- /// <returns>The new matrix.</returns>
- public static RawMatrix CreateRawMatrix(this REngine engine, byte[,] matrix)
- {
- if (engine == null)
- {
- throw new ArgumentNullException();
- }
- if (!engine.IsRunning)
- {
- throw new ArgumentException();
- }
- return new RawMatrix(engine, matrix);
- }
- }
-}
+ /// <summary>
+ /// Creates a new RawMatrix with the specified values.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="matrix">The values.</param>
+ /// <returns>The new matrix.</returns>
+ public static RawMatrix CreateRawMatrix(this REngine engine, byte[,] matrix)
+ {
+ if (engine == null)
+ {
+ throw new ArgumentNullException();
+ }
+ if (!engine.IsRunning)
+ {
+ throw new ArgumentException();
+ }
+ return new RawMatrix(engine, matrix);
+ }
+
+ /// <summary>
+ /// Creates a new environment.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="parent">The parent environment.</param>
+ /// <returns>The newly created environment.</returns>
+ public static REnvironment CreateEnvironment(this REngine engine, REnvironment parent)
+ {
+ if (engine == null)
+ {
+ throw new ArgumentNullException("engine");
+ }
+ if (parent == null)
+ {
+ throw new ArgumentNullException("parent");
+ }
+ if (!engine.IsRunning)
+ {
+ throw new ArgumentException();
+ }
+ return new REnvironment(engine, parent);
+ }
+
+ /// <summary>
+ /// Creates a new isolated environment.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <returns>The newly created isolated environment.</returns>
+ public static REnvironment CreateIsolatedEnvironment(this REngine engine)
+ {
+ if (engine == null)
+ {
+ throw new ArgumentNullException("engine");
+ }
+ if (!engine.IsRunning)
+ {
+ throw new ArgumentException();
+ }
+ var pointer = engine.GetFunction<Rf_allocSExp>()(SymbolicExpressionType.Environment);
+ return new REnvironment(engine, pointer);
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/RawMatrix.cs b/rdotnet/R.NET/RawMatrix.cs
index 389d370..ea9474c 100644
--- a/rdotnet/R.NET/RawMatrix.cs
+++ b/rdotnet/R.NET/RawMatrix.cs
@@ -1,94 +1,107 @@
-using System;
+using RDotNet.Internals;
+using System;
using System.Runtime.InteropServices;
using System.Security.Permissions;
-using RDotNet.Internals;
namespace RDotNet
{
- /// <summary>
- /// A matrix of byte values.
- /// </summary>
- [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
- public class RawMatrix : Matrix<byte>
- {
- /// <summary>
- /// Creates a new RawMatrix with the specified size.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="rowCount">The row size.</param>
- /// <param name="columnCount">The column size.</param>
- /// <seealso cref="REngineExtension.CreateRawMatrix(REngine, int, int)"/>
- public RawMatrix(REngine engine, int rowCount, int columnCount)
- : base(engine, SymbolicExpressionType.RawVector, rowCount, columnCount)
- {}
+ /// <summary>
+ /// A matrix of byte values.
+ /// </summary>
+ [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+ public class RawMatrix : Matrix<byte>
+ {
+ /// <summary>
+ /// Creates a new RawMatrix with the specified size.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="rowCount">The row size.</param>
+ /// <param name="columnCount">The column size.</param>
+ /// <seealso cref="REngineExtension.CreateRawMatrix(REngine, int, int)"/>
+ public RawMatrix(REngine engine, int rowCount, int columnCount)
+ : base(engine, SymbolicExpressionType.RawVector, rowCount, columnCount)
+ { }
- /// <summary>
- /// Creates a new RawMatrix with the specified values.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="matrix">The values.</param>
- /// <seealso cref="REngineExtension.CreateRawMatrix(REngine, byte[,])"/>
- public RawMatrix(REngine engine, byte[,] matrix)
- : base(engine, SymbolicExpressionType.RawVector, matrix)
- {}
+ /// <summary>
+ /// Creates a new RawMatrix with the specified values.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="matrix">The values.</param>
+ /// <seealso cref="REngineExtension.CreateRawMatrix(REngine, byte[,])"/>
+ public RawMatrix(REngine engine, byte[,] matrix)
+ : base(engine, SymbolicExpressionType.RawVector, matrix)
+ { }
- /// <summary>
- /// Creates a new instance for a raw matrix.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="coerced">The pointer to a raw matrix.</param>
- protected internal RawMatrix(REngine engine, IntPtr coerced)
- : base(engine, coerced)
- {}
+ /// <summary>
+ /// Creates a new instance for a raw matrix.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="coerced">The pointer to a raw matrix.</param>
+ protected internal RawMatrix(REngine engine, IntPtr coerced)
+ : base(engine, coerced)
+ { }
- /// <summary>
- /// Gets or sets the element at the specified index.
- /// </summary>
- /// <param name="rowIndex">The zero-based rowIndex index of the element to get or set.</param>
- /// <param name="columnIndex">The zero-based columnIndex index of the element to get or
set.</param>
- /// <returns>The element at the specified index.</returns>
- public override byte this[int rowIndex, int columnIndex]
- {
- get
- {
- if (rowIndex < 0 || RowCount <= rowIndex)
- {
- throw new ArgumentOutOfRangeException("rowIndex");
- }
- if (columnIndex < 0 || ColumnCount <= columnIndex)
- {
- throw new ArgumentOutOfRangeException("columnIndex");
- }
- using (new ProtectedPointer(this))
- {
- int offset = GetOffset(rowIndex, columnIndex);
- return Marshal.ReadByte(DataPointer, offset);
- }
- }
- set
- {
- if (rowIndex < 0 || RowCount <= rowIndex)
- {
- throw new ArgumentOutOfRangeException("rowIndex");
- }
- if (columnIndex < 0 || ColumnCount <= columnIndex)
- {
- throw new ArgumentOutOfRangeException("columnIndex");
- }
- using (new ProtectedPointer(this))
- {
- int offset = GetOffset(rowIndex, columnIndex);
- Marshal.WriteByte(DataPointer, offset, value);
- }
- }
- }
+ /// <summary>
+ /// Gets or sets the element at the specified index.
+ /// </summary>
+ /// <param name="rowIndex">The zero-based rowIndex index of the element to get or set.</param>
+ /// <param name="columnIndex">The zero-based columnIndex index of the element to get or set.</param>
+ /// <returns>The element at the specified index.</returns>
+ public override byte this[int rowIndex, int columnIndex]
+ {
+ get
+ {
+ if (rowIndex < 0 || RowCount <= rowIndex)
+ {
+ throw new ArgumentOutOfRangeException("rowIndex");
+ }
+ if (columnIndex < 0 || ColumnCount <= columnIndex)
+ {
+ throw new ArgumentOutOfRangeException("columnIndex");
+ }
+ using (new ProtectedPointer(this))
+ {
+ int offset = GetOffset(rowIndex, columnIndex);
+ return Marshal.ReadByte(DataPointer, offset);
+ }
+ }
+ set
+ {
+ if (rowIndex < 0 || RowCount <= rowIndex)
+ {
+ throw new ArgumentOutOfRangeException("rowIndex");
+ }
+ if (columnIndex < 0 || ColumnCount <= columnIndex)
+ {
+ throw new ArgumentOutOfRangeException("columnIndex");
+ }
+ using (new ProtectedPointer(this))
+ {
+ int offset = GetOffset(rowIndex, columnIndex);
+ Marshal.WriteByte(DataPointer, offset, value);
+ }
+ }
+ }
- /// <summary>
- /// Gets the size of an Raw in byte.
- /// </summary>
- protected override int DataSize
- {
- get { return sizeof(byte); }
- }
- }
-}
+ protected override void InitMatrixFastDirect(byte[,] matrix)
+ {
+ var values = Utility.ArrayConvertOneDim(matrix);
+ Marshal.Copy(values, 0, DataPointer, values.Length);
+ }
+
+ protected override byte[,] GetArrayFast()
+ {
+ byte[] values = new byte[this.ItemCount];
+ Marshal.Copy(DataPointer, values, 0, values.Length);
+ return Utility.ArrayConvertAllTwoDim(values, this.RowCount, this.ColumnCount);
+ }
+
+ /// <summary>
+ /// Gets the size of an Raw in byte.
+ /// </summary>
+ protected override int DataSize
+ {
+ get { return sizeof(byte); }
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/RawVector.cs b/rdotnet/R.NET/RawVector.cs
index 1b0d215..d678c88 100644
--- a/rdotnet/R.NET/RawVector.cs
+++ b/rdotnet/R.NET/RawVector.cs
@@ -1,128 +1,140 @@
-using System;
+using RDotNet.Internals;
+using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Security.Permissions;
-using RDotNet.Internals;
namespace RDotNet
{
- /// <summary>
- /// A sequence of byte values.
- /// </summary>
- [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
- public class RawVector : Vector<byte>
- {
- /// <summary>
- /// Creates a new RawVector with the specified length.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="length">The length.</param>
- public RawVector(REngine engine, int length)
- : base(engine, SymbolicExpressionType.RawVector, length)
- {}
+ /// <summary>
+ /// A sequence of byte values.
+ /// </summary>
+ [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+ public class RawVector : Vector<byte>
+ {
+ /// <summary>
+ /// Creates a new RawVector with the specified length.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="length">The length.</param>
+ public RawVector(REngine engine, int length)
+ : base(engine, SymbolicExpressionType.RawVector, length)
+ { }
- /// <summary>
- /// Creates a new RawVector with the specified values.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="vector">The values.</param>
- /// <seealso cref="REngineExtension.CreateRawVector(REngine, IEnumerable{byte})"/>
- public RawVector(REngine engine, IEnumerable<byte> vector)
- : base(engine, SymbolicExpressionType.RawVector, vector)
- {}
+ /// <summary>
+ /// Creates a new RawVector with the specified values.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="vector">The values.</param>
+ /// <seealso cref="REngineExtension.CreateRawVector(REngine, IEnumerable{byte})"/>
+ public RawVector(REngine engine, IEnumerable<byte> vector)
+ : base(engine, SymbolicExpressionType.RawVector, vector)
+ { }
- /// <summary>
- /// Creates a new RawVector with the specified values.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="vector">The values.</param>
- /// <seealso cref="REngineExtension.CreateRawVector(REngine, int)"/>
- public RawVector(REngine engine, byte[] vector)
- : base(engine, SymbolicExpressionType.RawVector, vector.Length)
- {
- Marshal.Copy(vector, 0, DataPointer, vector.Length);
- }
+ /// <summary>
+ /// Creates a new RawVector with the specified values.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="vector">The values.</param>
+ /// <seealso cref="REngineExtension.CreateRawVector(REngine, int)"/>
+ public RawVector(REngine engine, byte[] vector)
+ : base(engine, SymbolicExpressionType.RawVector, vector.Length)
+ {
+ Marshal.Copy(vector, 0, DataPointer, vector.Length);
+ }
- /// <summary>
- /// Creates a new instance for a raw vector.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="coerced">The pointer to a raw vector.</param>
- /// <seealso cref="REngineExtension.CreateRawVector(REngine, byte[])"/>
- protected internal RawVector(REngine engine, IntPtr coerced)
- : base(engine, coerced)
- {}
+ /// <summary>
+ /// Creates a new instance for a raw vector.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="coerced">The pointer to a raw vector.</param>
+ /// <seealso cref="REngineExtension.CreateRawVector(REngine, byte[])"/>
+ protected internal RawVector(REngine engine, IntPtr coerced)
+ : base(engine, coerced)
+ { }
- /// <summary>
- /// Gets or sets the element at the specified index.
- /// </summary>
- /// <param name="index">The zero-based index of the element to get or set.</param>
- /// <returns>The element at the specified index.</returns>
- public override byte this[int index]
- {
- get
- {
- if (index < 0 || Length <= index)
- {
- throw new ArgumentOutOfRangeException();
- }
- using (new ProtectedPointer(this))
- {
- int offset = GetOffset(index);
- return Marshal.ReadByte(DataPointer, offset);
- }
- }
- set
- {
- if (index < 0 || Length <= index)
- {
- throw new ArgumentOutOfRangeException();
- }
- using (new ProtectedPointer(this))
- {
- int offset = GetOffset(index);
- Marshal.WriteByte(DataPointer, offset, value);
- }
- }
- }
+ /// <summary>
+ /// Gets or sets the element at the specified index.
+ /// </summary>
+ /// <param name="index">The zero-based index of the element to get or set.</param>
+ /// <returns>The element at the specified index.</returns>
+ public override byte this[int index]
+ {
+ get
+ {
+ if (index < 0 || Length <= index)
+ {
+ throw new ArgumentOutOfRangeException();
+ }
+ using (new ProtectedPointer(this))
+ {
+ int offset = GetOffset(index);
+ return Marshal.ReadByte(DataPointer, offset);
+ }
+ }
+ set
+ {
+ if (index < 0 || Length <= index)
+ {
+ throw new ArgumentOutOfRangeException();
+ }
+ using (new ProtectedPointer(this))
+ {
+ int offset = GetOffset(index);
+ Marshal.WriteByte(DataPointer, offset, value);
+ }
+ }
+ }
- /// <summary>
- /// Gets the size of a byte value in byte.
- /// </summary>
- protected override int DataSize
- {
- get { return sizeof(byte); }
- }
+ protected override byte[] GetArrayFast()
+ {
+ var res = new byte[this.Length];
+ Marshal.Copy(DataPointer, res, 0, res.Length);
+ return res;
+ }
- /// <summary>
- /// Copies the elements to the specified array.
- /// </summary>
- /// <param name="destination">The destination array.</param>
- /// <param name="length">The length to copy.</param>
- /// <param name="sourceIndex">The first index of the vector.</param>
- /// <param name="destinationIndex">The first index of the destination array.</param>
- public new void CopyTo(byte[] destination, int length, int sourceIndex = 0, int
destinationIndex = 0)
- {
- if (destination == null)
- {
- throw new ArgumentNullException("destination");
- }
- if (length < 0)
- {
- throw new IndexOutOfRangeException("length");
- }
- if (sourceIndex < 0 || Length < sourceIndex + length)
- {
- throw new IndexOutOfRangeException("sourceIndex");
- }
- if (destinationIndex < 0 || destination.Length < destinationIndex + length)
- {
- throw new IndexOutOfRangeException("destinationIndex");
- }
+ protected override void SetVectorDirect(byte[] values)
+ {
+ Marshal.Copy(values, 0, DataPointer, values.Length);
+ }
- int offset = GetOffset(sourceIndex);
- IntPtr pointer = IntPtr.Add(DataPointer, offset);
- Marshal.Copy(pointer, destination, destinationIndex, length);
- }
- }
-}
+ /// <summary>
+ /// Gets the size of a byte value in byte.
+ /// </summary>
+ protected override int DataSize
+ {
+ get { return sizeof(byte); }
+ }
+
+ /// <summary>
+ /// Copies the elements to the specified array.
+ /// </summary>
+ /// <param name="destination">The destination array.</param>
+ /// <param name="length">The length to copy.</param>
+ /// <param name="sourceIndex">The first index of the vector.</param>
+ /// <param name="destinationIndex">The first index of the destination array.</param>
+ public new void CopyTo(byte[] destination, int length, int sourceIndex = 0, int destinationIndex = 0)
+ {
+ if (destination == null)
+ {
+ throw new ArgumentNullException("destination");
+ }
+ if (length < 0)
+ {
+ throw new IndexOutOfRangeException("length");
+ }
+ if (sourceIndex < 0 || Length < sourceIndex + length)
+ {
+ throw new IndexOutOfRangeException("sourceIndex");
+ }
+ if (destinationIndex < 0 || destination.Length < destinationIndex + length)
+ {
+ throw new IndexOutOfRangeException("destinationIndex");
+ }
+
+ int offset = GetOffset(sourceIndex);
+ IntPtr pointer = IntPtr.Add(DataPointer, offset);
+ Marshal.Copy(pointer, destination, destinationIndex, length);
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/SpecialFunction.cs b/rdotnet/R.NET/SpecialFunction.cs
index 77de3ee..1100f8d 100644
--- a/rdotnet/R.NET/SpecialFunction.cs
+++ b/rdotnet/R.NET/SpecialFunction.cs
@@ -1,34 +1,34 @@
-using System;
+using RDotNet.Internals;
+using System;
using System.Linq;
-using RDotNet.Internals;
namespace RDotNet
{
- /// <summary>
- /// A special function.
- /// </summary>
- public class SpecialFunction : Function
- {
- /// <summary>
- /// Creates a special function proxy.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="pointer">The pointer.</param>
- protected internal SpecialFunction(REngine engine, IntPtr pointer)
- : base(engine, pointer)
- {}
+ /// <summary>
+ /// A special function.
+ /// </summary>
+ public class SpecialFunction : Function
+ {
+ /// <summary>
+ /// Creates a special function proxy.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="pointer">The pointer.</param>
+ protected internal SpecialFunction(REngine engine, IntPtr pointer)
+ : base(engine, pointer)
+ { }
- public override SymbolicExpression Invoke(SymbolicExpression[] args)
- {
- IntPtr argument = Engine.NilValue.DangerousGetHandle();
- foreach (SymbolicExpression arg in args.Reverse())
- {
- argument = Engine.GetFunction<Rf_cons>("Rf_cons")(arg.DangerousGetHandle(),
argument);
- }
- IntPtr call = Engine.GetFunction<Rf_lcons>("Rf_lcons")(handle, argument);
+ public override SymbolicExpression Invoke(SymbolicExpression[] args)
+ {
+ IntPtr argument = Engine.NilValue.DangerousGetHandle();
+ foreach (SymbolicExpression arg in args.Reverse())
+ {
+ argument = Engine.GetFunction<Rf_cons>()(arg.DangerousGetHandle(), argument);
+ }
+ IntPtr call = Engine.GetFunction<Rf_lcons>()(handle, argument);
- IntPtr result = Engine.GetFunction<Rf_eval>("Rf_eval")(call,
Engine.GlobalEnvironment.DangerousGetHandle());
- return new SymbolicExpression(Engine, result);
- }
- }
-}
+ IntPtr result = Engine.GetFunction<Rf_eval>()(call, Engine.GlobalEnvironment.DangerousGetHandle());
+ return new SymbolicExpression(Engine, result);
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/StartupParameter.cs b/rdotnet/R.NET/StartupParameter.cs
index 33aba52..7293280 100644
--- a/rdotnet/R.NET/StartupParameter.cs
+++ b/rdotnet/R.NET/StartupParameter.cs
@@ -1,298 +1,298 @@
-using System;
-using System.Runtime.InteropServices;
-using RDotNet.Internals;
+using RDotNet.Internals;
using RDotNet.Internals.Windows;
+using System;
+using System.Runtime.InteropServices;
namespace RDotNet
{
- /// <summary>
- /// Represents parameters on R's startup.
- /// </summary>
- /// <remarks>
- /// Wraps RStart struct.
- /// </remarks>
- public class StartupParameter
- {
- private static readonly ulong EnvironmentDependentMaxSize = Environment.Is64BitProcess ?
ulong.MaxValue : uint.MaxValue;
+ /// <summary>
+ /// Represents parameters on R's startup.
+ /// </summary>
+ /// <remarks>
+ /// Wraps RStart struct.
+ /// </remarks>
+ public class StartupParameter
+ {
+ private static readonly ulong EnvironmentDependentMaxSize = Environment.Is64BitProcess ?
ulong.MaxValue : uint.MaxValue;
- // Windows style RStart includes Unix-style RStart.
- internal RStart start;
+ // Windows style RStart includes Unix-style RStart.
+ internal RStart start;
- public StartupParameter()
- {
- this.start = new RStart();
- SetDefaultParameter();
- }
+ public StartupParameter()
+ {
+ this.start = new RStart();
+ SetDefaultParameter();
+ }
- /// <summary>
- /// Gets or sets the value indicating that R runs as quiet mode.
- /// </summary>
- public bool Quiet
- {
- get { return this.start.Common.R_Quiet; }
- set { this.start.Common.R_Quiet = value; }
- }
+ /// <summary>
+ /// Gets or sets the value indicating that R runs as quiet mode.
+ /// </summary>
+ public bool Quiet
+ {
+ get { return this.start.Common.R_Quiet; }
+ set { this.start.Common.R_Quiet = value; }
+ }
- /// <summary>
- /// Gets or sets the value indicating that R runs as slave mode.
- /// </summary>
- public bool Slave
- {
- get { return this.start.Common.R_Slave; }
- set { this.start.Common.R_Slave = value; }
- }
+ /// <summary>
+ /// Gets or sets the value indicating that R runs as slave mode.
+ /// </summary>
+ public bool Slave
+ {
+ get { return this.start.Common.R_Slave; }
+ set { this.start.Common.R_Slave = value; }
+ }
- /// <summary>
- /// Gets or sets the value indicating that R runs as interactive mode.
- /// </summary>
- public bool Interactive
- {
- get { return this.start.Common.R_Interactive; }
- set { this.start.Common.R_Interactive = value; }
- }
+ /// <summary>
+ /// Gets or sets the value indicating that R runs as interactive mode.
+ /// </summary>
+ public bool Interactive
+ {
+ get { return this.start.Common.R_Interactive; }
+ set { this.start.Common.R_Interactive = value; }
+ }
- /// <summary>
- /// Gets or sets the value indicating that R runs as verbose mode.
- /// </summary>
- public bool Verbose
- {
- get { return this.start.Common.R_Verbose; }
- set { this.start.Common.R_Verbose = value; }
- }
+ /// <summary>
+ /// Gets or sets the value indicating that R runs as verbose mode.
+ /// </summary>
+ public bool Verbose
+ {
+ get { return this.start.Common.R_Verbose; }
+ set { this.start.Common.R_Verbose = value; }
+ }
- /// <summary>
- /// Gets or sets the value indicating that R loads the site file.
- /// </summary>
- public bool LoadSiteFile
- {
- get { return this.start.Common.LoadSiteFile; }
- set { this.start.Common.LoadSiteFile = value; }
- }
+ /// <summary>
+ /// Gets or sets the value indicating that R loads the site file.
+ /// </summary>
+ public bool LoadSiteFile
+ {
+ get { return this.start.Common.LoadSiteFile; }
+ set { this.start.Common.LoadSiteFile = value; }
+ }
- /// <summary>
- /// Gets or sets the value indicating that R loads the init file.
- /// </summary>
- public bool LoadInitFile
- {
- get { return this.start.Common.LoadInitFile; }
- set { this.start.Common.LoadInitFile = value; }
- }
+ /// <summary>
+ /// Gets or sets the value indicating that R loads the init file.
+ /// </summary>
+ public bool LoadInitFile
+ {
+ get { return this.start.Common.LoadInitFile; }
+ set { this.start.Common.LoadInitFile = value; }
+ }
- /// <summary>
- /// Gets or sets the value indicating that R debugs the init file.
- /// </summary>
- public bool DebugInitFile
- {
- get { return this.start.Common.DebugInitFile; }
- set { this.start.Common.DebugInitFile = value; }
- }
+ /// <summary>
+ /// Gets or sets the value indicating that R debugs the init file.
+ /// </summary>
+ public bool DebugInitFile
+ {
+ get { return this.start.Common.DebugInitFile; }
+ set { this.start.Common.DebugInitFile = value; }
+ }
- /// <summary>
- /// Gets or sets the value indicating that R restores the history.
- /// </summary>
- public StartupRestoreAction RestoreAction
- {
- get { return this.start.Common.RestoreAction; }
- set { this.start.Common.RestoreAction = value; }
- }
+ /// <summary>
+ /// Gets or sets the value indicating that R restores the history.
+ /// </summary>
+ public StartupRestoreAction RestoreAction
+ {
+ get { return this.start.Common.RestoreAction; }
+ set { this.start.Common.RestoreAction = value; }
+ }
- /// <summary>
- /// Gets or sets the value indicating that R saves the history.
- /// </summary>
- public StartupSaveAction SaveAction
- {
- get { return this.start.Common.SaveAction; }
- set { this.start.Common.SaveAction = value; }
- }
+ /// <summary>
+ /// Gets or sets the value indicating that R saves the history.
+ /// </summary>
+ public StartupSaveAction SaveAction
+ {
+ get { return this.start.Common.SaveAction; }
+ set { this.start.Common.SaveAction = value; }
+ }
- /// <summary>
- /// Gets or sets the minimum memory size.
- /// </summary>
- public ulong MinMemorySize
- {
- get { return this.start.Common.vsize.ToUInt64(); }
- set
- {
- if (value > EnvironmentDependentMaxSize)
- {
- throw new ArgumentOutOfRangeException("value");
- }
- this.start.Common.vsize = new UIntPtr(value);
- }
- }
+ /// <summary>
+ /// Gets or sets the minimum memory size.
+ /// </summary>
+ public ulong MinMemorySize
+ {
+ get { return this.start.Common.vsize.ToUInt64(); }
+ set
+ {
+ if (value > EnvironmentDependentMaxSize)
+ {
+ throw new ArgumentOutOfRangeException("value");
+ }
+ this.start.Common.vsize = new UIntPtr(value);
+ }
+ }
- /// <summary>
- /// Gets or sets the minimum number of cons cells.
- /// </summary>
- public ulong MinCellSize
- {
- get { return this.start.Common.nsize.ToUInt64(); }
- set
- {
- if (value > EnvironmentDependentMaxSize)
- {
- throw new ArgumentOutOfRangeException("value");
- }
- this.start.Common.nsize = new UIntPtr(value);
- }
- }
+ /// <summary>
+ /// Gets or sets the minimum number of cons cells.
+ /// </summary>
+ public ulong MinCellSize
+ {
+ get { return this.start.Common.nsize.ToUInt64(); }
+ set
+ {
+ if (value > EnvironmentDependentMaxSize)
+ {
+ throw new ArgumentOutOfRangeException("value");
+ }
+ this.start.Common.nsize = new UIntPtr(value);
+ }
+ }
- /// <summary>
- /// Gets or sets the maximum memory size.
- /// </summary>
- public ulong MaxMemorySize
- {
- get { return this.start.Common.max_vsize.ToUInt64(); }
- set
- {
- if (value > EnvironmentDependentMaxSize)
- {
- throw new ArgumentOutOfRangeException("value");
- }
- this.start.Common.max_vsize = new UIntPtr(value);
- }
- }
+ /// <summary>
+ /// Gets or sets the maximum memory size.
+ /// </summary>
+ public ulong MaxMemorySize
+ {
+ get { return this.start.Common.max_vsize.ToUInt64(); }
+ set
+ {
+ if (value > EnvironmentDependentMaxSize)
+ {
+ throw new ArgumentOutOfRangeException("value");
+ }
+ this.start.Common.max_vsize = new UIntPtr(value);
+ }
+ }
- /// <summary>
- /// Gets or sets the maximum number of cons cells.
- /// </summary>
- public ulong MaxCellSize
- {
- get { return this.start.Common.max_nsize.ToUInt64(); }
- set
- {
- if (value > EnvironmentDependentMaxSize)
- {
- throw new ArgumentOutOfRangeException("value");
- }
- this.start.Common.max_nsize = new UIntPtr(value);
- }
- }
+ /// <summary>
+ /// Gets or sets the maximum number of cons cells.
+ /// </summary>
+ public ulong MaxCellSize
+ {
+ get { return this.start.Common.max_nsize.ToUInt64(); }
+ set
+ {
+ if (value > EnvironmentDependentMaxSize)
+ {
+ throw new ArgumentOutOfRangeException("value");
+ }
+ this.start.Common.max_nsize = new UIntPtr(value);
+ }
+ }
- /// <summary>
- /// Gets or sets the maximum number of protected pointers in stack.
- /// </summary>
- public ulong StackSize
- {
- get { return this.start.Common.ppsize.ToUInt64(); }
- set
- {
- if (value > EnvironmentDependentMaxSize)
- {
- throw new ArgumentOutOfRangeException("value");
- }
- this.start.Common.ppsize = new UIntPtr(value);
- }
- }
+ /// <summary>
+ /// Gets or sets the maximum number of protected pointers in stack.
+ /// </summary>
+ public ulong StackSize
+ {
+ get { return this.start.Common.ppsize.ToUInt64(); }
+ set
+ {
+ if (value > EnvironmentDependentMaxSize)
+ {
+ throw new ArgumentOutOfRangeException("value");
+ }
+ this.start.Common.ppsize = new UIntPtr(value);
+ }
+ }
- /// <summary>
- /// Gets or sets the value indicating that R does NOT load the environment file.
- /// </summary>
- public bool NoRenviron
- {
- get { return this.start.Common.NoRenviron; }
- set { this.start.Common.NoRenviron = value; }
- }
+ /// <summary>
+ /// Gets or sets the value indicating that R does NOT load the environment file.
+ /// </summary>
+ public bool NoRenviron
+ {
+ get { return this.start.Common.NoRenviron; }
+ set { this.start.Common.NoRenviron = value; }
+ }
- /// <summary>
- /// Gets or sets the base directory in which R is installed.
- /// </summary>
- /// <remarks>
- /// Only Windows.
- /// </remarks>
- public string RHome
- {
- get
- {
- if (Environment.OSVersion.Platform != PlatformID.Win32NT)
- {
- throw new NotSupportedException();
- }
- return Marshal.PtrToStringAnsi(this.start.rhome);
- }
- set
- {
- if (Environment.OSVersion.Platform != PlatformID.Win32NT)
- {
- throw new NotSupportedException();
- }
- this.start.rhome = Marshal.StringToHGlobalAnsi(value);
- }
- }
+ /// <summary>
+ /// Gets or sets the base directory in which R is installed.
+ /// </summary>
+ /// <remarks>
+ /// Only Windows.
+ /// </remarks>
+ public string RHome
+ {
+ get
+ {
+ if (Environment.OSVersion.Platform != PlatformID.Win32NT)
+ {
+ throw new NotSupportedException();
+ }
+ return Marshal.PtrToStringAnsi(this.start.rhome);
+ }
+ set
+ {
+ if (Environment.OSVersion.Platform != PlatformID.Win32NT)
+ {
+ throw new NotSupportedException();
+ }
+ this.start.rhome = Marshal.StringToHGlobalAnsi(value);
+ }
+ }
- /// <summary>
- /// Gets or sets the default user workspace.
- /// </summary>
- /// <remarks>
- /// Only Windows.
- /// </remarks>
- public string Home
- {
- get
- {
- if (Environment.OSVersion.Platform != PlatformID.Win32NT)
- {
- throw new NotSupportedException();
- }
- return Marshal.PtrToStringAnsi(this.start.home);
- }
- set
- {
- if (Environment.OSVersion.Platform != PlatformID.Win32NT)
- {
- throw new NotSupportedException();
- }
- this.start.home = Marshal.StringToHGlobalAnsi(value);
- }
- }
+ /// <summary>
+ /// Gets or sets the default user workspace.
+ /// </summary>
+ /// <remarks>
+ /// Only Windows.
+ /// </remarks>
+ public string Home
+ {
+ get
+ {
+ if (Environment.OSVersion.Platform != PlatformID.Win32NT)
+ {
+ throw new NotSupportedException();
+ }
+ return Marshal.PtrToStringAnsi(this.start.home);
+ }
+ set
+ {
+ if (Environment.OSVersion.Platform != PlatformID.Win32NT)
+ {
+ throw new NotSupportedException();
+ }
+ this.start.home = Marshal.StringToHGlobalAnsi(value);
+ }
+ }
- /// <summary>
- /// Gets or sets the UI mode.
- /// </summary>
- /// <remarks>
- /// Only Windows.
- /// </remarks>
- public UiMode CharacterMode
- {
- get
- {
- if (Environment.OSVersion.Platform != PlatformID.Win32NT)
- {
- throw new NotSupportedException();
- }
- return this.start.CharacterMode;
- }
- set
- {
- if (Environment.OSVersion.Platform != PlatformID.Win32NT)
- {
- throw new NotSupportedException();
- }
- this.start.CharacterMode = value;
- }
- }
+ /// <summary>
+ /// Gets or sets the UI mode.
+ /// </summary>
+ /// <remarks>
+ /// Only Windows.
+ /// </remarks>
+ public UiMode CharacterMode
+ {
+ get
+ {
+ if (Environment.OSVersion.Platform != PlatformID.Win32NT)
+ {
+ throw new NotSupportedException();
+ }
+ return this.start.CharacterMode;
+ }
+ set
+ {
+ if (Environment.OSVersion.Platform != PlatformID.Win32NT)
+ {
+ throw new NotSupportedException();
+ }
+ this.start.CharacterMode = value;
+ }
+ }
- private void SetDefaultParameter()
- {
- Quiet = true;
- //Slave = false;
- Interactive = true;
- //Verbose = false;
- RestoreAction = StartupRestoreAction.NoRestore;
- SaveAction = StartupSaveAction.NoSave;
- LoadSiteFile = true;
- LoadInitFile = true;
- //DebugInitFile = false;
- MinMemorySize = 6291456;
- MinCellSize = 350000;
- MaxMemorySize = EnvironmentDependentMaxSize;
- MaxCellSize = EnvironmentDependentMaxSize;
- StackSize = 50000;
- //NoRenviron = false;
- if (Environment.OSVersion.Platform == PlatformID.Win32NT)
- {
- CharacterMode = UiMode.LinkDll;
- }
- }
- }
-}
+ private void SetDefaultParameter()
+ {
+ Quiet = true;
+ //Slave = false;
+ Interactive = true;
+ //Verbose = false;
+ RestoreAction = StartupRestoreAction.NoRestore;
+ SaveAction = StartupSaveAction.NoSave;
+ LoadSiteFile = true;
+ LoadInitFile = true;
+ //DebugInitFile = false;
+ MinMemorySize = 6291456;
+ MinCellSize = 350000;
+ MaxMemorySize = EnvironmentDependentMaxSize;
+ MaxCellSize = EnvironmentDependentMaxSize;
+ StackSize = 50000;
+ //NoRenviron = false;
+ if (Environment.OSVersion.Platform == PlatformID.Win32NT)
+ {
+ CharacterMode = UiMode.LinkDll;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Symbol.cs b/rdotnet/R.NET/Symbol.cs
index c08f55b..834fb68 100644
--- a/rdotnet/R.NET/Symbol.cs
+++ b/rdotnet/R.NET/Symbol.cs
@@ -1,76 +1,76 @@
-using System;
+using RDotNet.Internals;
+using System;
using System.Runtime.InteropServices;
-using RDotNet.Internals;
namespace RDotNet
{
- /// <summary>
- /// A symbol object.
- /// </summary>
- public class Symbol : SymbolicExpression
- {
- /// <summary>
- /// Creates a symbol.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="pointer">The pointer.</param>
- protected internal Symbol(REngine engine, IntPtr pointer)
- : base(engine, pointer)
- {}
+ /// <summary>
+ /// A symbol object.
+ /// </summary>
+ public class Symbol : SymbolicExpression
+ {
+ /// <summary>
+ /// Creates a symbol.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="pointer">The pointer.</param>
+ protected internal Symbol(REngine engine, IntPtr pointer)
+ : base(engine, pointer)
+ { }
- /// <summary>
- /// Gets and sets the name.
- /// </summary>
- public string PrintName
- {
- get
- {
- SEXPREC sexp = GetInternalStructure();
- return new InternalString(Engine, sexp.symsxp.pname).ToString();
- }
- set
- {
- IntPtr pointer = (value == null ? Engine.NilValue : new
InternalString(Engine, value)).DangerousGetHandle();
- int offset = GetOffsetOf("pname");
- Marshal.WriteIntPtr(handle, offset, pointer);
- }
- }
+ /// <summary>
+ /// Gets and sets the name.
+ /// </summary>
+ public string PrintName
+ {
+ get
+ {
+ SEXPREC sexp = GetInternalStructure();
+ return new InternalString(Engine, sexp.symsxp.pname).ToString();
+ }
+ set
+ {
+ IntPtr pointer = (value == null ? Engine.NilValue : new InternalString(Engine,
value)).DangerousGetHandle();
+ int offset = GetOffsetOf("pname");
+ Marshal.WriteIntPtr(handle, offset, pointer);
+ }
+ }
- /// <summary>
- /// Gets the internal function.
- /// </summary>
- public SymbolicExpression Internal
- {
- get
- {
- SEXPREC sexp = GetInternalStructure();
- if (Engine.CheckNil(sexp.symsxp.value))
- {
- return null;
- }
- return new SymbolicExpression(Engine, sexp symsxp internal);
- }
- }
+ /// <summary>
+ /// Gets the internal function.
+ /// </summary>
+ public SymbolicExpression Internal
+ {
+ get
+ {
+ SEXPREC sexp = GetInternalStructure();
+ if (Engine.CheckNil(sexp.symsxp.value))
+ {
+ return null;
+ }
+ return new SymbolicExpression(Engine, sexp symsxp internal);
+ }
+ }
- /// <summary>
- /// Gets the symbol value.
- /// </summary>
- public SymbolicExpression Value
- {
- get
- {
- SEXPREC sexp = GetInternalStructure();
- if (Engine.CheckNil(sexp.symsxp.value))
- {
- return null;
- }
- return new SymbolicExpression(Engine, sexp.symsxp.value);
- }
- }
+ /// <summary>
+ /// Gets the symbol value.
+ /// </summary>
+ public SymbolicExpression Value
+ {
+ get
+ {
+ SEXPREC sexp = GetInternalStructure();
+ if (Engine.CheckNil(sexp.symsxp.value))
+ {
+ return null;
+ }
+ return new SymbolicExpression(Engine, sexp.symsxp.value);
+ }
+ }
- private static int GetOffsetOf(string fieldName)
- {
- return Marshal.OffsetOf(typeof(SEXPREC), "u").ToInt32() +
Marshal.OffsetOf(typeof(symsxp), fieldName).ToInt32();
- }
- }
-}
+ private static int GetOffsetOf(string fieldName)
+ {
+ return Marshal.OffsetOf(typeof(SEXPREC), "u").ToInt32() + Marshal.OffsetOf(typeof(symsxp),
fieldName).ToInt32();
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/SymbolicExpression.cs b/rdotnet/R.NET/SymbolicExpression.cs
index c127f17..60aa718 100644
--- a/rdotnet/R.NET/SymbolicExpression.cs
+++ b/rdotnet/R.NET/SymbolicExpression.cs
@@ -1,239 +1,242 @@
-using System;
+using RDotNet.Dynamic;
+using RDotNet.Internals;
+using System;
+using System.Diagnostics;
using System.Dynamic;
using System.Runtime.InteropServices;
using System.Security.Permissions;
-using RDotNet.Dynamic;
-using RDotNet.Internals;
namespace RDotNet
{
- /// <summary>
- /// An expression in R environment.
- /// </summary>
- [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
- public class SymbolicExpression : SafeHandle, IEquatable<SymbolicExpression>,
IDynamicMetaObjectProvider
- {
- private readonly REngine engine;
- private readonly SEXPREC sexp;
-
- private bool isProtected;
-
- /// <summary>
- /// Creates new instance of SymbolicExpression.
- /// </summary>
- /// <param name="engine">The engine.</param>
- /// <param name="pointer">The pointer.</param>
- protected internal SymbolicExpression(REngine engine, IntPtr pointer)
- : base(IntPtr.Zero, true)
- {
- this.engine = engine;
- this.sexp = (SEXPREC)Marshal.PtrToStructure(pointer, typeof(SEXPREC));
- SetHandle(pointer);
- }
-
- public override bool IsInvalid
- {
- get { return IsClosed || handle == IntPtr.Zero; }
- }
-
- /// <summary>
- /// Gets the <see cref="REngine"/> to which this expression belongs.
- /// </summary>
- public REngine Engine
- {
- get { return this.engine; }
- }
-
- /// <summary>
- /// Gets whether this expression is protected from the garbage collection.
- /// </summary>
- public bool IsProtected
- {
- get { return this.isProtected; }
- }
-
- /// <summary>
- /// Gets the <see cref="SymbolicExpressionType"/>.
- /// </summary>
- public SymbolicExpressionType Type
- {
- get { return this.sexp.sxpinfo.type; }
- }
-
- #region IDynamicMetaObjectProvider Members
-
- public virtual DynamicMetaObject GetMetaObject(System.Linq.Expressions.Expression parameter)
- {
- return new SymbolicExpressionDynamicMeta(parameter, this);
- }
-
- #endregion
-
- #region IEquatable<SymbolicExpression> Members
-
- public bool Equals(SymbolicExpression other)
- {
- return other != null && handle == other.handle;
- }
-
- #endregion
-
- internal SEXPREC GetInternalStructure()
- {
- return (SEXPREC)Marshal.PtrToStructure(handle, typeof(SEXPREC));
- }
-
- /// <summary>
- /// Gets all value names.
- /// </summary>
- /// <returns>The names of attributes</returns>
- public string[] GetAttributeNames()
- {
- int length = Engine.GetFunction<Rf_length>("Rf_length")(this.sexp.attrib);
- var names = new string[length];
- IntPtr pointer = this.sexp.attrib;
- for (int index = 0; index < length; index++)
- {
- var node = (SEXPREC)Marshal.PtrToStructure(pointer, typeof(SEXPREC));
- var attribute = (SEXPREC)Marshal.PtrToStructure(node.listsxp.tagval,
typeof(SEXPREC));
- IntPtr name = attribute.symsxp.pname;
- names[index] = new InternalString(Engine, name);
- pointer = node.listsxp.cdrval;
- }
- return names;
- }
-
- /// <summary>
- /// Gets the value of the specified name.
- /// </summary>
- /// <param name="attributeName">The name of attribute.</param>
- /// <returns>The attribute.</returns>
- public SymbolicExpression GetAttribute(string attributeName)
- {
- if (attributeName == null)
- {
- throw new ArgumentNullException();
- }
- if (attributeName == string.Empty)
- {
- throw new ArgumentException();
- }
-
- IntPtr installedName = Engine.GetFunction<Rf_install>("Rf_install")(attributeName);
- IntPtr attribute = Engine.GetFunction<Rf_getAttrib>("Rf_getAttrib")(handle,
installedName);
- if (Engine.CheckNil(attribute))
- {
- return null;
- }
- return new SymbolicExpression(Engine, attribute);
- }
-
- internal SymbolicExpression GetAttribute(SymbolicExpression symbol)
- {
- if (symbol == null)
- {
- throw new ArgumentNullException();
- }
- if (symbol.Type != SymbolicExpressionType.Symbol)
- {
- throw new ArgumentException();
- }
-
- IntPtr attribute = Engine.GetFunction<Rf_getAttrib>("Rf_getAttrib")(handle,
symbol.handle);
- if (Engine.CheckNil(attribute))
- {
- return null;
- }
- return new SymbolicExpression(Engine, attribute);
- }
-
- /// <summary>
- /// Sets the new value to the attribute of the specified name.
- /// </summary>
- /// <param name="attributeName">The name of attribute.</param>
- /// <param name="value">The value</param>
- public void SetAttribute(string attributeName, SymbolicExpression value)
- {
- if (attributeName == null)
- {
- throw new ArgumentNullException();
- }
- if (attributeName == string.Empty)
- {
- throw new ArgumentException();
- }
-
- if (value == null)
- {
- value = Engine.NilValue;
- }
-
- IntPtr installedName = Engine.GetFunction<Rf_install>("Rf_install")(attributeName);
- Engine.GetFunction<Rf_setAttrib>("Rf_setAttrib")(handle, installedName, value.handle);
- }
-
- internal void SetAttribute(SymbolicExpression symbol, SymbolicExpression value)
- {
- if (symbol == null)
- {
- throw new ArgumentNullException();
- }
- if (symbol.Type != SymbolicExpressionType.Symbol)
- {
- throw new ArgumentException();
- }
-
- if (value == null)
- {
- value = Engine.NilValue;
- }
-
- Engine.GetFunction<Rf_setAttrib>("Rf_setAttrib")(handle, symbol.handle, value.handle);
- }
-
- /// <summary>
- /// Prevents the expression from R's garbage collector.
- /// </summary>
- /// <seealso cref="SymbolicExpression.Unprotect"/>
- public void Protect()
- {
- if (!IsInvalid)
- {
- Engine.GetFunction<Rf_protect>("Rf_protect")(handle);
- this.isProtected = true;
- }
- }
-
- /// <summary>
- /// Stops protection.
- /// </summary>
- /// <seealso cref="SymbolicExpression.Protect"/>
- public void Unprotect()
- {
- if (!IsInvalid && IsProtected)
- {
- Engine.GetFunction<Rf_unprotect_ptr>("Rf_unprotect_ptr")(handle);
- this.isProtected = false;
- }
- }
-
- protected override bool ReleaseHandle()
- {
- if (IsProtected)
- {
- Unprotect();
- }
- return true;
- }
-
- public override int GetHashCode()
- {
- return handle.GetHashCode();
- }
-
- public override bool Equals(object obj)
- {
- return Equals(obj as SymbolicExpression);
- }
- }
-}
+ /// <summary>
+ /// An expression in R environment.
+ /// </summary>
+ [DebuggerDisplay("RObjectType = {Type}")]
+ [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+ public class SymbolicExpression : SafeHandle, IEquatable<SymbolicExpression>, IDynamicMetaObjectProvider
+ {
+ private readonly REngine engine;
+ private readonly SEXPREC sexp;
+
+ private bool isProtected;
+
+ /// <summary>
+ /// Creates new instance of SymbolicExpression.
+ /// </summary>
+ /// <param name="engine">The engine.</param>
+ /// <param name="pointer">The pointer.</param>
+ protected internal SymbolicExpression(REngine engine, IntPtr pointer)
+ : base(IntPtr.Zero, true)
+ {
+ this.engine = engine;
+ this.sexp = (SEXPREC)Marshal.PtrToStructure(pointer, typeof(SEXPREC));
+ SetHandle(pointer);
+ Preserve();
+ }
+
+ public override bool IsInvalid
+ {
+ get { return handle == IntPtr.Zero; }
+ }
+
+ /// <summary>
+ /// Gets the <see cref="REngine"/> to which this expression belongs.
+ /// </summary>
+ public REngine Engine
+ {
+ get { return this.engine; }
+ }
+
+ /// <summary>
+ /// Gets whether this expression is protected from the garbage collection.
+ /// </summary>
+ public bool IsProtected
+ {
+ get { return this.isProtected; }
+ }
+
+ /// <summary>
+ /// Gets the <see cref="SymbolicExpressionType"/>.
+ /// </summary>
+ public SymbolicExpressionType Type
+ {
+ get { return this.sexp.sxpinfo.type; }
+ }
+
+ #region IDynamicMetaObjectProvider Members
+
+ public virtual DynamicMetaObject GetMetaObject(System.Linq.Expressions.Expression parameter)
+ {
+ return new SymbolicExpressionDynamicMeta(parameter, this);
+ }
+
+ #endregion IDynamicMetaObjectProvider Members
+
+ #region IEquatable<SymbolicExpression> Members
+
+ public bool Equals(SymbolicExpression other)
+ {
+ return other != null && handle == other.handle;
+ }
+
+ #endregion IEquatable<SymbolicExpression> Members
+
+ internal SEXPREC GetInternalStructure()
+ {
+ return (SEXPREC)Marshal.PtrToStructure(handle, typeof(SEXPREC));
+ }
+
+ /// <summary>
+ /// Gets all value names.
+ /// </summary>
+ /// <returns>The names of attributes</returns>
+ public string[] GetAttributeNames()
+ {
+ int length = Engine.GetFunction<Rf_length>()(this.sexp.attrib);
+ var names = new string[length];
+ IntPtr pointer = this.sexp.attrib;
+ for (int index = 0; index < length; index++)
+ {
+ var node = (SEXPREC)Marshal.PtrToStructure(pointer, typeof(SEXPREC));
+ var attribute = (SEXPREC)Marshal.PtrToStructure(node.listsxp.tagval, typeof(SEXPREC));
+ IntPtr name = attribute.symsxp.pname;
+ names[index] = new InternalString(Engine, name);
+ pointer = node.listsxp.cdrval;
+ }
+ return names;
+ }
+
+ /// <summary>
+ /// Gets the value of the specified name.
+ /// </summary>
+ /// <param name="attributeName">The name of attribute.</param>
+ /// <returns>The attribute.</returns>
+ public SymbolicExpression GetAttribute(string attributeName)
+ {
+ if (attributeName == null)
+ {
+ throw new ArgumentNullException();
+ }
+ if (attributeName == string.Empty)
+ {
+ throw new ArgumentException();
+ }
+
+ IntPtr installedName = Engine.GetFunction<Rf_install>()(attributeName);
+ IntPtr attribute = Engine.GetFunction<Rf_getAttrib>()(handle, installedName);
+ if (Engine.CheckNil(attribute))
+ {
+ return null;
+ }
+ return new SymbolicExpression(Engine, attribute);
+ }
+
+ internal SymbolicExpression GetAttribute(SymbolicExpression symbol)
+ {
+ if (symbol == null)
+ {
+ throw new ArgumentNullException();
+ }
+ if (symbol.Type != SymbolicExpressionType.Symbol)
+ {
+ throw new ArgumentException();
+ }
+
+ IntPtr attribute = Engine.GetFunction<Rf_getAttrib>()(handle, symbol.handle);
+ if (Engine.CheckNil(attribute))
+ {
+ return null;
+ }
+ return new SymbolicExpression(Engine, attribute);
+ }
+
+ /// <summary>
+ /// Sets the new value to the attribute of the specified name.
+ /// </summary>
+ /// <param name="attributeName">The name of attribute.</param>
+ /// <param name="value">The value</param>
+ public void SetAttribute(string attributeName, SymbolicExpression value)
+ {
+ if (attributeName == null)
+ {
+ throw new ArgumentNullException();
+ }
+ if (attributeName == string.Empty)
+ {
+ throw new ArgumentException();
+ }
+
+ if (value == null)
+ {
+ value = Engine.NilValue;
+ }
+
+ IntPtr installedName = Engine.GetFunction<Rf_install>()(attributeName);
+ Engine.GetFunction<Rf_setAttrib>()(handle, installedName, value.handle);
+ }
+
+ internal void SetAttribute(SymbolicExpression symbol, SymbolicExpression value)
+ {
+ if (symbol == null)
+ {
+ throw new ArgumentNullException();
+ }
+ if (symbol.Type != SymbolicExpressionType.Symbol)
+ {
+ throw new ArgumentException();
+ }
+
+ if (value == null)
+ {
+ value = Engine.NilValue;
+ }
+
+ Engine.GetFunction<Rf_setAttrib>()(handle, symbol.handle, value.handle);
+ }
+
+ /// <summary>
+ /// Protects the expression from R's garbage collector.
+ /// </summary>
+ /// <seealso cref="Unpreserve"/>
+ public void Preserve()
+ {
+ if (!IsInvalid && !isProtected)
+ {
+ Engine.GetFunction<R_PreserveObject>()(handle);
+ this.isProtected = true;
+ }
+ }
+
+ /// <summary>
+ /// Stops protection.
+ /// </summary>
+ /// <seealso cref="Preserve"/>
+ public void Unpreserve()
+ {
+ if (!IsInvalid && IsProtected)
+ {
+ Engine.GetFunction<R_ReleaseObject>()(handle);
+ this.isProtected = false;
+ }
+ }
+
+ protected override bool ReleaseHandle()
+ {
+ if (IsProtected)
+ {
+ Unpreserve();
+ }
+ return true;
+ }
+
+ public override int GetHashCode()
+ {
+ return handle.GetHashCode();
+ }
+
+ public override bool Equals(object obj)
+ {
+ return Equals(obj as SymbolicExpression);
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/SymbolicExpressionExtension.cs b/rdotnet/R.NET/SymbolicExpressionExtension.cs
index 5d25a9b..05d5bc0 100644
--- a/rdotnet/R.NET/SymbolicExpressionExtension.cs
+++ b/rdotnet/R.NET/SymbolicExpressionExtension.cs
@@ -1,586 +1,632 @@
-using System;
+using RDotNet.Internals;
+using System;
using System.Security.Permissions;
-using RDotNet.Internals;
namespace RDotNet
{
- /// <summary>
- /// Provides extension methods for <see cref="SymbolicExpression"/>.
- /// </summary>
- [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
- public static class SymbolicExpressionExtension
- {
- /// <summary>
- /// Gets whether the specified expression is list.
- /// </summary>
- /// <param name="expression">The expression.</param>
- /// <returns><c>True</c> if the specified expression is list.</returns>
- public static bool IsList(this SymbolicExpression expression)
- {
- if (expression == null)
- {
- throw new ArgumentNullException();
- }
- return
expression.Engine.GetFunction<Rf_isList>("Rf_isList")(expression.DangerousGetHandle());
- }
-
- /// <summary>
- /// Converts the specified expression to a GenericVector.
- /// </summary>
- /// <param name="expression">The expression.</param>
- /// <returns>The GenericVector. Returns <c>null</c> if the specified expression is not
vector.</returns>
- public static GenericVector AsList(this SymbolicExpression expression)
- {
- if (!expression.IsVector())
- {
- return null;
- }
- return new GenericVector(expression.Engine, expression.DangerousGetHandle());
- }
-
- /// <summary>
- /// Converts the specified expression to a DataFrame.
- /// </summary>
- /// <param name="expression">The expression.</param>
- /// <returns>The DataFrame. Returns <c>null</c> if the specified expression is not
vector.</returns>
- public static DataFrame AsDataFrame(this SymbolicExpression expression)
- {
- if (!expression.IsVector())
- {
- return null;
- }
- return new DataFrame(expression.Engine, expression.DangerousGetHandle());
- }
-
- /// <summary>
- /// Gets whether the specified expression is vector.
- /// </summary>
- /// <param name="expression">The expression.</param>
- /// <returns><c>True</c> if the specified expression is vector.</returns>
- public static bool IsVector(this SymbolicExpression expression)
- {
- if (expression == null)
- {
- throw new ArgumentNullException();
- }
- return
expression.Engine.GetFunction<Rf_isVector>("Rf_isVector")(expression.DangerousGetHandle());
- }
-
- /// <summary>
- /// Converts the specified expression to a DynamicVector.
- /// </summary>
- /// <param name="expression">The expression.</param>
- /// <returns>The DynamicVector. Returns <c>null</c> if the specified expression is not
vector.</returns>
- public static DynamicVector AsVector(this SymbolicExpression expression)
- {
- if (expression == null)
- {
- throw new ArgumentNullException();
- }
- IntPtr coerced =
expression.Engine.GetFunction<Rf_coerceVector>("Rf_coerceVector")(expression.DangerousGetHandle(),
expression.Type);
- return new DynamicVector(expression.Engine, coerced);
- }
-
- /// <summary>
- /// Converts the specified expression to a LogicalVector.
- /// </summary>
- /// <param name="expression">The expression.</param>
- /// <returns>The LogicalVector. Returns <c>null</c> if the specified expression is not
vector.</returns>
- public static LogicalVector AsLogical(this SymbolicExpression expression)
- {
- if (!expression.IsVector())
- {
- return null;
- }
- IntPtr coerced =
expression.Engine.GetFunction<Rf_coerceVector>("Rf_coerceVector")(expression.DangerousGetHandle(),
SymbolicExpressionType.LogicalVector);
- return new LogicalVector(expression.Engine, coerced);
- }
-
- /// <summary>
- /// Converts the specified expression to an IntegerVector.
- /// </summary>
- /// <param name="expression">The expression.</param>
- /// <returns>The LogicalVector. Returns <c>null</c> if the specified expression is not
vector.</returns>
- public static IntegerVector AsInteger(this SymbolicExpression expression)
- {
- if (!expression.IsVector())
- {
- return null;
- }
- IntPtr coerced =
expression.Engine.GetFunction<Rf_coerceVector>("Rf_coerceVector")(expression.DangerousGetHandle(),
SymbolicExpressionType.IntegerVector);
- return new IntegerVector(expression.Engine, coerced);
- }
-
- /// <summary>
- /// Converts the specified expression to a NumericVector.
- /// </summary>
- /// <param name="expression">The expression.</param>
- /// <returns>The LogicalVector. Returns <c>null</c> if the specified expression is not
vector.</returns>
- public static NumericVector AsNumeric(this SymbolicExpression expression)
- {
- if (!expression.IsVector())
- {
- return null;
- }
- IntPtr coerced =
expression.Engine.GetFunction<Rf_coerceVector>("Rf_coerceVector")(expression.DangerousGetHandle(),
SymbolicExpressionType.NumericVector);
- return new NumericVector(expression.Engine, coerced);
- }
-
- /// <summary>
- /// Converts the specified expression to a CharacterVector.
- /// </summary>
- /// <param name="expression">The expression.</param>
- /// <returns>The LogicalVector. Returns <c>null</c> if the specified expression is not
vector.</returns>
- public static CharacterVector AsCharacter(this SymbolicExpression expression)
- {
- if (!expression.IsVector())
- {
- return null;
- }
- IntPtr coerced =
expression.Engine.GetFunction<Rf_coerceVector>("Rf_coerceVector")(expression.DangerousGetHandle(),
SymbolicExpressionType.CharacterVector);
- return new CharacterVector(expression.Engine, coerced);
- }
-
- /// <summary>
- /// Converts the specified expression to a ComplexVector.
- /// </summary>
- /// <param name="expression">The expression.</param>
- /// <returns>The LogicalVector. Returns <c>null</c> if the specified expression is not
vector.</returns>
- public static ComplexVector AsComplex(this SymbolicExpression expression)
- {
- if (!expression.IsVector())
- {
- return null;
- }
- IntPtr coerced =
expression.Engine.GetFunction<Rf_coerceVector>("Rf_coerceVector")(expression.DangerousGetHandle(),
SymbolicExpressionType.ComplexVector);
- return new ComplexVector(expression.Engine, coerced);
- }
-
- /// <summary>
- /// Converts the specified expression to a RawVector.
- /// </summary>
- /// <param name="expression">The expression.</param>
- /// <returns>The LogicalVector. Returns <c>null</c> if the specified expression is not
vector.</returns>
- public static RawVector AsRaw(this SymbolicExpression expression)
- {
- if (!expression.IsVector())
- {
- return null;
- }
- IntPtr coerced =
expression.Engine.GetFunction<Rf_coerceVector>("Rf_coerceVector")(expression.DangerousGetHandle(),
SymbolicExpressionType.RawVector);
- return new RawVector(expression.Engine, coerced);
- }
-
- /// <summary>
- /// Gets whether the specified expression is matrix.
- /// </summary>
- /// <param name="expression">The expression.</param>
- /// <returns><c>True</c> if the specified expression is matrix.</returns>
- public static bool IsMatrix(this SymbolicExpression expression)
- {
- if (expression == null)
- {
- throw new ArgumentNullException();
- }
- return
expression.Engine.GetFunction<Rf_isMatrix>("Rf_isMatrix")(expression.DangerousGetHandle());
- }
-
- /// <summary>
- /// Converts the specified expression to a LogicalMatrix.
- /// </summary>
- /// <param name="expression">The expression.</param>
- /// <returns>The LogicalMatrix. Returns <c>null</c> if the specified expression is not
vector.</returns>
- public static LogicalMatrix AsLogicalMatrix(this SymbolicExpression expression)
- {
- if (!expression.IsVector())
- {
- return null;
- }
-
- int rowCount = 0;
- int columnCount = 0;
-
- if (expression.IsMatrix())
- {
- if (expression.Type == SymbolicExpressionType.LogicalVector)
- {
- return new LogicalMatrix(expression.Engine,
expression.DangerousGetHandle());
- }
- else
- {
- rowCount =
expression.Engine.GetFunction<Rf_nrows>("Rf_nrows")(expression.DangerousGetHandle());
- columnCount =
expression.Engine.GetFunction<Rf_ncols>("Rf_ncols")(expression.DangerousGetHandle());
- }
- }
-
- if (columnCount == 0)
- {
- rowCount =
expression.Engine.GetFunction<Rf_length>("Rf_length")(expression.DangerousGetHandle());
- columnCount = 1;
- }
-
- IntPtr coerced =
expression.Engine.GetFunction<Rf_coerceVector>("Rf_coerceVector")(expression.DangerousGetHandle(),
SymbolicExpressionType.LogicalVector);
- var dim = new IntegerVector(expression.Engine, new[] { rowCount, columnCount });
- SymbolicExpression dimSymbol = expression.Engine.GetPredefinedSymbol("R_DimSymbol");
- var matrix = new LogicalMatrix(expression.Engine, coerced);
- matrix.SetAttribute(dimSymbol, dim);
- return matrix;
- }
-
- /// <summary>
- /// Converts the specified expression to an IntegerMatrix.
- /// </summary>
- /// <param name="expression">The expression.</param>
- /// <returns>The IntegerMatrix. Returns <c>null</c> if the specified expression is not
vector.</returns>
- public static IntegerMatrix AsIntegerMatrix(this SymbolicExpression expression)
- {
- if (!expression.IsVector())
- {
- return null;
- }
-
- int rowCount = 0;
- int columnCount = 0;
-
- if (expression.IsMatrix())
- {
- if (expression.Type == SymbolicExpressionType.IntegerVector)
- {
- return new IntegerMatrix(expression.Engine,
expression.DangerousGetHandle());
- }
- else
- {
- rowCount =
expression.Engine.GetFunction<Rf_nrows>("Rf_nrows")(expression.DangerousGetHandle());
- columnCount =
expression.Engine.GetFunction<Rf_ncols>("Rf_ncols")(expression.DangerousGetHandle());
- }
- }
-
- if (columnCount == 0)
- {
- rowCount =
expression.Engine.GetFunction<Rf_length>("Rf_length")(expression.DangerousGetHandle());
- columnCount = 1;
- }
-
- IntPtr coerced =
expression.Engine.GetFunction<Rf_coerceVector>("Rf_coerceVector")(expression.DangerousGetHandle(),
SymbolicExpressionType.IntegerVector);
- var dim = new IntegerVector(expression.Engine, new[] { rowCount, columnCount });
- SymbolicExpression dimSymbol = expression.Engine.GetPredefinedSymbol("R_DimSymbol");
- var matrix = new IntegerMatrix(expression.Engine, coerced);
- matrix.SetAttribute(dimSymbol, dim);
- return matrix;
- }
-
- /// <summary>
- /// Converts the specified expression to a NumericMatrix.
- /// </summary>
- /// <param name="expression">The expression.</param>
- /// <returns>The NumericMatrix. Returns <c>null</c> if the specified expression is not
vector.</returns>
- public static NumericMatrix AsNumericMatrix(this SymbolicExpression expression)
- {
- if (!expression.IsVector())
- {
- return null;
- }
-
- int rowCount = 0;
- int columnCount = 0;
-
- if (expression.IsMatrix())
- {
- if (expression.Type == SymbolicExpressionType.NumericVector)
- {
- return new NumericMatrix(expression.Engine,
expression.DangerousGetHandle());
- }
- else
- {
- rowCount =
expression.Engine.GetFunction<Rf_nrows>("Rf_nrows")(expression.DangerousGetHandle());
- columnCount =
expression.Engine.GetFunction<Rf_ncols>("Rf_ncols")(expression.DangerousGetHandle());
- }
- }
-
- if (columnCount == 0)
- {
- rowCount =
expression.Engine.GetFunction<Rf_length>("Rf_length")(expression.DangerousGetHandle());
- columnCount = 1;
- }
-
- IntPtr coerced =
expression.Engine.GetFunction<Rf_coerceVector>("Rf_coerceVector")(expression.DangerousGetHandle(),
SymbolicExpressionType.NumericVector);
- var dim = new IntegerVector(expression.Engine, new[] { rowCount, columnCount });
- SymbolicExpression dimSymbol = expression.Engine.GetPredefinedSymbol("R_DimSymbol");
- var matrix = new NumericMatrix(expression.Engine, coerced);
- matrix.SetAttribute(dimSymbol, dim);
- return matrix;
- }
-
- /// <summary>
- /// Converts the specified expression to a CharacterMatrix.
- /// </summary>
- /// <param name="expression">The expression.</param>
- /// <returns>The CharacterMatrix. Returns <c>null</c> if the specified expression is not
vector.</returns>
- public static CharacterMatrix AsCharacterMatrix(this SymbolicExpression expression)
- {
- if (!expression.IsVector())
- {
- return null;
- }
-
- int rowCount = 0;
- int columnCount = 0;
-
- if (expression.IsMatrix())
- {
- if (expression.Type == SymbolicExpressionType.CharacterVector)
- {
- return new CharacterMatrix(expression.Engine,
expression.DangerousGetHandle());
- }
- else
- {
- rowCount =
expression.Engine.GetFunction<Rf_nrows>("Rf_nrows")(expression.DangerousGetHandle());
- columnCount =
expression.Engine.GetFunction<Rf_ncols>("Rf_ncols")(expression.DangerousGetHandle());
- }
- }
-
- if (columnCount == 0)
- {
- rowCount =
expression.Engine.GetFunction<Rf_length>("Rf_length")(expression.DangerousGetHandle());
- columnCount = 1;
- }
-
- IntPtr coerced =
expression.Engine.GetFunction<Rf_coerceVector>("Rf_coerceVector")(expression.DangerousGetHandle(),
SymbolicExpressionType.CharacterVector);
- var dim = new IntegerVector(expression.Engine, new[] { rowCount, columnCount });
- SymbolicExpression dimSymbol = expression.Engine.GetPredefinedSymbol("R_DimSymbol");
- var matrix = new CharacterMatrix(expression.Engine, coerced);
- matrix.SetAttribute(dimSymbol, dim);
- return matrix;
- }
-
- /// <summary>
- /// Converts the specified expression to a ComplexMatrix.
- /// </summary>
- /// <param name="expression">The expression.</param>
- /// <returns>The ComplexMatrix. Returns <c>null</c> if the specified expression is not
vector.</returns>
- public static ComplexMatrix AsComplexMatrix(this SymbolicExpression expression)
- {
- if (!expression.IsVector())
- {
- return null;
- }
-
- int rowCount = 0;
- int columnCount = 0;
-
- if (expression.IsMatrix())
- {
- if (expression.Type == SymbolicExpressionType.ComplexVector)
- {
- return new ComplexMatrix(expression.Engine,
expression.DangerousGetHandle());
- }
- else
- {
- rowCount =
expression.Engine.GetFunction<Rf_nrows>("Rf_nrows")(expression.DangerousGetHandle());
- columnCount =
expression.Engine.GetFunction<Rf_ncols>("Rf_ncols")(expression.DangerousGetHandle());
- }
- }
-
- if (columnCount == 0)
- {
- rowCount =
expression.Engine.GetFunction<Rf_length>("Rf_length")(expression.DangerousGetHandle());
- columnCount = 1;
- }
-
- IntPtr coerced =
expression.Engine.GetFunction<Rf_coerceVector>("Rf_coerceVector")(expression.DangerousGetHandle(),
SymbolicExpressionType.ComplexVector);
- var dim = new IntegerVector(expression.Engine, new[] { rowCount, columnCount });
- SymbolicExpression dimSymbol = expression.Engine.GetPredefinedSymbol("R_DimSymbol");
- var matrix = new ComplexMatrix(expression.Engine, coerced);
- matrix.SetAttribute(dimSymbol, dim);
- return matrix;
- }
-
- /// <summary>
- /// Converts the specified expression to a RawMatrix.
- /// </summary>
- /// <param name="expression">The expression.</param>
- /// <returns>The RawMatrix. Returns <c>null</c> if the specified expression is not
vector.</returns>
- public static RawMatrix AsRawMatrix(this SymbolicExpression expression)
- {
- if (!expression.IsVector())
- {
- return null;
- }
-
- int rowCount = 0;
- int columnCount = 0;
-
- if (expression.IsMatrix())
- {
- if (expression.Type == SymbolicExpressionType.RawVector)
- {
- return new RawMatrix(expression.Engine,
expression.DangerousGetHandle());
- }
- else
- {
- rowCount =
expression.Engine.GetFunction<Rf_nrows>("Rf_nrows")(expression.DangerousGetHandle());
- columnCount =
expression.Engine.GetFunction<Rf_ncols>("Rf_ncols")(expression.DangerousGetHandle());
- }
- }
-
- if (columnCount == 0)
- {
- rowCount =
expression.Engine.GetFunction<Rf_length>("Rf_length")(expression.DangerousGetHandle());
- columnCount = 1;
- }
-
- IntPtr coerced =
expression.Engine.GetFunction<Rf_coerceVector>("Rf_coerceVector")(expression.DangerousGetHandle(),
SymbolicExpressionType.RawVector);
- var dim = new IntegerVector(expression.Engine, new[] { rowCount, columnCount });
- SymbolicExpression dimSymbol = expression.Engine.GetPredefinedSymbol("R_DimSymbol");
- var matrix = new RawMatrix(expression.Engine, coerced);
- matrix.SetAttribute(dimSymbol, dim);
- return matrix;
- }
-
- /// <summary>
- /// Specifies the expression is an <see cref="REnvironment"/> object or not.
- /// </summary>
- /// <param name="expression">The expression.</param>
- /// <returns><c>True</c> if it is an environment.</returns>
- public static bool IsEnvironment(this SymbolicExpression expression)
- {
- if (expression == null)
- {
- throw new ArgumentNullException();
- }
- return
expression.Engine.GetFunction<Rf_isEnvironment>("Rf_isEnvironment")(expression.DangerousGetHandle());
- }
-
- /// <summary>
- /// Gets the expression as an <see cref="REnvironment"/>.
- /// </summary>
- /// <param name="expression">The environment.</param>
- /// <returns>The environment.</returns>
- public static REnvironment AsEnvironment(this SymbolicExpression expression)
- {
- if (!expression.IsEnvironment())
- {
- return null;
- }
- return new REnvironment(expression.Engine, expression.DangerousGetHandle());
- }
-
- /// <summary>
- /// Specifies the expression is an <see cref="RDotNet.Expression"/> object or not.
- /// </summary>
- /// <param name="expression">The expression.</param>
- /// <returns><c>True</c> if it is an expression.</returns>
- public static bool IsExpression(this SymbolicExpression expression)
- {
- if (expression == null)
- {
- throw new ArgumentNullException();
- }
- return
expression.Engine.GetFunction<Rf_isExpression>("Rf_isExpression")(expression.DangerousGetHandle());
- }
-
- /// <summary>
- /// Gets the expression as an <see cref="RDotNet.Expression"/>.
- /// </summary>
- /// <param name="expression">The expression.</param>
- /// <returns>The expression.</returns>
- public static Expression AsExpression(this SymbolicExpression expression)
- {
- if (!expression.IsExpression())
- {
- return null;
- }
- return new Expression(expression.Engine, expression.DangerousGetHandle());
- }
-
- /// <summary>
- /// Specifies the expression is a symbol object or not.
- /// </summary>
- /// <param name="expression">The expression.</param>
- /// <returns><c>True</c> if it is a symbol.</returns>
- public static bool IsSymbol(this SymbolicExpression expression)
- {
- if (expression == null)
- {
- throw new ArgumentNullException();
- }
- return
expression.Engine.GetFunction<Rf_isSymbol>("Rf_isSymbol")(expression.DangerousGetHandle());
- }
-
- /// <summary>
- /// Gets the expression as a symbol.
- /// </summary>
- /// <param name="expression">The expression.</param>
- /// <returns>The symbol.</returns>
- public static Symbol AsSymbol(this SymbolicExpression expression)
- {
- if (!expression.IsSymbol())
- {
- return null;
- }
- return new Symbol(expression.Engine, expression.DangerousGetHandle());
- }
-
- /// <summary>
- /// Specifies the expression is a language object or not.
- /// </summary>
- /// <param name="expression">The expression.</param>
- /// <returns><c>True</c> if it is a language.</returns>
- public static bool IsLanguage(this SymbolicExpression expression)
- {
- if (expression == null)
- {
- throw new ArgumentNullException();
- }
- return
expression.Engine.GetFunction<Rf_isLanguage>("Rf_isLanguage")(expression.DangerousGetHandle());
- }
-
- /// <summary>
- /// Gets the expression as a language.
- /// </summary>
- /// <param name="expression">The expression.</param>
- /// <returns>The language.</returns>
- public static Language AsLanguage(this SymbolicExpression expression)
- {
- if (!expression.IsLanguage())
- {
- return null;
- }
- return new Language(expression.Engine, expression.DangerousGetHandle());
- }
-
- /// <summary>
- /// Specifies the expression is a function object or not.
- /// </summary>
- /// <param name="expression">The expression.</param>
- /// <returns><c>True</c> if it is a function.</returns>
- public static bool IsFunction(this SymbolicExpression expression)
- {
- if (expression == null)
- {
- throw new ArgumentNullException();
- }
- return
expression.Engine.GetFunction<Rf_isFunction>("Rf_isFunction")(expression.DangerousGetHandle());
- }
-
- /// <summary>
- /// Gets the expression as a function.
- /// </summary>
- /// <param name="expression">The expression.</param>
- /// <returns>The function.</returns>
- public static Function AsFunction(this SymbolicExpression expression)
- {
- switch (expression.Type)
- {
- case SymbolicExpressionType.Closure:
- return new Closure(expression.Engine,
expression.DangerousGetHandle());
- case SymbolicExpressionType.BuiltinFunction:
- return new BuiltinFunction(expression.Engine,
expression.DangerousGetHandle());
- case SymbolicExpressionType.SpecialFunction:
- return new SpecialFunction(expression.Engine,
expression.DangerousGetHandle());
- default:
- throw new ArgumentException();
- }
- }
- }
-}
+ /// <summary>
+ /// Provides extension methods for <see cref="SymbolicExpression"/>.
+ /// </summary>
+ [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+ public static class SymbolicExpressionExtension
+ {
+ /// <summary>
+ /// Gets whether the specified expression is list.
+ /// </summary>
+ /// <param name="expression">The expression.</param>
+ /// <returns><c>True</c> if the specified expression is list.</returns>
+ public static bool IsList(this SymbolicExpression expression)
+ {
+ if (expression == null)
+ {
+ throw new ArgumentNullException();
+ }
+ return expression.Engine.GetFunction<Rf_isList>()(expression.DangerousGetHandle());
+ }
+
+ /// <summary>
+ /// Converts the specified expression to a GenericVector.
+ /// </summary>
+ /// <param name="expression">The expression.</param>
+ /// <returns>The GenericVector. Returns <c>null</c> if the specified expression is not
vector.</returns>
+ public static GenericVector AsList(this SymbolicExpression expression)
+ {
+ if (!expression.IsVector())
+ {
+ return null;
+ }
+ return new GenericVector(expression.Engine, expression.DangerousGetHandle());
+ }
+
+ /// <summary>
+ /// Gets whether the specified expression is data frame.
+ /// </summary>
+ /// <param name="expression">The expression.</param>
+ /// <returns><c>True</c> if the specified expression is data frame.</returns>
+ public static bool IsDataFrame(this SymbolicExpression expression)
+ {
+ if (expression == null)
+ {
+ throw new ArgumentNullException();
+ }
+ return expression.Engine.GetFunction<Rf_isFrame>()(expression.DangerousGetHandle());
+ }
+
+ /// <summary>
+ /// Converts the specified expression to a DataFrame.
+ /// </summary>
+ /// <param name="expression">The expression.</param>
+ /// <returns>The DataFrame. Returns <c>null</c> if the specified expression is not vector.</returns>
+ public static DataFrame AsDataFrame(this SymbolicExpression expression)
+ {
+ if (!expression.IsDataFrame())
+ {
+ return null;
+ }
+ return new DataFrame(expression.Engine, expression.DangerousGetHandle());
+ }
+
+ /// <summary>
+ /// Gets whether the specified expression is vector.
+ /// </summary>
+ /// <param name="expression">The expression.</param>
+ /// <returns><c>True</c> if the specified expression is vector.</returns>
+ public static bool IsVector(this SymbolicExpression expression)
+ {
+ if (expression == null)
+ {
+ throw new ArgumentNullException();
+ }
+ return expression.Engine.GetFunction<Rf_isVector>()(expression.DangerousGetHandle());
+ }
+
+ /// <summary>
+ /// Converts the specified expression to a DynamicVector.
+ /// </summary>
+ /// <param name="expression">The expression.</param>
+ /// <returns>The DynamicVector. Returns <c>null</c> if the specified expression is not
vector.</returns>
+ public static DynamicVector AsVector(this SymbolicExpression expression)
+ {
+ if (expression == null)
+ {
+ throw new ArgumentNullException();
+ }
+ IntPtr coerced = expression.Engine.GetFunction<Rf_coerceVector>()(expression.DangerousGetHandle(),
expression.Type);
+ return new DynamicVector(expression.Engine, coerced);
+ }
+
+ /// <summary>
+ /// Converts the specified expression to a LogicalVector.
+ /// </summary>
+ /// <param name="expression">The expression.</param>
+ /// <returns>The LogicalVector. Returns <c>null</c> if the specified expression is not
vector.</returns>
+ public static LogicalVector AsLogical(this SymbolicExpression expression)
+ {
+ if (!expression.IsVector())
+ {
+ return null;
+ }
+ IntPtr coerced = expression.Engine.GetFunction<Rf_coerceVector>()(expression.DangerousGetHandle(),
SymbolicExpressionType.LogicalVector);
+ return new LogicalVector(expression.Engine, coerced);
+ }
+
+ /// <summary>
+ /// Converts the specified expression to an IntegerVector.
+ /// </summary>
+ /// <param name="expression">The expression.</param>
+ /// <returns>The LogicalVector. Returns <c>null</c> if the specified expression is not
vector.</returns>
+ public static IntegerVector AsInteger(this SymbolicExpression expression)
+ {
+ if (!expression.IsVector())
+ {
+ return null;
+ }
+ IntPtr coerced = expression.Engine.GetFunction<Rf_coerceVector>()(expression.DangerousGetHandle(),
SymbolicExpressionType.IntegerVector);
+ return new IntegerVector(expression.Engine, coerced);
+ }
+
+ /// <summary>
+ /// Converts the specified expression to a NumericVector.
+ /// </summary>
+ /// <param name="expression">The expression.</param>
+ /// <returns>The LogicalVector. Returns <c>null</c> if the specified expression is not
vector.</returns>
+ public static NumericVector AsNumeric(this SymbolicExpression expression)
+ {
+ if (!expression.IsVector())
+ {
+ return null;
+ }
+ IntPtr coerced = expression.Engine.GetFunction<Rf_coerceVector>()(expression.DangerousGetHandle(),
SymbolicExpressionType.NumericVector);
+ return new NumericVector(expression.Engine, coerced);
+ }
+
+ /// <summary>
+ /// Converts the specified expression to a CharacterVector.
+ /// </summary>
+ /// <param name="expression">The expression.</param>
+ /// <returns>The LogicalVector. Returns <c>null</c> if the specified expression is not
vector.</returns>
+ public static CharacterVector AsCharacter(this SymbolicExpression expression)
+ {
+ if (!expression.IsVector())
+ {
+ return null;
+ }
+ IntPtr coerced = expression.Engine.GetFunction<Rf_coerceVector>()(expression.DangerousGetHandle(),
SymbolicExpressionType.CharacterVector);
+ return new CharacterVector(expression.Engine, coerced);
+ }
+
+ /// <summary>
+ /// Converts the specified expression to a ComplexVector.
+ /// </summary>
+ /// <param name="expression">The expression.</param>
+ /// <returns>The LogicalVector. Returns <c>null</c> if the specified expression is not
vector.</returns>
+ public static ComplexVector AsComplex(this SymbolicExpression expression)
+ {
+ if (!expression.IsVector())
+ {
+ return null;
+ }
+ IntPtr coerced = expression.Engine.GetFunction<Rf_coerceVector>()(expression.DangerousGetHandle(),
SymbolicExpressionType.ComplexVector);
+ return new ComplexVector(expression.Engine, coerced);
+ }
+
+ /// <summary>
+ /// Converts the specified expression to a RawVector.
+ /// </summary>
+ /// <param name="expression">The expression.</param>
+ /// <returns>The LogicalVector. Returns <c>null</c> if the specified expression is not
vector.</returns>
+ public static RawVector AsRaw(this SymbolicExpression expression)
+ {
+ if (!expression.IsVector())
+ {
+ return null;
+ }
+ IntPtr coerced = expression.Engine.GetFunction<Rf_coerceVector>()(expression.DangerousGetHandle(),
SymbolicExpressionType.RawVector);
+ return new RawVector(expression.Engine, coerced);
+ }
+
+ /// <summary>
+ /// Gets whether the specified expression is matrix.
+ /// </summary>
+ /// <param name="expression">The expression.</param>
+ /// <returns><c>True</c> if the specified expression is matrix.</returns>
+ public static bool IsMatrix(this SymbolicExpression expression)
+ {
+ if (expression == null)
+ {
+ throw new ArgumentNullException();
+ }
+ return expression.Engine.GetFunction<Rf_isMatrix>()(expression.DangerousGetHandle());
+ }
+
+ /// <summary>
+ /// Converts the specified expression to a LogicalMatrix.
+ /// </summary>
+ /// <param name="expression">The expression.</param>
+ /// <returns>The LogicalMatrix. Returns <c>null</c> if the specified expression is not
vector.</returns>
+ public static LogicalMatrix AsLogicalMatrix(this SymbolicExpression expression)
+ {
+ if (!expression.IsVector())
+ {
+ return null;
+ }
+
+ int rowCount = 0;
+ int columnCount = 0;
+
+ if (expression.IsMatrix())
+ {
+ if (expression.Type == SymbolicExpressionType.LogicalVector)
+ {
+ return new LogicalMatrix(expression.Engine, expression.DangerousGetHandle());
+ }
+ else
+ {
+ rowCount = expression.Engine.GetFunction<Rf_nrows>()(expression.DangerousGetHandle());
+ columnCount = expression.Engine.GetFunction<Rf_ncols>()(expression.DangerousGetHandle());
+ }
+ }
+
+ if (columnCount == 0)
+ {
+ rowCount = expression.Engine.GetFunction<Rf_length>()(expression.DangerousGetHandle());
+ columnCount = 1;
+ }
+
+ IntPtr coerced = expression.Engine.GetFunction<Rf_coerceVector>()(expression.DangerousGetHandle(),
SymbolicExpressionType.LogicalVector);
+ var dim = new IntegerVector(expression.Engine, new[] { rowCount, columnCount });
+ SymbolicExpression dimSymbol = expression.Engine.GetPredefinedSymbol("R_DimSymbol");
+ var matrix = new LogicalMatrix(expression.Engine, coerced);
+ matrix.SetAttribute(dimSymbol, dim);
+ return matrix;
+ }
+
+ /// <summary>
+ /// Converts the specified expression to an IntegerMatrix.
+ /// </summary>
+ /// <param name="expression">The expression.</param>
+ /// <returns>The IntegerMatrix. Returns <c>null</c> if the specified expression is not
vector.</returns>
+ public static IntegerMatrix AsIntegerMatrix(this SymbolicExpression expression)
+ {
+ if (!expression.IsVector())
+ {
+ return null;
+ }
+
+ int rowCount = 0;
+ int columnCount = 0;
+
+ if (expression.IsMatrix())
+ {
+ if (expression.Type == SymbolicExpressionType.IntegerVector)
+ {
+ return new IntegerMatrix(expression.Engine, expression.DangerousGetHandle());
+ }
+ else
+ {
+ rowCount = expression.Engine.GetFunction<Rf_nrows>()(expression.DangerousGetHandle());
+ columnCount = expression.Engine.GetFunction<Rf_ncols>()(expression.DangerousGetHandle());
+ }
+ }
+
+ if (columnCount == 0)
+ {
+ rowCount = expression.Engine.GetFunction<Rf_length>()(expression.DangerousGetHandle());
+ columnCount = 1;
+ }
+
+ IntPtr coerced = expression.Engine.GetFunction<Rf_coerceVector>()(expression.DangerousGetHandle(),
SymbolicExpressionType.IntegerVector);
+ var dim = new IntegerVector(expression.Engine, new[] { rowCount, columnCount });
+ SymbolicExpression dimSymbol = expression.Engine.GetPredefinedSymbol("R_DimSymbol");
+ var matrix = new IntegerMatrix(expression.Engine, coerced);
+ matrix.SetAttribute(dimSymbol, dim);
+ return matrix;
+ }
+
+ /// <summary>
+ /// Converts the specified expression to a NumericMatrix.
+ /// </summary>
+ /// <param name="expression">The expression.</param>
+ /// <returns>The NumericMatrix. Returns <c>null</c> if the specified expression is not
vector.</returns>
+ public static NumericMatrix AsNumericMatrix(this SymbolicExpression expression)
+ {
+ if (!expression.IsVector())
+ {
+ return null;
+ }
+
+ int rowCount = 0;
+ int columnCount = 0;
+
+ if (expression.IsMatrix())
+ {
+ if (expression.Type == SymbolicExpressionType.NumericVector)
+ {
+ return new NumericMatrix(expression.Engine, expression.DangerousGetHandle());
+ }
+ else
+ {
+ rowCount = expression.Engine.GetFunction<Rf_nrows>()(expression.DangerousGetHandle());
+ columnCount = expression.Engine.GetFunction<Rf_ncols>()(expression.DangerousGetHandle());
+ }
+ }
+
+ if (columnCount == 0)
+ {
+ rowCount = expression.Engine.GetFunction<Rf_length>()(expression.DangerousGetHandle());
+ columnCount = 1;
+ }
+
+ IntPtr coerced = expression.Engine.GetFunction<Rf_coerceVector>()(expression.DangerousGetHandle(),
SymbolicExpressionType.NumericVector);
+ var dim = new IntegerVector(expression.Engine, new[] { rowCount, columnCount });
+ SymbolicExpression dimSymbol = expression.Engine.GetPredefinedSymbol("R_DimSymbol");
+ var matrix = new NumericMatrix(expression.Engine, coerced);
+ matrix.SetAttribute(dimSymbol, dim);
+ return matrix;
+ }
+
+ /// <summary>
+ /// Converts the specified expression to a CharacterMatrix.
+ /// </summary>
+ /// <param name="expression">The expression.</param>
+ /// <returns>The CharacterMatrix. Returns <c>null</c> if the specified expression is not
vector.</returns>
+ public static CharacterMatrix AsCharacterMatrix(this SymbolicExpression expression)
+ {
+ if (!expression.IsVector())
+ {
+ return null;
+ }
+
+ int rowCount = 0;
+ int columnCount = 0;
+
+ if (expression.IsMatrix())
+ {
+ if (expression.Type == SymbolicExpressionType.CharacterVector)
+ {
+ return new CharacterMatrix(expression.Engine, expression.DangerousGetHandle());
+ }
+ else
+ {
+ rowCount = expression.Engine.GetFunction<Rf_nrows>()(expression.DangerousGetHandle());
+ columnCount = expression.Engine.GetFunction<Rf_ncols>()(expression.DangerousGetHandle());
+ }
+ }
+
+ if (columnCount == 0)
+ {
+ rowCount = expression.Engine.GetFunction<Rf_length>()(expression.DangerousGetHandle());
+ columnCount = 1;
+ }
+
+ IntPtr coerced = expression.Engine.GetFunction<Rf_coerceVector>()(expression.DangerousGetHandle(),
SymbolicExpressionType.CharacterVector);
+ var dim = new IntegerVector(expression.Engine, new[] { rowCount, columnCount });
+ SymbolicExpression dimSymbol = expression.Engine.GetPredefinedSymbol("R_DimSymbol");
+ var matrix = new CharacterMatrix(expression.Engine, coerced);
+ matrix.SetAttribute(dimSymbol, dim);
+ return matrix;
+ }
+
+ /// <summary>
+ /// Converts the specified expression to a ComplexMatrix.
+ /// </summary>
+ /// <param name="expression">The expression.</param>
+ /// <returns>The ComplexMatrix. Returns <c>null</c> if the specified expression is not
vector.</returns>
+ public static ComplexMatrix AsComplexMatrix(this SymbolicExpression expression)
+ {
+ if (!expression.IsVector())
+ {
+ return null;
+ }
+
+ int rowCount = 0;
+ int columnCount = 0;
+
+ if (expression.IsMatrix())
+ {
+ if (expression.Type == SymbolicExpressionType.ComplexVector)
+ {
+ return new ComplexMatrix(expression.Engine, expression.DangerousGetHandle());
+ }
+ else
+ {
+ rowCount = expression.Engine.GetFunction<Rf_nrows>()(expression.DangerousGetHandle());
+ columnCount = expression.Engine.GetFunction<Rf_ncols>()(expression.DangerousGetHandle());
+ }
+ }
+
+ if (columnCount == 0)
+ {
+ rowCount = expression.Engine.GetFunction<Rf_length>()(expression.DangerousGetHandle());
+ columnCount = 1;
+ }
+
+ IntPtr coerced = expression.Engine.GetFunction<Rf_coerceVector>()(expression.DangerousGetHandle(),
SymbolicExpressionType.ComplexVector);
+ var dim = new IntegerVector(expression.Engine, new[] { rowCount, columnCount });
+ SymbolicExpression dimSymbol = expression.Engine.GetPredefinedSymbol("R_DimSymbol");
+ var matrix = new ComplexMatrix(expression.Engine, coerced);
+ matrix.SetAttribute(dimSymbol, dim);
+ return matrix;
+ }
+
+ /// <summary>
+ /// Converts the specified expression to a RawMatrix.
+ /// </summary>
+ /// <param name="expression">The expression.</param>
+ /// <returns>The RawMatrix. Returns <c>null</c> if the specified expression is not vector.</returns>
+ public static RawMatrix AsRawMatrix(this SymbolicExpression expression)
+ {
+ if (!expression.IsVector())
+ {
+ return null;
+ }
+
+ int rowCount = 0;
+ int columnCount = 0;
+
+ if (expression.IsMatrix())
+ {
+ if (expression.Type == SymbolicExpressionType.RawVector)
+ {
+ return new RawMatrix(expression.Engine, expression.DangerousGetHandle());
+ }
+ else
+ {
+ rowCount = expression.Engine.GetFunction<Rf_nrows>()(expression.DangerousGetHandle());
+ columnCount = expression.Engine.GetFunction<Rf_ncols>()(expression.DangerousGetHandle());
+ }
+ }
+
+ if (columnCount == 0)
+ {
+ rowCount = expression.Engine.GetFunction<Rf_length>()(expression.DangerousGetHandle());
+ columnCount = 1;
+ }
+
+ IntPtr coerced = expression.Engine.GetFunction<Rf_coerceVector>()(expression.DangerousGetHandle(),
SymbolicExpressionType.RawVector);
+ var dim = new IntegerVector(expression.Engine, new[] { rowCount, columnCount });
+ SymbolicExpression dimSymbol = expression.Engine.GetPredefinedSymbol("R_DimSymbol");
+ var matrix = new RawMatrix(expression.Engine, coerced);
+ matrix.SetAttribute(dimSymbol, dim);
+ return matrix;
+ }
+
+ /// <summary>
+ /// Specifies the expression is an <see cref="REnvironment"/> object or not.
+ /// </summary>
+ /// <param name="expression">The expression.</param>
+ /// <returns><c>True</c> if it is an environment.</returns>
+ public static bool IsEnvironment(this SymbolicExpression expression)
+ {
+ if (expression == null)
+ {
+ throw new ArgumentNullException();
+ }
+ return expression.Engine.GetFunction<Rf_isEnvironment>()(expression.DangerousGetHandle());
+ }
+
+ /// <summary>
+ /// Gets the expression as an <see cref="REnvironment"/>.
+ /// </summary>
+ /// <param name="expression">The environment.</param>
+ /// <returns>The environment.</returns>
+ public static REnvironment AsEnvironment(this SymbolicExpression expression)
+ {
+ if (!expression.IsEnvironment())
+ {
+ return null;
+ }
+ return new REnvironment(expression.Engine, expression.DangerousGetHandle());
+ }
+
+ /// <summary>
+ /// Specifies the expression is an <see cref="RDotNet.Expression"/> object or not.
+ /// </summary>
+ /// <param name="expression">The expression.</param>
+ /// <returns><c>True</c> if it is an expression.</returns>
+ public static bool IsExpression(this SymbolicExpression expression)
+ {
+ if (expression == null)
+ {
+ throw new ArgumentNullException();
+ }
+ return expression.Engine.GetFunction<Rf_isExpression>()(expression.DangerousGetHandle());
+ }
+
+ /// <summary>
+ /// Gets the expression as an <see cref="RDotNet.Expression"/>.
+ /// </summary>
+ /// <param name="expression">The expression.</param>
+ /// <returns>The expression.</returns>
+ public static Expression AsExpression(this SymbolicExpression expression)
+ {
+ if (!expression.IsExpression())
+ {
+ return null;
+ }
+ return new Expression(expression.Engine, expression.DangerousGetHandle());
+ }
+
+ /// <summary>
+ /// Specifies the expression is a symbol object or not.
+ /// </summary>
+ /// <param name="expression">The expression.</param>
+ /// <returns><c>True</c> if it is a symbol.</returns>
+ public static bool IsSymbol(this SymbolicExpression expression)
+ {
+ if (expression == null)
+ {
+ throw new ArgumentNullException();
+ }
+ return expression.Engine.GetFunction<Rf_isSymbol>()(expression.DangerousGetHandle());
+ }
+
+ /// <summary>
+ /// Gets the expression as a symbol.
+ /// </summary>
+ /// <param name="expression">The expression.</param>
+ /// <returns>The symbol.</returns>
+ public static Symbol AsSymbol(this SymbolicExpression expression)
+ {
+ if (!expression.IsSymbol())
+ {
+ return null;
+ }
+ return new Symbol(expression.Engine, expression.DangerousGetHandle());
+ }
+
+ /// <summary>
+ /// Specifies the expression is a language object or not.
+ /// </summary>
+ /// <param name="expression">The expression.</param>
+ /// <returns><c>True</c> if it is a language.</returns>
+ public static bool IsLanguage(this SymbolicExpression expression)
+ {
+ if (expression == null)
+ {
+ throw new ArgumentNullException();
+ }
+ return expression.Engine.GetFunction<Rf_isLanguage>()(expression.DangerousGetHandle());
+ }
+
+ /// <summary>
+ /// Gets the expression as a language.
+ /// </summary>
+ /// <param name="expression">The expression.</param>
+ /// <returns>The language.</returns>
+ public static Language AsLanguage(this SymbolicExpression expression)
+ {
+ if (!expression.IsLanguage())
+ {
+ return null;
+ }
+ return new Language(expression.Engine, expression.DangerousGetHandle());
+ }
+
+ /// <summary>
+ /// Specifies the expression is a function object or not.
+ /// </summary>
+ /// <param name="expression">The expression.</param>
+ /// <returns><c>True</c> if it is a function.</returns>
+ public static bool IsFunction(this SymbolicExpression expression)
+ {
+ if (expression == null)
+ {
+ throw new ArgumentNullException();
+ }
+ return expression.Engine.GetFunction<Rf_isFunction>()(expression.DangerousGetHandle());
+ }
+
+ /// <summary>
+ /// Gets the expression as a function.
+ /// </summary>
+ /// <param name="expression">The expression.</param>
+ /// <returns>The function.</returns>
+ public static Function AsFunction(this SymbolicExpression expression)
+ {
+ switch (expression.Type)
+ {
+ case SymbolicExpressionType.Closure:
+ return new Closure(expression.Engine, expression.DangerousGetHandle());
+
+ case SymbolicExpressionType.BuiltinFunction:
+ return new BuiltinFunction(expression.Engine, expression.DangerousGetHandle());
+
+ case SymbolicExpressionType.SpecialFunction:
+ return new SpecialFunction(expression.Engine, expression.DangerousGetHandle());
+
+ default:
+ throw new ArgumentException();
+ }
+ }
+
+ /// <summary>
+ /// Gets whether the specified expression is factor.
+ /// </summary>
+ /// <param name="expression">The expression.</param>
+ /// <returns><c>True</c> if the specified expression is factor.</returns>
+ public static bool IsFactor(this SymbolicExpression expression)
+ {
+ if (expression == null)
+ {
+ throw new ArgumentNullException();
+ }
+ var handle = expression.DangerousGetHandle();
+ return expression.Engine.GetFunction<Rf_isFactor>()(handle);
+ }
+
+ /// <summary>
+ /// Gets the expression as a factor.
+ /// </summary>
+ /// <param name="expression">The expression.</param>
+ /// <returns>The factor.</returns>
+ public static Factor AsFactor(this SymbolicExpression expression)
+ {
+ if (!IsFactor(expression))
+ {
+ throw new ArgumentException("Not a factor.", "expression");
+ }
+ return new Factor(expression.Engine, expression.DangerousGetHandle());
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Utility.cs b/rdotnet/R.NET/Utility.cs
index 8af9bb8..d0e5e13 100644
--- a/rdotnet/R.NET/Utility.cs
+++ b/rdotnet/R.NET/Utility.cs
@@ -1,29 +1,96 @@
using System;
+using System.Numerics;
namespace RDotNet
{
- internal static class Utility
- {
- public static T[] AddFirst<T>(T value, T[] array)
- {
- if (array == null)
- {
- return new[] { value };
- }
- var newArray = new T[array.Length + 1];
- newArray[0] = value;
- Array.Copy(array, 0, newArray, 1, array.Length);
- return newArray;
- }
-
- internal static bool CheckNil(this REngine engine, IntPtr pointer)
- {
- return engine.NilValue.DangerousGetHandle() == pointer;
- }
-
- internal static bool CheckUnbound(this REngine engine, IntPtr pointer)
- {
- return engine.UnboundValue.DangerousGetHandle() == pointer;
- }
- }
-}
+ internal static class Utility
+ {
+ public static T[] AddFirst<T>(T value, T[] array)
+ {
+ if (array == null)
+ {
+ return new[] { value };
+ }
+ var newArray = new T[array.Length + 1];
+ newArray[0] = value;
+ Array.Copy(array, 0, newArray, 1, array.Length);
+ return newArray;
+ }
+
+ internal static bool CheckNil(this REngine engine, IntPtr pointer)
+ {
+ return engine.NilValue.DangerousGetHandle() == pointer;
+ }
+
+ internal static bool CheckUnbound(this REngine engine, IntPtr pointer)
+ {
+ return engine.UnboundValue.DangerousGetHandle() == pointer;
+ }
+
+ internal static U[,] ArrayConvertAll<T, U>(T[,] array, Func<T, U> fun)
+ {
+ int rows = array.GetLength(0);
+ int cols = array.GetLength(1);
+ U[,] res = new U[rows, cols];
+ for (int i = 0; i < rows; i++)
+ for (int j = 0; j < cols; j++)
+ res[i, j] = fun(array[i, j]);
+ return res;
+ }
+
+ internal static U[] ArrayConvertAllOneDim<T, U>(T[,] array, Func<T, U> fun)
+ {
+ int rows = array.GetLength(0);
+ int cols = array.GetLength(1);
+ U[] res = new U[rows * cols];
+ for (int i = 0; i < rows; i++)
+ for (int j = 0; j < cols; j++)
+ res[rows * j + i] = fun(array[i, j]);
+ return res;
+ }
+
+ // TODO: probably room for extension methods around Matrix inheritors
+ internal static U[,] ArrayConvertAllTwoDim<T, U>(T[] array, Func<T, U> fun, int rows, int cols)
+ {
+ U[,] res = new U[rows,cols];
+ for (int i = 0; i < rows; i++)
+ for (int j = 0; j < cols; j++)
+ res[i, j] = fun(array[rows * j + i]);
+ return res;
+ }
+
+ internal static U[] ArrayConvertOneDim<U>(U[,] array)
+ {
+ return ArrayConvertAllOneDim(array, value => value);
+ }
+
+ // TODO: probably room for extension methods around Matrix inheritors
+ internal static U[,] ArrayConvertAllTwoDim<U>(U[] array, int rows, int cols)
+ {
+ return ArrayConvertAllTwoDim(array, value => value, rows, cols);
+ }
+
+ internal static double[] SerializeComplexToDouble(Complex[] values)
+ {
+ double[] data = new double[2 * values.Length];
+ for (int i = 0; i < data.Length; i++)
+ {
+ data[2 * i] = values[i].Real;
+ data[2 * i + 1] = values[i].Imaginary;
+ }
+ return data;
+ }
+
+ internal static Complex[] DeserializeComplexFromDouble(double[] data)
+ {
+ int dblLen = data.Length;
+ if (dblLen % 2 != 0) throw new ArgumentException("Serialized definition of complexes must be of
even length");
+ int n = dblLen / 2;
+ var res = new Complex[n];
+ for (int i = 0; i < n; i++)
+ res[i] = new Complex(data[2 * i], data[2 * i + 1]);
+ return res;
+ }
+
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/R.NET/Vector.cs b/rdotnet/R.NET/Vector.cs
index 876e134..00ebf21 100644
--- a/rdotnet/R.NET/Vector.cs
+++ b/rdotnet/R.NET/Vector.cs
@@ -1,206 +1,245 @@
-using System;
+using RDotNet.Diagnostics;
+using RDotNet.Internals;
+using System;
using System.Collections;
using System.Collections.Generic;
+using System.Diagnostics;
using System.Linq;
using System.Runtime.InteropServices;
using System.Security.Permissions;
-using RDotNet.Internals;
namespace RDotNet
{
- /// <summary>
- /// A vector base.
- /// </summary>
- /// <typeparam name="T">The element type.</typeparam>
- [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
- public abstract class Vector<T> : SymbolicExpression, IEnumerable<T>
- {
- /// <summary>
- /// Creates a new vector with the specified size.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="type">The element type.</param>
- /// <param name="length">The length of vector.</param>
- protected Vector(REngine engine, SymbolicExpressionType type, int length)
- : base(engine, engine.GetFunction<Rf_allocVector>("Rf_allocVector")(type, length))
- {
- if (length <= 0)
- {
- throw new ArgumentOutOfRangeException("length");
- }
- var empty = new byte[length * DataSize];
- Marshal.Copy(empty, 0, DataPointer, empty.Length);
- }
-
- /// <summary>
- /// Creates a new vector with the specified values.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="type">The element type.</param>
- /// <param name="vector">The elements of vector.</param>
- protected Vector(REngine engine, SymbolicExpressionType type, IEnumerable<T> vector)
- : base(engine, engine.GetFunction<Rf_allocVector>("Rf_allocVector")(type,
vector.Count()))
- {
- int index = 0;
- foreach (T element in vector)
- {
- this[index++] = element;
- }
- }
-
- /// <summary>
- /// Creates a new instance for a vector.
- /// </summary>
- /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
- /// <param name="coerced">The pointer to a vector.</param>
- protected Vector(REngine engine, IntPtr coerced)
- : base(engine, coerced)
- {}
-
- /// <summary>
- /// Gets or sets the element at the specified index.
- /// </summary>
- /// <param name="index">The zero-based index of the element to get or set.</param>
- /// <returns>The element at the specified index.</returns>
- public abstract T this[int index] { get; set; }
-
- /// <summary>
- /// Gets or sets the element at the specified name.
- /// </summary>
- /// <param name="name">The name of the element to get or set.</param>
- /// <returns>The element at the specified name.</returns>
- public virtual T this[string name]
- {
- get
- {
- if (name == null)
- {
- throw new ArgumentNullException("name");
- }
- string[] names = Names;
- if (names == null)
- {
- throw new InvalidOperationException();
- }
- int index = Array.IndexOf(names, name);
- return this[index];
- }
- set
- {
- string[] names = Names;
- if (names == null)
- {
- throw new InvalidOperationException();
- }
- int index = Array.IndexOf(names, name);
- this[index] = value;
- }
- }
-
- /// <summary>
- /// Gets the number of elements.
- /// </summary>
- public int Length
- {
- get { return Engine.GetFunction<Rf_length>("Rf_length")(handle); }
- }
-
- /// <summary>
- /// Gets the names of elements.
- /// </summary>
- public string[] Names
- {
- get
- {
- SymbolicExpression namesSymbol = Engine.GetPredefinedSymbol("R_NamesSymbol");
- SymbolicExpression names = GetAttribute(namesSymbol);
- if (names == null)
- {
- return null;
- }
- CharacterVector namesVector = names.AsCharacter();
- if (namesVector == null)
- {
- return null;
- }
-
- int length = namesVector.Length;
- var result = new string[length];
- namesVector.CopyTo(result, length);
- return result;
- }
- }
-
- /// <summary>
- /// Gets the pointer for the first element.
- /// </summary>
- protected IntPtr DataPointer
- {
- get { return IntPtr.Add(handle, Marshal.SizeOf(typeof(VECTOR_SEXPREC))); }
- }
-
- /// <summary>
- /// Gets the size of an element in byte.
- /// </summary>
- protected abstract int DataSize { get; }
-
- #region IEnumerable<T> Members
-
- public IEnumerator<T> GetEnumerator()
- {
- for (int index = 0; index < Length; index++)
- {
- yield return this[index];
- }
- }
-
- IEnumerator IEnumerable.GetEnumerator()
- {
- return GetEnumerator();
- }
-
- #endregion
-
- /// <summary>
- /// Copies the elements to the specified array.
- /// </summary>
- /// <param name="destination">The destination array.</param>
- /// <param name="length">The length to copy.</param>
- /// <param name="sourceIndex">The first index of the vector.</param>
- /// <param name="destinationIndex">The first index of the destination array.</param>
- public void CopyTo(T[] destination, int length, int sourceIndex = 0, int destinationIndex = 0)
- {
- if (destination == null)
- {
- throw new ArgumentNullException("destination");
- }
- if (length < 0)
- {
- throw new IndexOutOfRangeException("length");
- }
- if (sourceIndex < 0 || Length < sourceIndex + length)
- {
- throw new IndexOutOfRangeException("sourceIndex");
- }
- if (destinationIndex < 0 || destination.Length < destinationIndex + length)
- {
- throw new IndexOutOfRangeException("destinationIndex");
- }
-
- while (--length >= 0)
- {
- destination[destinationIndex++] = this[sourceIndex++];
- }
- }
-
- /// <summary>
- /// Gets the offset for the specified index.
- /// </summary>
- /// <param name="index">The index.</param>
- /// <returns>The offset.</returns>
- protected int GetOffset(int index)
- {
- return DataSize * index;
- }
- }
-}
+ /// <summary>
+ /// A vector base.
+ /// </summary>
+ /// <typeparam name="T">The element type.</typeparam>
+ [DebuggerDisplay("Length = {Length}; RObjectType = {Type}")]
+ [DebuggerTypeProxy(typeof(VectorDebugView<>))]
+ [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+ public abstract class Vector<T> : SymbolicExpression, IEnumerable<T>
+ {
+ /// <summary>
+ /// Creates a new vector with the specified size.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="type">The element type.</param>
+ /// <param name="length">The length of vector.</param>
+ protected Vector(REngine engine, SymbolicExpressionType type, int length)
+ : base(engine, engine.GetFunction<Rf_allocVector>()(type, length))
+ {
+ if (length <= 0)
+ {
+ throw new ArgumentOutOfRangeException("length");
+ }
+ var empty = new byte[length * DataSize];
+ Marshal.Copy(empty, 0, DataPointer, empty.Length);
+ }
+
+ /// <summary>
+ /// Creates a new vector with the specified values.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="type">The element type.</param>
+ /// <param name="vector">The elements of vector.</param>
+ protected Vector(REngine engine, SymbolicExpressionType type, IEnumerable<T> vector)
+ : base(engine, engine.GetFunction<Rf_allocVector>()(type, vector.Count()))
+ {
+ int index = 0;
+ SetVector(vector.ToArray());
+ //foreach (T element in vector)
+ //{
+ // this[index++] = element;
+ //}
+ }
+
+ /// <summary>
+ /// Creates a new instance for a vector.
+ /// </summary>
+ /// <param name="engine">The <see cref="REngine"/> handling this instance.</param>
+ /// <param name="coerced">The pointer to a vector.</param>
+ protected Vector(REngine engine, IntPtr coerced)
+ : base(engine, coerced)
+ { }
+
+ /// <summary>
+ /// Gets or sets the element at the specified index.
+ /// </summary>
+ /// <param name="index">The zero-based index of the element to get or set.</param>
+ /// <returns>The element at the specified index.</returns>
+ public abstract T this[int index] { get; set; }
+
+ /// <summary>
+ /// Initializes the content of a vector with runtime speed in mind. This method protects the R vector,
then call SetVectorDirect.
+ /// </summary>
+ /// <param name="values">The values to put in the vector. Length must match exactly the vector
size</param>
+ public void SetVector(T[] values)
+ {
+ if(values.Length != this.Length)
+ throw new ArgumentException("The length of the array provided differs from the vector length");
+ using (new ProtectedPointer(this))
+ {
+ SetVectorDirect(values);
+ }
+ }
+
+ /// <summary>
+ /// A method to transfer data from native to .NET managed array equivalents fast.
+ /// </summary>
+ /// <returns>Array of values in the vector</returns>
+ public T[] ToArrayFast()
+ {
+ using (new ProtectedPointer(this))
+ {
+ return GetArrayFast();
+ }
+ }
+
+ protected abstract T[] GetArrayFast();
+
+ /// <summary>
+ /// Initializes the content of a vector with runtime speed in mind. The vector must already be
protected before calling this method.
+ /// </summary>
+ /// <param name="values">The values to put in the vector. Length must match exactly the vector
size</param>
+ protected abstract void SetVectorDirect(T[] values);
+
+ /// <summary>
+ /// Gets or sets the element at the specified name.
+ /// </summary>
+ /// <param name="name">The name of the element to get or set.</param>
+ /// <returns>The element at the specified name.</returns>
+ public virtual T this[string name]
+ {
+ get
+ {
+ if (name == null)
+ {
+ throw new ArgumentNullException("name");
+ }
+ string[] names = Names;
+ if (names == null)
+ {
+ throw new InvalidOperationException();
+ }
+ int index = Array.IndexOf(names, name);
+ return this[index];
+ }
+ set
+ {
+ string[] names = Names;
+ if (names == null)
+ {
+ throw new InvalidOperationException();
+ }
+ int index = Array.IndexOf(names, name);
+ this[index] = value;
+ }
+ }
+
+ /// <summary>
+ /// Gets the number of elements.
+ /// </summary>
+ public int Length
+ {
+ get { return Engine.GetFunction<Rf_length>()(handle); }
+ }
+
+ /// <summary>
+ /// Gets the names of elements.
+ /// </summary>
+ public string[] Names
+ {
+ get
+ {
+ SymbolicExpression namesSymbol = Engine.GetPredefinedSymbol("R_NamesSymbol");
+ SymbolicExpression names = GetAttribute(namesSymbol);
+ if (names == null)
+ {
+ return null;
+ }
+ CharacterVector namesVector = names.AsCharacter();
+ if (namesVector == null)
+ {
+ return null;
+ }
+
+ int length = namesVector.Length;
+ var result = new string[length];
+ namesVector.CopyTo(result, length);
+ return result;
+ }
+ }
+
+ /// <summary>
+ /// Gets the pointer for the first element.
+ /// </summary>
+ protected IntPtr DataPointer
+ {
+ get { return IntPtr.Add(handle, Marshal.SizeOf(typeof(VECTOR_SEXPREC))); }
+ }
+
+ /// <summary>
+ /// Gets the size of an element in byte.
+ /// </summary>
+ protected abstract int DataSize { get; }
+
+ #region IEnumerable<T> Members
+
+ public IEnumerator<T> GetEnumerator()
+ {
+ for (int index = 0; index < Length; index++)
+ {
+ yield return this[index];
+ }
+ }
+
+ IEnumerator IEnumerable.GetEnumerator()
+ {
+ return GetEnumerator();
+ }
+
+ #endregion IEnumerable<T> Members
+
+ /// <summary>
+ /// Copies the elements to the specified array.
+ /// </summary>
+ /// <param name="destination">The destination array.</param>
+ /// <param name="length">The length to copy.</param>
+ /// <param name="sourceIndex">The first index of the vector.</param>
+ /// <param name="destinationIndex">The first index of the destination array.</param>
+ public void CopyTo(T[] destination, int length, int sourceIndex = 0, int destinationIndex = 0)
+ {
+ if (destination == null)
+ {
+ throw new ArgumentNullException("destination");
+ }
+ if (length < 0)
+ {
+ throw new IndexOutOfRangeException("length");
+ }
+ if (sourceIndex < 0 || Length < sourceIndex + length)
+ {
+ throw new IndexOutOfRangeException("sourceIndex");
+ }
+ if (destinationIndex < 0 || destination.Length < destinationIndex + length)
+ {
+ throw new IndexOutOfRangeException("destinationIndex");
+ }
+
+ while (--length >= 0)
+ {
+ destination[destinationIndex++] = this[sourceIndex++];
+ }
+ }
+
+ /// <summary>
+ /// Gets the offset for the specified index.
+ /// </summary>
+ /// <param name="index">The index.</param>
+ /// <returns>The offset.</returns>
+ protected int GetOffset(int index)
+ {
+ return DataSize * index;
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/RDotNet.NativeLibrary/Makefile b/rdotnet/RDotNet.NativeLibrary/Makefile
new file mode 100644
index 0000000..b6cdbcf
--- /dev/null
+++ b/rdotnet/RDotNet.NativeLibrary/Makefile
@@ -0,0 +1,777 @@
+# Makefile.in generated by automake 1.12.4 from Makefile.am.
+# rdotnet/RDotNet.NativeLibrary/Makefile. Generated from Makefile.in by configure.
+
+# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+
+
+
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
+pkgdatadir = $(datadir)/chronojump
+pkgincludedir = $(includedir)/chronojump
+pkglibdir = $(libdir)/chronojump
+pkglibexecdir = $(libexecdir)/chronojump
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = i686-pc-mingw32
+host_triplet = i686-pc-mingw32
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/build/build.environment.mk \
+ $(top_srcdir)/build/build.mk \
+ $(top_srcdir)/build/build.rules.mk
+#am__append_1 = " $(NUNIT_LIBS)"
+subdir = rdotnet/RDotNet.NativeLibrary
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/build/m4/shamrock/expansions.m4 \
+ $(top_srcdir)/build/m4/shamrock/mono.m4 \
+ $(top_srcdir)/build/m4/shamrock/programs.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(moduledir)" "$(DESTDIR)$(desktopdir)" \
+ "$(DESTDIR)$(imagesdir)" "$(DESTDIR)$(logodir)" \
+ "$(DESTDIR)$(logo_48dir)"
+SCRIPTS = $(module_SCRIPTS)
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+DATA = $(desktop_DATA) $(images_DATA) $(logo_DATA) $(logo_48_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = aclocal -Ic:/gstreamer-sdk/0.10/x86/share/aclocal
-IC:/MinGW/msys/1.0/home/chronojump/cerbero/build-tools/share/aclocal
+ACLOCAL_AMFLAGS = -I build/m4/shamrock -I build/m4/shave ${ACLOCAL_FLAGS}
+ALL_LINGUAS =
+AMTAR = $${TAR-tar}
+AR = i686-w64-mingw32-ar
+AUTOCONF = ${SHELL} /usr/home/chronojump/chronojump/missing --run autoconf
+AUTOHEADER = ${SHELL} /usr/home/chronojump/chronojump/missing --run autoheader
+AUTOMAKE = ${SHELL} /usr/home/chronojump/chronojump/missing --run automake-1.12
+AWK = gawk
+CATALOGS =
+CATOBJEXT = .gmo
+CC = i686-w64-mingw32-gcc
+CCDEPMODE = depmode=gcc3
+CESARPLAYER_CFLAGS = -mms-bitfields -Ic:/gstreamer-sdk/0.10/x86/include/gtk-2.0
-Ic:/gstreamer-sdk/0.10/x86/lib/gtk-2.0/include -Ic:/gstreamer-sdk/0.10/x86/include/atk-1.0
-Ic:/gstreamer-sdk/0.10/x86/include/cairo -Ic:/gstreamer-sdk/0.10/x86/include/gdk-pixbuf-2.0
-Ic:/gstreamer-sdk/0.10/x86/include/pango-1.0 -Ic:/gstreamer-sdk/0.10/x86/include/glib-2.0
-Ic:/gstreamer-sdk/0.10/x86/lib/glib-2.0/include -Ic:/gstreamer-sdk/0.10/x86/include/pixman-1
-Ic:/gstreamer-sdk/0.10/x86/include/fontconfig -Ic:/gstreamer-sdk/0.10/x86/include/freetype2
-Ic:/gstreamer-sdk/0.10/x86/include/libpng15 -Ic:/gstreamer-sdk/0.10/x86/include/gstreamer-0.10
-Ic:/gstreamer-sdk/0.10/x86/include/libxml2
+CESARPLAYER_LIBS = -Lc:/gstreamer-sdk/0.10/x86/lib -lgtk-win32-2.0 -latk-1.0 -lgdk-win32-2.0
-lpangowin32-1.0 -lgdi32 -lpangocairo-1.0 -lgdk_pixbuf-2.0 -lpango-1.0 -lcairo -lgio-2.0 -lgstaudio-0.10
-lgstvideo-0.10 -lgstpbutils-0.10 -lgstinterfaces-0.10 -lgstapp-0.10 -lgstbase-0.10 -lgsttag-0.10
-lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lgthread-2.0 -lxml2 -lglib-2.0 -lintl
+CFLAGS = -Wall -g -O2 -DWINVER=0x0501
+CPP = i686-w64-mingw32-cpp
+CPPFLAGS =
+CYGPATH_W = echo
+DATADIRNAME = share
+DEFS = -DPACKAGE_NAME=\"chronojump\" -DPACKAGE_TARNAME=\"chronojump\" -DPACKAGE_VERSION=\"1.3.9\"
-DPACKAGE_STRING=\"chronojump\ 1.3.9\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"chronojump\"
-DVERSION=\"1.3.9\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1
-DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1
-DHAVE_UNISTD_H=1 -DLT_OBJDIR=\".libs/\" -DGETTEXT_PACKAGE=\"chronojump\" -DHAVE_LOCALE_H=1
-DHAVE_BIND_TEXTDOMAIN_CODESET=1 -DHAVE_GETTEXT=1 -DHAVE_DCGETTEXT=1 -DENABLE_NLS=1 -DOSTYPE_WINDOWS=1
+DEPDIR = .deps
+DLLTOOL = i686-w64-mingw32-dlltool
+DSYMUTIL =
+DUMPBIN =
+ECHO_C =
+ECHO_N = -n
+ECHO_T =
+EGREP = /bin/grep -E
+EXEEXT = .exe
+FGREP = /bin/grep -F
+GETTEXT_PACKAGE = chronojump
+GLADE_SHARP_20_CFLAGS = -I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/pango-api.xml
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/atk-api.xml
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/gdk-api.xml
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/gtk-api.xml
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/glib-api.xml
+GLADE_SHARP_20_LIBS = -r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/glade-sharp.dll
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/pango-sharp.dll
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/atk-sharp.dll
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/gdk-sharp.dll
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/gtk-sharp.dll
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/glib-sharp.dll
+GLIB_SHARP_20_CFLAGS = -I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/glib-api.xml
+GLIB_SHARP_20_LIBS = -r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/glib-sharp.dll
+GMOFILES =
+GMSGFMT = /usr/home/chronojump/cerbero/build-tools/bin/msgfmt
+GREP = /bin/grep
+GTK_SHARP_20_CFLAGS = -I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/pango-api.xml
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/atk-api.xml
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/gdk-api.xml
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/gtk-api.xml
-I:c:/gstreamer-sdk/0.10/x86/share/gapi-2.0/glib-api.xml
+GTK_SHARP_20_LIBS = -r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/pango-sharp.dll
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/atk-sharp.dll
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/gdk-sharp.dll
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/gtk-sharp.dll
-r:c:/gstreamer-sdk/0.10/x86/lib/mono/gtk-sharp-2.0/glib-sharp.dll
+INSTALL = /bin/install -c
+INSTALL_DATA = ${INSTALL} -m 644
+INSTALL_PROGRAM = ${INSTALL}
+INSTALL_SCRIPT = ${INSTALL}
+INSTALL_STRIP_PROGRAM = $(install_sh) -c -s
+INSTOBJEXT = .mo
+INTLLIBS = -lintl
+INTLTOOL_EXTRACT = /usr/home/chronojump/cerbero/build-tools/bin/intltool-extract
+INTLTOOL_MERGE = /usr/home/chronojump/cerbero/build-tools/bin/intltool-merge
+INTLTOOL_PERL = /bin/perl
+INTLTOOL_UPDATE = /usr/home/chronojump/cerbero/build-tools/bin/intltool-update
+LD = i686-w64-mingw32-ld
+LDFLAGS = -Lc:/gstreamer-sdk/0.10/x86/lib
+LIBOBJS =
+LIBS =
+LIBTOOL = $(SHELL) $(top_builddir)/libtool
+LIPO =
+LN_S = cp -p
+LTLIBOBJS =
+MAKEINFO = ${SHELL} /usr/home/chronojump/chronojump/missing --run makeinfo
+MANIFEST_TOOL = :
+MCS = /c/gstreamer-sdk/0.10/x86/bin/dmcs
+MKDIR_P = /bin/mkdir -p
+MKINSTALLDIRS = ./mkinstalldirs
+MONO = /c/gstreamer-sdk/0.10/x86/bin/mono
+MONO_MODULE_CFLAGS =
+MONO_MODULE_LIBS =
+MSGFMT = msgfmt
+MSGFMT_OPTS = -c
+MSGMERGE = /usr/home/chronojump/cerbero/build-tools/bin/msgmerge
+NM = i686-w64-mingw32-nm
+NMEDIT =
+OBJDUMP = objdump
+OBJEXT = o
+OTOOL =
+OTOOL64 =
+PACKAGE = chronojump
+PACKAGE_BUGREPORT =
+PACKAGE_NAME = chronojump
+PACKAGE_STRING = chronojump 1.3.9
+PACKAGE_TARNAME = chronojump
+PACKAGE_URL =
+PACKAGE_VERSION = 1.3.9
+PATH_SEPARATOR = :
+PKG_CONFIG = /usr/home/chronojump/cerbero/build-tools/bin/pkg-config
+PKG_CONFIG_LIBDIR = c:/gstreamer-sdk/0.10/x86/lib/pkgconfig
+PKG_CONFIG_PATH = c:/gstreamer-sdk/0.10/x86/share/pkgconfig
+POFILES =
+POSUB = po
+PO_IN_DATADIR_FALSE =
+PO_IN_DATADIR_TRUE =
+PYTHON = /c/Python27/python
+PYTHON_EXEC_PREFIX = ${exec_prefix}
+PYTHON_PLATFORM = win32
+PYTHON_PREFIX = ${prefix}
+PYTHON_VERSION = 2.7
+RANLIB = i686-w64-mingw32-ranlib
+SED = /bin/sed
+SET_MAKE =
+SHELL = /bin/sh
+STRIP = i686-w64-mingw32-strip
+USE_NLS = yes
+VERSION = 1.3.9
+XGETTEXT = /usr/home/chronojump/cerbero/build-tools/bin/xgettext
+abs_builddir = /usr/home/chronojump/chronojump/rdotnet/RDotNet.NativeLibrary
+abs_srcdir = /usr/home/chronojump/chronojump/rdotnet/RDotNet.NativeLibrary
+abs_top_builddir = /usr/home/chronojump/chronojump
+abs_top_srcdir = /usr/home/chronojump/chronojump
+ac_ct_AR =
+ac_ct_CC = i686-w64-mingw32-gcc
+ac_ct_DUMPBIN =
+am__include = include
+am__leading_dot = .
+am__quote =
+am__tar = $${TAR-tar} chof - "$$tardir"
+am__untar = $${TAR-tar} xf -
+bindir = ${exec_prefix}/bin
+build = i686-pc-mingw32
+build_alias =
+build_cpu = i686
+build_os = mingw32
+build_vendor = pc
+builddir = .
+datadir = ${datarootdir}
+datarootdir = ${prefix}/share
+docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
+dvidir = ${docdir}
+exec_prefix = /c/gstreamer-sdk/0.10/x86
+expanded_bindir = /c/gstreamer-sdk/0.10/x86/bin
+expanded_datadir = /c/gstreamer-sdk/0.10/x86/share
+expanded_libdir = /c/gstreamer-sdk/0.10/x86/lib
+host = i686-pc-mingw32
+host_alias =
+host_cpu = i686
+host_os = mingw32
+host_vendor = pc
+htmldir = ${docdir}
+includedir = ${prefix}/include
+infodir = ${datarootdir}/info
+install_sh = ${SHELL} /usr/home/chronojump/chronojump/install-sh
+libdir = ${exec_prefix}/lib
+libexecdir = ${exec_prefix}/libexec
+localedir = ${datarootdir}/locale
+localstatedir = ${prefix}/var
+mandir = ${datarootdir}/man
+mkdir_p = $(MKDIR_P)
+oldincludedir = /usr/include
+pdfdir = ${docdir}
+pkgpyexecdir = ${pyexecdir}/chronojump
+pkgpythondir = ${pythondir}/chronojump
+prefix = /c/gstreamer-sdk/0.10/x86
+program_transform_name = s,x,x,
+psdir = ${docdir}
+pyexecdir = ${exec_prefix}\Lib\site-packages
+pythondir = ${prefix}\Lib\site-packages
+sbindir = ${exec_prefix}/sbin
+sharedstatedir = ${prefix}/com
+srcdir = .
+sysconfdir = ${prefix}/etc
+target_alias =
+top_build_prefix = ../../
+top_builddir = ../..
+top_srcdir = ../..
+ASSEMBLY = RDotNet.NativeLibrary
+TARGET = library
+LINK = $(REF_DEP_RDOTNET_NATIVE) $(am__append_1)
+SOURCES = \
+ Properties/AssemblyInfo.cs \
+ UnmanagedDll.cs \
+ NativeUtility.cs
+
+#ASSEMBLY_BUILD_FLAGS = -define:UNIX
+
+# Initializers
+MONO_BASE_PATH =
+MONO_ADDINS_PATH =
+
+# Install Paths
+DEFAULT_INSTALL_DIR = $(pkglibdir)
+
+# External libraries to link against, generated from configure
+LINK_SYSTEM = -r:System
+LINK_SYSTEM_CORE = -r:System.Core
+LINK_SYSTEM_DATA_DATASETEXTENSTIONS = -r:System.Data.DataSetExtensions
+LINK_SYSTEMDATA = -r:System.Data
+LINK_SYSTEM_DRAWING = -r:System.Drawing
+LINK_SYSTEM_NUMERICS = -r:System.Numerics
+LINK_SYSTEM_XML = -r:System.Xml
+LINK_SYSTEM_XML_LINQ = -r:System.Xml.Linq
+LINK_SYSTEM_WEB_SERVICES = -r:System.Web.Services
+LINK_MICROSOFT_CSHARP = -r:Microsoft.CSharp
+LINK_CAIRO = -r:Mono.Cairo
+LINK_MONO_POSIX = -r:Mono.Posix
+LINK_MONO_DATA_SQLITE = -r:Mono.Data.Sqlite
+LINK_GLIB = $(GLIB_SHARP_20_LIBS)
+LINK_GTK = $(GTK_SHARP_20_LIBS)
+LINK_GLADE = $(GLADE_SHARP_20_LIBS)
+LINK_CESARPLAYER = -r:$(DIR_BIN)/CesarPlayer.dll
+LINK_RDOTNET = -r:$(DIR_BIN)/RDotNet.dll
+LINK_RDOTNET_NATIVE = -r:$(DIR_BIN)/RDotNet.NativeLibrary.dll
+REF_DEP_CHRONOJUMP = \
+ $(LINK_SYSTEM) \
+ $(LINK_SYSTEMDATA) \
+ $(LINK_SYSTEM_DRAWING) \
+ $(LINK_SYSTEM_WEB_SERVICES) \
+ $(LINK_SYSTEM_XML) \
+ $(LINK_MONO_POSIX) \
+ $(LINK_MONO_DATA_SQLITE) \
+ $(LINK_GLIB) \
+ $(LINK_GLADE) \
+ $(LINK_GTK) \
+ $(LINK_CESARPLAYER) \
+ $(LINK_RDOTNET) \
+ $(LINK_RDOTNET_NATIVE)
+
+REF_DEP_CESARPLAYER = \
+ $(LINK_SYSTEM) \
+ $(LINK_MONO_POSIX) \
+ $(LINK_GLIB) \
+ $(LINK_GTK)
+
+REF_DEP_RDOTNET_NATIVE = \
+ $(LINK_SYSTEM) \
+ $(LINK_SYSTEM_CORE) \
+ $(LINK_SYSTEM_DATA_DATASETEXTENSTIONS) \
+ $(LINK_SYSTEM_XML) \
+ $(LINK_SYSTEM_XML_LINQ) \
+ $(LINK_MICROSOFT_CSHARP)
+
+REF_DEP_RDOTNET = \
+ $(LINK_SYSTEM) \
+ $(LINK_SYSTEM_CORE) \
+ $(LINK_SYSTEM_DATA_DATASETEXTENSTIONS) \
+ $(LINK_SYSTEM_NUMERICS) \
+ $(LINK_SYSTEM_XML) \
+ $(LINK_SYSTEM_XML_LINQ) \
+ $(LINK_MICROSOFT_CSHARP) \
+ $(LINK_RDOTNET_NATIVE)
+
+REF_DEP_CHRONOJUMP_SERVER = \
+ $(LINK_SYSTEM) \
+ $(LINK_SYSTEMDATA) \
+ $(LINK_SYSTEM_WEB_SERVICES) \
+ $(LINK_MONO_POSIX) \
+ $(LINK_MONO_DATA_SQLITE)
+
+DIR_BIN = $(top_builddir)/bin
+
+# Cute hack to replace a space with something
+colon := :
+empty :=
+space := $(empty) $(empty)
+
+# Build path to allow running uninstalled
+RUN_PATH = $(subst $(space),$(colon), $(MONO_BASE_PATH))
+UNIQUE_FILTER_PIPE = tr [:space:] \\n | sort | uniq
+BUILD_DATA_DIR = $(top_builddir)/bin/share/$(PACKAGE)
+SOURCES_BUILD = $(addprefix $(srcdir)/, $(SOURCES))
+#SOURCES_BUILD += $(top_srcdir)/src/AssemblyInfo.cs
+SUBST = ,
+RESOURCES_D := $(foreach res,$(RESOURCES),$(firstword $(subst $(SUBST), ,$(strip $(res)))))
+RESOURCES_DIST := $(addprefix $(srcdir)/, $(RESOURCES_D))
+RESOURCES_EXPANDED = $(addprefix $(srcdir)/, $(RESOURCES))
+RESOURCES_BUILD = $(foreach resource, $(RESOURCES_EXPANDED), \
+ -resource:$(resource))
+
+INSTALL_ICONS = $(top_srcdir)/build/private-icon-theme-installer "$(mkinstalldirs)" "$(INSTALL_DATA)"
+ASSEMBLY_EXTENSION = $(strip $(patsubst library, dll, $(TARGET)))
+ASSEMBLY_FILE = $(top_builddir)/bin/$(ASSEMBLY).$(ASSEMBLY_EXTENSION)
+INSTALL_DIR_RESOLVED = $(firstword $(subst , $(DEFAULT_INSTALL_DIR), $(INSTALL_DIR)))
+#ENABLE_TESTS_FLAG = "-define:ENABLE_TESTS"
+FILTERED_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE))
+DEP_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE) | sed s,-r:,,g | grep '$(top_builddir)/bin/')
+OUTPUT_FILES = \
+ $(ASSEMBLY_FILE) \
+ $(ASSEMBLY_FILE).mdb \
+ $(DLLCONFIG)
+
+moduledir = $(INSTALL_DIR_RESOLVED)
+module_SCRIPTS = $(OUTPUT_FILES)
+desktopdir = $(datadir)/applications
+desktop_in_files = $(DESKTOP_FILE)
+desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
+imagesdir = ${datarootdir}/chronojump/images
+images_DATA = $(IMAGES)
+logo_48dir = ${datarootdir}/icons/hicolor/48x48/apps
+logo_48_DATA = $(LOGO_48)
+logodir = ${datarootdir}/icons/hicolor/scalable/apps
+logo_DATA = $(LOGO)
+EXTRA_DIST = $(SOURCES_BUILD) $(RESOURCES_DIST) $(THEME_ICONS_SOURCE) $(IMAGES) $(LOGO) $(LOGO_48)
$(desktop_in_files)
+CLEANFILES = $(OUTPUT_FILES)
+DISTCLEANFILES = *.pidb $(desktop_DATA)
+MAINTAINERCLEANFILES = Makefile.in
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/build/build.mk
$(top_srcdir)/build/build.environment.mk $(top_srcdir)/build/build.rules.mk $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign rdotnet/RDotNet.NativeLibrary/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign rdotnet/RDotNet.NativeLibrary/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+$(top_srcdir)/build/build.mk $(top_srcdir)/build/build.environment.mk $(top_srcdir)/build/build.rules.mk:
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-moduleSCRIPTS: $(module_SCRIPTS)
+ @$(NORMAL_INSTALL)
+ @list='$(module_SCRIPTS)'; test -n "$(moduledir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(moduledir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(moduledir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(moduledir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(moduledir)$$dir" || exit $$?; \
+ } \
+ ; done
+
+uninstall-moduleSCRIPTS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(module_SCRIPTS)'; test -n "$(moduledir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(moduledir)'; $(am__uninstall_files_from_dir)
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-desktopDATA: $(desktop_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(desktopdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(desktopdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \
+ done
+
+uninstall-desktopDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(desktopdir)'; $(am__uninstall_files_from_dir)
+install-imagesDATA: $(images_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(imagesdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(imagesdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(imagesdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(imagesdir)" || exit $$?; \
+ done
+
+uninstall-imagesDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(imagesdir)'; $(am__uninstall_files_from_dir)
+install-logoDATA: $(logo_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(logo_DATA)'; test -n "$(logodir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(logodir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(logodir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(logodir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(logodir)" || exit $$?; \
+ done
+
+uninstall-logoDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(logo_DATA)'; test -n "$(logodir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(logodir)'; $(am__uninstall_files_from_dir)
+install-logo_48DATA: $(logo_48_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(logo_48_DATA)'; test -n "$(logo_48dir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(logo_48dir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(logo_48dir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(logo_48dir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(logo_48dir)" || exit $$?; \
+ done
+
+uninstall-logo_48DATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(logo_48_DATA)'; test -n "$(logo_48dir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(logo_48dir)'; $(am__uninstall_files_from_dir)
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(SCRIPTS) $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(moduledir)" "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(imagesdir)"
"$(DESTDIR)$(logodir)" "$(DESTDIR)$(logo_48dir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-desktopDATA install-imagesDATA \
+ install-logoDATA install-logo_48DATA install-moduleSCRIPTS
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-desktopDATA uninstall-imagesDATA \
+ uninstall-logoDATA uninstall-logo_48DATA \
+ uninstall-moduleSCRIPTS
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) uninstall-hook
+.MAKE: install-am install-data-am install-strip uninstall-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-data-hook \
+ install-desktopDATA install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am \
+ install-imagesDATA install-info install-info-am \
+ install-logoDATA install-logo_48DATA install-man \
+ install-moduleSCRIPTS install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am uninstall uninstall-am uninstall-desktopDATA \
+ uninstall-hook uninstall-imagesDATA uninstall-logoDATA \
+ uninstall-logo_48DATA uninstall-moduleSCRIPTS
+
+
+%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; LC_ALL=C $(INTLTOOL_MERGE)
-d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< $@
+
+all: $(ASSEMBLY_FILE)
+
+run:
+ @pushd $(top_builddir); \
+ make run; \
+ popd;
+
+test:
+ @pushd $(top_builddir)/tests; \
+ make $(ASSEMBLY); \
+ popd;
+
+build-debug:
+ @echo $(DEP_LINK)
+
+$(ASSEMBLY_FILE).mdb: $(ASSEMBLY_FILE)
+
+$(ASSEMBLY_FILE): $(SOURCES_BUILD) $(DEP_LINK)
+ @mkdir -p $(top_builddir)/bin
+ $(MCS) \
+ $(GMCS_FLAGS) \
+ $(ASSEMBLY_BUILD_FLAGS) \
+ -nowarn:0278 -nowarn:0078 $$warn -unsafe \
+ -define:HAVE_GTK -codepage:utf8 \
+ -debug -target:$(TARGET) -out:$@ \
+ $(BUILD_DEFINES) $(ENABLE_TESTS_FLAG) $(ENABLE_ATK_FLAG) \
+ $(FILTERED_LINK) $(RESOURCES_BUILD) $(SOURCES_BUILD)
+ @if [ ! -z "$(EXTRA_BUNDLE)" ]; then \
+ cp $(EXTRA_BUNDLE) $(top_builddir)/bin; \
+ fi;
+
+#theme-icons: $(THEME_ICONS_SOURCE)
+# @$(INSTALL_ICONS) -il "$(BUILD_DATA_DIR)" "$(srcdir)" $(THEME_ICONS_RELATIVE)
+
+install-data-hook: $(THEME_ICONS_SOURCE)
+ @$(INSTALL_ICONS) -i "$(DESTDIR)$(pkgdatadir)" "$(srcdir)" $(THEME_ICONS_RELATIVE)
+ $(EXTRA_INSTALL_DATA_HOOK)
+
+uninstall-hook: $(THEME_ICONS_SOURCE)
+ @$(INSTALL_ICONS) -u "$(DESTDIR)$(pkgdatadir)" "$(srcdir)" $(THEME_ICONS_RELATIVE)
+ $(EXTRA_UNINSTALL_HOOK)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/rdotnet/RDotNet.NativeLibrary/Makefile.in b/rdotnet/RDotNet.NativeLibrary/Makefile.in
new file mode 100644
index 0000000..f2eabc6
--- /dev/null
+++ b/rdotnet/RDotNet.NativeLibrary/Makefile.in
@@ -0,0 +1,777 @@
+# Makefile.in generated by automake 1.12.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2012 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+ SET_MAKE@
+
+
+VPATH = @srcdir@
+am__make_dryrun = \
+ { \
+ am__dry=no; \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ echo 'am--echo: ; @echo "AM" OK' | $(MAKE) -f - 2>/dev/null \
+ | grep '^AM OK$$' >/dev/null || am__dry=yes;; \
+ *) \
+ for am__flg in $$MAKEFLAGS; do \
+ case $$am__flg in \
+ *=*|--*) ;; \
+ *n*) am__dry=yes; break;; \
+ esac; \
+ done;; \
+ esac; \
+ test $$am__dry = yes; \
+ }
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
+ $(top_srcdir)/build/build.environment.mk \
+ $(top_srcdir)/build/build.mk \
+ $(top_srcdir)/build/build.rules.mk
+ ENABLE_TESTS_TRUE@am__append_1 = " $(NUNIT_LIBS)"
+subdir = rdotnet/RDotNet.NativeLibrary
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/build/m4/shamrock/expansions.m4 \
+ $(top_srcdir)/build/m4/shamrock/mono.m4 \
+ $(top_srcdir)/build/m4/shamrock/programs.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+am__installdirs = "$(DESTDIR)$(moduledir)" "$(DESTDIR)$(desktopdir)" \
+ "$(DESTDIR)$(imagesdir)" "$(DESTDIR)$(logodir)" \
+ "$(DESTDIR)$(logo_48dir)"
+SCRIPTS = $(module_SCRIPTS)
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+DATA = $(desktop_DATA) $(images_DATA) $(logo_DATA) $(logo_48_DATA)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CESARPLAYER_CFLAGS = @CESARPLAYER_CFLAGS@
+CESARPLAYER_LIBS = @CESARPLAYER_LIBS@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLADE_SHARP_20_CFLAGS = @GLADE_SHARP_20_CFLAGS@
+GLADE_SHARP_20_LIBS = @GLADE_SHARP_20_LIBS@
+GLIB_SHARP_20_CFLAGS = @GLIB_SHARP_20_CFLAGS@
+GLIB_SHARP_20_LIBS = @GLIB_SHARP_20_LIBS@
+GMOFILES = @GMOFILES@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+GTK_SHARP_20_CFLAGS = @GTK_SHARP_20_CFLAGS@
+GTK_SHARP_20_LIBS = @GTK_SHARP_20_LIBS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INSTOBJEXT = @INSTOBJEXT@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MCS = @MCS@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MONO = @MONO@
+MONO_MODULE_CFLAGS = @MONO_MODULE_CFLAGS@
+MONO_MODULE_LIBS = @MONO_MODULE_LIBS@
+MSGFMT = @MSGFMT@
+MSGFMT_OPTS = @MSGFMT_OPTS@
+MSGMERGE = @MSGMERGE@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POFILES = @POFILES@
+POSUB = @POSUB@
+PO_IN_DATADIR_FALSE = @PO_IN_DATADIR_FALSE@
+PO_IN_DATADIR_TRUE = @PO_IN_DATADIR_TRUE@
+PYTHON = @PYTHON@
+PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@
+PYTHON_PLATFORM = @PYTHON_PLATFORM@
+PYTHON_PREFIX = @PYTHON_PREFIX@
+PYTHON_VERSION = @PYTHON_VERSION@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+USE_NLS = @USE_NLS@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+expanded_bindir = @expanded_bindir@
+expanded_datadir = @expanded_datadir@
+expanded_libdir = @expanded_libdir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+pkgpyexecdir = @pkgpyexecdir@
+pkgpythondir = @pkgpythondir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+pyexecdir = @pyexecdir@
+pythondir = @pythondir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+ASSEMBLY = RDotNet.NativeLibrary
+TARGET = library
+LINK = $(REF_DEP_RDOTNET_NATIVE) $(am__append_1)
+SOURCES = \
+ Properties/AssemblyInfo.cs \
+ UnmanagedDll.cs \
+ NativeUtility.cs
+
+ OSTYPE_WINDOWS_FALSE@ASSEMBLY_BUILD_FLAGS = -define:UNIX
+
+# Initializers
+MONO_BASE_PATH =
+MONO_ADDINS_PATH =
+
+# Install Paths
+DEFAULT_INSTALL_DIR = $(pkglibdir)
+
+# External libraries to link against, generated from configure
+LINK_SYSTEM = -r:System
+LINK_SYSTEM_CORE = -r:System.Core
+LINK_SYSTEM_DATA_DATASETEXTENSTIONS = -r:System.Data.DataSetExtensions
+LINK_SYSTEMDATA = -r:System.Data
+LINK_SYSTEM_DRAWING = -r:System.Drawing
+LINK_SYSTEM_NUMERICS = -r:System.Numerics
+LINK_SYSTEM_XML = -r:System.Xml
+LINK_SYSTEM_XML_LINQ = -r:System.Xml.Linq
+LINK_SYSTEM_WEB_SERVICES = -r:System.Web.Services
+LINK_MICROSOFT_CSHARP = -r:Microsoft.CSharp
+LINK_CAIRO = -r:Mono.Cairo
+LINK_MONO_POSIX = -r:Mono.Posix
+LINK_MONO_DATA_SQLITE = -r:Mono.Data.Sqlite
+LINK_GLIB = $(GLIB_SHARP_20_LIBS)
+LINK_GTK = $(GTK_SHARP_20_LIBS)
+LINK_GLADE = $(GLADE_SHARP_20_LIBS)
+LINK_CESARPLAYER = -r:$(DIR_BIN)/CesarPlayer.dll
+LINK_RDOTNET = -r:$(DIR_BIN)/RDotNet.dll
+LINK_RDOTNET_NATIVE = -r:$(DIR_BIN)/RDotNet.NativeLibrary.dll
+REF_DEP_CHRONOJUMP = \
+ $(LINK_SYSTEM) \
+ $(LINK_SYSTEMDATA) \
+ $(LINK_SYSTEM_DRAWING) \
+ $(LINK_SYSTEM_WEB_SERVICES) \
+ $(LINK_SYSTEM_XML) \
+ $(LINK_MONO_POSIX) \
+ $(LINK_MONO_DATA_SQLITE) \
+ $(LINK_GLIB) \
+ $(LINK_GLADE) \
+ $(LINK_GTK) \
+ $(LINK_CESARPLAYER) \
+ $(LINK_RDOTNET) \
+ $(LINK_RDOTNET_NATIVE)
+
+REF_DEP_CESARPLAYER = \
+ $(LINK_SYSTEM) \
+ $(LINK_MONO_POSIX) \
+ $(LINK_GLIB) \
+ $(LINK_GTK)
+
+REF_DEP_RDOTNET_NATIVE = \
+ $(LINK_SYSTEM) \
+ $(LINK_SYSTEM_CORE) \
+ $(LINK_SYSTEM_DATA_DATASETEXTENSTIONS) \
+ $(LINK_SYSTEM_XML) \
+ $(LINK_SYSTEM_XML_LINQ) \
+ $(LINK_MICROSOFT_CSHARP)
+
+REF_DEP_RDOTNET = \
+ $(LINK_SYSTEM) \
+ $(LINK_SYSTEM_CORE) \
+ $(LINK_SYSTEM_DATA_DATASETEXTENSTIONS) \
+ $(LINK_SYSTEM_NUMERICS) \
+ $(LINK_SYSTEM_XML) \
+ $(LINK_SYSTEM_XML_LINQ) \
+ $(LINK_MICROSOFT_CSHARP) \
+ $(LINK_RDOTNET_NATIVE)
+
+REF_DEP_CHRONOJUMP_SERVER = \
+ $(LINK_SYSTEM) \
+ $(LINK_SYSTEMDATA) \
+ $(LINK_SYSTEM_WEB_SERVICES) \
+ $(LINK_MONO_POSIX) \
+ $(LINK_MONO_DATA_SQLITE)
+
+DIR_BIN = $(top_builddir)/bin
+
+# Cute hack to replace a space with something
+colon := :
+empty :=
+space := $(empty) $(empty)
+
+# Build path to allow running uninstalled
+RUN_PATH = $(subst $(space),$(colon), $(MONO_BASE_PATH))
+UNIQUE_FILTER_PIPE = tr [:space:] \\n | sort | uniq
+BUILD_DATA_DIR = $(top_builddir)/bin/share/$(PACKAGE)
+SOURCES_BUILD = $(addprefix $(srcdir)/, $(SOURCES))
+#SOURCES_BUILD += $(top_srcdir)/src/AssemblyInfo.cs
+SUBST = ,
+RESOURCES_D := $(foreach res,$(RESOURCES),$(firstword $(subst $(SUBST), ,$(strip $(res)))))
+RESOURCES_DIST := $(addprefix $(srcdir)/, $(RESOURCES_D))
+RESOURCES_EXPANDED = $(addprefix $(srcdir)/, $(RESOURCES))
+RESOURCES_BUILD = $(foreach resource, $(RESOURCES_EXPANDED), \
+ -resource:$(resource))
+
+INSTALL_ICONS = $(top_srcdir)/build/private-icon-theme-installer "$(mkinstalldirs)" "$(INSTALL_DATA)"
+ASSEMBLY_EXTENSION = $(strip $(patsubst library, dll, $(TARGET)))
+ASSEMBLY_FILE = $(top_builddir)/bin/$(ASSEMBLY).$(ASSEMBLY_EXTENSION)
+INSTALL_DIR_RESOLVED = $(firstword $(subst , $(DEFAULT_INSTALL_DIR), $(INSTALL_DIR)))
+ ENABLE_TESTS_TRUE@ENABLE_TESTS_FLAG = "-define:ENABLE_TESTS"
+FILTERED_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE))
+DEP_LINK = $(shell echo "$(LINK)" | $(UNIQUE_FILTER_PIPE) | sed s,-r:,,g | grep '$(top_builddir)/bin/')
+OUTPUT_FILES = \
+ $(ASSEMBLY_FILE) \
+ $(ASSEMBLY_FILE).mdb \
+ $(DLLCONFIG)
+
+moduledir = $(INSTALL_DIR_RESOLVED)
+module_SCRIPTS = $(OUTPUT_FILES)
+desktopdir = $(datadir)/applications
+desktop_in_files = $(DESKTOP_FILE)
+desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
+imagesdir = @datadir@/@PACKAGE@/images
+images_DATA = $(IMAGES)
+logo_48dir = @datadir@/icons/hicolor/48x48/apps
+logo_48_DATA = $(LOGO_48)
+logodir = @datadir@/icons/hicolor/scalable/apps
+logo_DATA = $(LOGO)
+EXTRA_DIST = $(SOURCES_BUILD) $(RESOURCES_DIST) $(THEME_ICONS_SOURCE) $(IMAGES) $(LOGO) $(LOGO_48)
$(desktop_in_files)
+CLEANFILES = $(OUTPUT_FILES)
+DISTCLEANFILES = *.pidb $(desktop_DATA)
+MAINTAINERCLEANFILES = Makefile.in
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(top_srcdir)/build/build.mk
$(top_srcdir)/build/build.environment.mk $(top_srcdir)/build/build.rules.mk $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign rdotnet/RDotNet.NativeLibrary/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign rdotnet/RDotNet.NativeLibrary/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+$(top_srcdir)/build/build.mk $(top_srcdir)/build/build.environment.mk $(top_srcdir)/build/build.rules.mk:
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+install-moduleSCRIPTS: $(module_SCRIPTS)
+ @$(NORMAL_INSTALL)
+ @list='$(module_SCRIPTS)'; test -n "$(moduledir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(moduledir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(moduledir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n' \
+ -e 'h;s|.*|.|' \
+ -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+ if (++n[d] == $(am__install_max)) { \
+ print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+ else { print "f", d "/" $$4, $$1 } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(moduledir)$$dir'"; \
+ $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(moduledir)$$dir" || exit $$?; \
+ } \
+ ; done
+
+uninstall-moduleSCRIPTS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(module_SCRIPTS)'; test -n "$(moduledir)" || exit 0; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 's,.*/,,;$(transform)'`; \
+ dir='$(DESTDIR)$(moduledir)'; $(am__uninstall_files_from_dir)
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+install-desktopDATA: $(desktop_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(desktopdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(desktopdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(desktopdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(desktopdir)" || exit $$?; \
+ done
+
+uninstall-desktopDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(desktop_DATA)'; test -n "$(desktopdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(desktopdir)'; $(am__uninstall_files_from_dir)
+install-imagesDATA: $(images_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(imagesdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(imagesdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(imagesdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(imagesdir)" || exit $$?; \
+ done
+
+uninstall-imagesDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(images_DATA)'; test -n "$(imagesdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(imagesdir)'; $(am__uninstall_files_from_dir)
+install-logoDATA: $(logo_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(logo_DATA)'; test -n "$(logodir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(logodir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(logodir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(logodir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(logodir)" || exit $$?; \
+ done
+
+uninstall-logoDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(logo_DATA)'; test -n "$(logodir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(logodir)'; $(am__uninstall_files_from_dir)
+install-logo_48DATA: $(logo_48_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(logo_48_DATA)'; test -n "$(logo_48dir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(logo_48dir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(logo_48dir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(logo_48dir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(logo_48dir)" || exit $$?; \
+ done
+
+uninstall-logo_48DATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(logo_48_DATA)'; test -n "$(logo_48dir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(logo_48dir)'; $(am__uninstall_files_from_dir)
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(SCRIPTS) $(DATA)
+installdirs:
+ for dir in "$(DESTDIR)$(moduledir)" "$(DESTDIR)$(desktopdir)" "$(DESTDIR)$(imagesdir)"
"$(DESTDIR)$(logodir)" "$(DESTDIR)$(logo_48dir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+ -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-desktopDATA install-imagesDATA \
+ install-logoDATA install-logo_48DATA install-moduleSCRIPTS
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) install-data-hook
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-desktopDATA uninstall-imagesDATA \
+ uninstall-logoDATA uninstall-logo_48DATA \
+ uninstall-moduleSCRIPTS
+ @$(NORMAL_INSTALL)
+ $(MAKE) $(AM_MAKEFLAGS) uninstall-hook
+.MAKE: install-am install-data-am install-strip uninstall-am
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-data-hook \
+ install-desktopDATA install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am \
+ install-imagesDATA install-info install-info-am \
+ install-logoDATA install-logo_48DATA install-man \
+ install-moduleSCRIPTS install-pdf install-pdf-am install-ps \
+ install-ps-am install-strip installcheck installcheck-am \
+ installdirs maintainer-clean maintainer-clean-generic \
+ mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
+ ps ps-am uninstall uninstall-am uninstall-desktopDATA \
+ uninstall-hook uninstall-imagesDATA uninstall-logoDATA \
+ uninstall-logo_48DATA uninstall-moduleSCRIPTS
+
+
+ INTLTOOL_DESKTOP_RULE@
+
+all: $(ASSEMBLY_FILE)
+
+run:
+ @pushd $(top_builddir); \
+ make run; \
+ popd;
+
+test:
+ @pushd $(top_builddir)/tests; \
+ make $(ASSEMBLY); \
+ popd;
+
+build-debug:
+ @echo $(DEP_LINK)
+
+$(ASSEMBLY_FILE).mdb: $(ASSEMBLY_FILE)
+
+$(ASSEMBLY_FILE): $(SOURCES_BUILD) $(DEP_LINK)
+ @mkdir -p $(top_builddir)/bin
+ $(MCS) \
+ $(GMCS_FLAGS) \
+ $(ASSEMBLY_BUILD_FLAGS) \
+ -nowarn:0278 -nowarn:0078 $$warn -unsafe \
+ -define:HAVE_GTK -codepage:utf8 \
+ -debug -target:$(TARGET) -out:$@ \
+ $(BUILD_DEFINES) $(ENABLE_TESTS_FLAG) $(ENABLE_ATK_FLAG) \
+ $(FILTERED_LINK) $(RESOURCES_BUILD) $(SOURCES_BUILD)
+ @if [ ! -z "$(EXTRA_BUNDLE)" ]; then \
+ cp $(EXTRA_BUNDLE) $(top_builddir)/bin; \
+ fi;
+
+#theme-icons: $(THEME_ICONS_SOURCE)
+# @$(INSTALL_ICONS) -il "$(BUILD_DATA_DIR)" "$(srcdir)" $(THEME_ICONS_RELATIVE)
+
+install-data-hook: $(THEME_ICONS_SOURCE)
+ @$(INSTALL_ICONS) -i "$(DESTDIR)$(pkgdatadir)" "$(srcdir)" $(THEME_ICONS_RELATIVE)
+ $(EXTRA_INSTALL_DATA_HOOK)
+
+uninstall-hook: $(THEME_ICONS_SOURCE)
+ @$(INSTALL_ICONS) -u "$(DESTDIR)$(pkgdatadir)" "$(srcdir)" $(THEME_ICONS_RELATIVE)
+ $(EXTRA_UNINSTALL_HOOK)
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/rdotnet/RDotNet.NativeLibrary/NativeUtility.cs b/rdotnet/RDotNet.NativeLibrary/NativeUtility.cs
index 94adcf2..daa75fb 100644
--- a/rdotnet/RDotNet.NativeLibrary/NativeUtility.cs
+++ b/rdotnet/RDotNet.NativeLibrary/NativeUtility.cs
@@ -4,47 +4,47 @@ using System.Diagnostics;
namespace RDotNet.NativeLibrary
{
- /// <summary>
- /// Collection of utility methods for operating systems.
- /// </summary>
- public static class NativeUtility
- {
- /// <summary>
- /// Gets the platform on which the current process runs.
- /// </summary>
- /// <remarks>
- /// <see cref="Environment.OSVersion"/>'s platform is not <see cref="PlatformID.MacOSX"/>
even on Mac OS X.
- /// This method returns <see cref="PlatformID.MacOSX"/> when the current process runs on Mac
OS X.
- /// This method uses UNIX's uname command to check the operating system,
- /// so this method cannot check the OS correctly if the PATH environment variable is changed
(will returns <see cref="PlatformID.Unix"/>).
- /// </remarks>
- /// <returns>The current platform.</returns>
- public static PlatformID GetPlatform()
- {
- var platform = Environment.OSVersion.Platform;
- if (platform != PlatformID.Unix)
- {
- return platform;
- }
- try
- {
- using (var uname = new Process())
- {
- uname.StartInfo.FileName = "uname";
- uname.StartInfo.Arguments = "-s";
- uname.StartInfo.RedirectStandardOutput = true;
- uname.StartInfo.UseShellExecute = false;
- uname.StartInfo.CreateNoWindow = true;
- uname.Start();
- var kernelName = uname.StandardOutput.ReadLine();
- uname.WaitForExit();
- return kernelName == "Darwin" ? PlatformID.MacOSX : platform;
- }
- }
- catch (Win32Exception) // probably no PATH to uname.
- {
- return platform;
- }
- }
- }
-}
+ /// <summary>
+ /// Collection of utility methods for operating systems.
+ /// </summary>
+ public static class NativeUtility
+ {
+ /// <summary>
+ /// Gets the platform on which the current process runs.
+ /// </summary>
+ /// <remarks>
+ /// <see cref="Environment.OSVersion"/>'s platform is not <see cref="PlatformID.MacOSX"/> even on Mac
OS X.
+ /// This method returns <see cref="PlatformID.MacOSX"/> when the current process runs on Mac OS X.
+ /// This method uses UNIX's uname command to check the operating system,
+ /// so this method cannot check the OS correctly if the PATH environment variable is changed (will
returns <see cref="PlatformID.Unix"/>).
+ /// </remarks>
+ /// <returns>The current platform.</returns>
+ public static PlatformID GetPlatform()
+ {
+ var platform = Environment.OSVersion.Platform;
+ if (platform != PlatformID.Unix)
+ {
+ return platform;
+ }
+ try
+ {
+ using (var uname = new Process())
+ {
+ uname.StartInfo.FileName = "uname";
+ uname.StartInfo.Arguments = "-s";
+ uname.StartInfo.RedirectStandardOutput = true;
+ uname.StartInfo.UseShellExecute = false;
+ uname.StartInfo.CreateNoWindow = true;
+ uname.Start();
+ var kernelName = uname.StandardOutput.ReadLine();
+ uname.WaitForExit();
+ return kernelName == "Darwin" ? PlatformID.MacOSX : platform;
+ }
+ }
+ catch (Win32Exception) // probably no PATH to uname.
+ {
+ return platform;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/RDotNet.NativeLibrary/Properties/AssemblyInfo.cs
b/rdotnet/RDotNet.NativeLibrary/Properties/AssemblyInfo.cs
index 2d1b310..5cd22dd 100644
--- a/rdotnet/RDotNet.NativeLibrary/Properties/AssemblyInfo.cs
+++ b/rdotnet/RDotNet.NativeLibrary/Properties/AssemblyInfo.cs
@@ -1,39 +1,38 @@
using System.Reflection;
using System.Runtime.InteropServices;
-// General Information about an assembly is controlled through the following
+// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
-[assembly : AssemblyTitle("RDotNet.NativeLibrary")]
-[assembly : AssemblyDescription("")]
-[assembly : AssemblyConfiguration("")]
-[assembly : AssemblyCompany("RecycleBin")]
-[assembly : AssemblyProduct("RDotNet.NativeLibrary")]
-[assembly : AssemblyCopyright("Copyright © RecycleBin 2012")]
-[assembly : AssemblyTrademark("")]
-[assembly : AssemblyCulture("")]
-
-// Setting ComVisible to false makes the types in this assembly not visible
-// to COM components. If you need to access a type in this assembly from
+[assembly: AssemblyTitle("RDotNet.NativeLibrary")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("RecycleBin")]
+[assembly: AssemblyProduct("RDotNet.NativeLibrary")]
+[assembly: AssemblyCopyright("Copyright © RecycleBin 2012")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible
+// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
-[assembly : ComVisible(false)]
+[assembly: ComVisible(false)]
// The following GUID is for the ID of the typelib if this project is exposed to COM
-[assembly : Guid("8c279a95-edef-4f16-a592-fc8c9b927960")]
+[assembly: Guid("8c279a95-edef-4f16-a592-fc8c9b927960")]
// Version information for an assembly consists of the following four values:
//
// Major Version
-// Minor Version
+// Minor Version
// Build Number
// Revision
//
-// You can specify all the values or you can default the Build and Revision Numbers
+// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
-
-[assembly : AssemblyVersion("1.0.0.0")]
-[assembly : AssemblyFileVersion("1.0.0.0")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyInformationalVersion("1.0")]
\ No newline at end of file
diff --git a/rdotnet/RDotNet.NativeLibrary/RDotNet.NativeLibrary.csproj
b/rdotnet/RDotNet.NativeLibrary/RDotNet.NativeLibrary.csproj
index cc86dd6..cd241dc 100644
--- a/rdotnet/RDotNet.NativeLibrary/RDotNet.NativeLibrary.csproj
+++ b/rdotnet/RDotNet.NativeLibrary/RDotNet.NativeLibrary.csproj
@@ -21,7 +21,7 @@
<DefineConstants>TRACE;DEBUG</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
- <DocumentationFile>bin\Debug\RDotNet.NativeLibrary.xml</DocumentationFile>
+ <DocumentationFile>bin\Debug\RDotNet.NativeLibrary.XML</DocumentationFile>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>none</DebugType>
@@ -30,16 +30,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
- <DocumentationFile>bin\Release\RDotNet.NativeLibrary.xml</DocumentationFile>
- </PropertyGroup>
- <PropertyGroup>
- <SignAssembly>true</SignAssembly>
- </PropertyGroup>
- <PropertyGroup>
- <DelaySign>true</DelaySign>
- </PropertyGroup>
- <PropertyGroup>
- <AssemblyOriginatorKeyFile>..\RecycleBin.snk.pub</AssemblyOriginatorKeyFile>
+ <DocumentationFile>bin\Release\RDotNet.NativeLibrary.XML</DocumentationFile>
</PropertyGroup>
<ItemGroup>
<Reference Include="System" />
diff --git a/rdotnet/RDotNet.NativeLibrary/UnmanagedDll.cs b/rdotnet/RDotNet.NativeLibrary/UnmanagedDll.cs
index 2581c02..2fd769a 100644
--- a/rdotnet/RDotNet.NativeLibrary/UnmanagedDll.cs
+++ b/rdotnet/RDotNet.NativeLibrary/UnmanagedDll.cs
@@ -1,214 +1,215 @@
using System;
-using System.IO;
-using System.Linq;
using System.Runtime.ConstrainedExecution;
using System.Runtime.InteropServices;
using System.Security.Permissions;
+#if UNIX
+using System.IO;
+using System.Linq;
+#endif
namespace RDotNet.NativeLibrary
{
- /// <summary>
- /// A proxy for unmanaged dynamic link library (DLL).
- /// </summary>
- [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
- public class UnmanagedDll : SafeHandle
- {
- public override bool IsInvalid
- {
- get { return IsClosed || handle == IntPtr.Zero; }
- }
-
- /// <summary>
- /// Creates a proxy for the specified dll.
- /// </summary>
- /// <param name="dllName">The DLL's name.</param>
- public UnmanagedDll(string dllName)
- : base(IntPtr.Zero, true)
- {
- if (dllName == null)
- {
- throw new ArgumentNullException("dllName");
- }
- if (dllName == string.Empty)
- {
- throw new ArgumentException("dllName");
- }
-
- IntPtr handle = IntLoadLibrary(dllName);
- if (handle == IntPtr.Zero)
- {
- throw new DllNotFoundException();
- }
- SetHandle(handle);
- }
-
- /// <summary>
- /// Creates the delegate function for the specified function defined in the DLL.
- /// </summary>
- /// <typeparam name="TDelegate">The type of delegate.</typeparam>
- /// <returns>The delegate.</returns>
- public TDelegate GetFunction<TDelegate>()
- where TDelegate : class
- {
- Type delegateType = typeof(TDelegate);
- if (!delegateType.IsSubclassOf(typeof(Delegate)))
- {
- throw new ArgumentException();
- }
- IntPtr function = GetFunctionAddress(handle, delegateType.Name);
- if (function == IntPtr.Zero)
- {
- throw new EntryPointNotFoundException();
- }
- return Marshal.GetDelegateForFunctionPointer(function, delegateType) as TDelegate;
- }
-
- /// <summary>
- /// Creates the delegate function for the specified function defined in the DLL.
- /// </summary>
- /// <typeparam name="TDelegate">The type of delegate.</typeparam>
- /// <param name="entryPoint">The name of function.</param>
- /// <returns>The delegate.</returns>
- public TDelegate GetFunction<TDelegate>(string entryPoint)
- where TDelegate : class
- {
- if (!typeof(TDelegate).IsSubclassOf(typeof(Delegate)))
- {
- throw new ArgumentException();
- }
- if (entryPoint == null)
- {
- throw new ArgumentNullException("entryPoint");
- }
- IntPtr function = GetFunctionAddress(handle, entryPoint);
- if (function == IntPtr.Zero)
- {
- throw new EntryPointNotFoundException();
- }
- return Marshal.GetDelegateForFunctionPointer(function, typeof(TDelegate)) as
TDelegate;
- }
-
- /// <summary>
- /// Gets the handle of the specified entry.
- /// </summary>
- /// <param name="entryPoint">The name of function.</param>
- /// <returns>The handle.</returns>
- public IntPtr DangerousGetHandle(string entryPoint)
- {
- if (entryPoint == null)
- {
- throw new ArgumentNullException("entryPoint");
- }
- return GetFunctionAddress(handle, entryPoint);
- }
-
- protected override bool ReleaseHandle()
- {
- return FreeLibrary(handle);
- }
-
- protected override void Dispose(bool disposing)
- {
- if (FreeLibrary(handle))
- {
- SetHandleAsInvalid();
- }
- base.Dispose(disposing);
- }
-
- /// <summary>
- /// Adds a directory to the search path used to locate DLLs for the application.
- /// </summary>
- /// <remarks>
- /// Calls <c>SetDllDirectory</c> in the kernel32.dll on Windows.
- /// </remarks>
- /// <param name="dllDirectory">
- /// The directory to be added to the search path.
- /// If this parameter is an empty string (""), the call removes the current directory from
the default DLL search order.
- /// If this parameter is NULL, the function restores the default search order.
- /// </param>
- /// <returns>If the function succeeds, the return value is nonzero.</returns>
- [Obsolete("Set environment variable 'PATH' instead.")]
+ /// <summary>
+ /// A proxy for unmanaged dynamic link library (DLL).
+ /// </summary>
+ [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.UnmanagedCode)]
+ public class UnmanagedDll : SafeHandle
+ {
+ public override bool IsInvalid
+ {
+ get { return handle == IntPtr.Zero; }
+ }
+
+ /// <summary>
+ /// Creates a proxy for the specified dll.
+ /// </summary>
+ /// <param name="dllName">The DLL's name.</param>
+ public UnmanagedDll(string dllName)
+ : base(IntPtr.Zero, true)
+ {
+ Console.WriteLine("dllName:"+dllName);
+ if (dllName == null)
+ {
+ throw new ArgumentNullException("dllName");
+ }
+ if (dllName == string.Empty)
+ {
+ throw new ArgumentException("dllName");
+ }
+
+ IntPtr handle = LoadLibrary(dllName);
+ if (handle == IntPtr.Zero)
+ {
+ throw new DllNotFoundException();
+ }
+ SetHandle(handle);
+ }
+
+ /// <summary>
+ /// Creates the delegate function for the specified function defined in the DLL.
+ /// </summary>
+ /// <typeparam name="TDelegate">The type of delegate.</typeparam>
+ /// <returns>The delegate.</returns>
+ public TDelegate GetFunction<TDelegate>()
+ where TDelegate : class
+ {
+ Type delegateType = typeof(TDelegate);
+ if (!delegateType.IsSubclassOf(typeof(Delegate)))
+ {
+ throw new ArgumentException();
+ }
+ IntPtr function = GetFunctionAddress(handle, delegateType.Name);
+ if (function == IntPtr.Zero)
+ {
+ throw new EntryPointNotFoundException();
+ }
+ return Marshal.GetDelegateForFunctionPointer(function, delegateType) as TDelegate;
+ }
+
+ /// <summary>
+ /// Creates the delegate function for the specified function defined in the DLL.
+ /// </summary>
+ /// <typeparam name="TDelegate">The type of delegate.</typeparam>
+ /// <param name="entryPoint">The name of function.</param>
+ /// <returns>The delegate.</returns>
+ public TDelegate GetFunction<TDelegate>(string entryPoint)
+ where TDelegate : class
+ {
+ if (!typeof(TDelegate).IsSubclassOf(typeof(Delegate)))
+ {
+ throw new ArgumentException();
+ }
+ if (entryPoint == null)
+ {
+ throw new ArgumentNullException("entryPoint");
+ }
+ IntPtr function = GetFunctionAddress(handle, entryPoint);
+ if (function == IntPtr.Zero)
+ {
+ throw new EntryPointNotFoundException();
+ }
+ return Marshal.GetDelegateForFunctionPointer(function, typeof(TDelegate)) as TDelegate;
+ }
+
+ /// <summary>
+ /// Gets the handle of the specified entry.
+ /// </summary>
+ /// <param name="entryPoint">The name of function.</param>
+ /// <returns>The handle.</returns>
+ public IntPtr DangerousGetHandle(string entryPoint)
+ {
+ if (entryPoint == null)
+ {
+ throw new ArgumentNullException("entryPoint");
+ }
+ return GetFunctionAddress(handle, entryPoint);
+ }
+
+ protected override bool ReleaseHandle()
+ {
+ return FreeLibrary(handle);
+ }
+
+ protected override void Dispose(bool disposing)
+ {
+ if (FreeLibrary(handle))
+ {
+ SetHandleAsInvalid();
+ }
+ base.Dispose(disposing);
+ }
+
+ /// <summary>
+ /// Adds a directory to the search path used to locate DLLs for the application.
+ /// </summary>
+ /// <remarks>
+ /// Calls <c>SetDllDirectory</c> in the kernel32.dll on Windows.
+ /// </remarks>
+ /// <param name="dllDirectory">
+ /// The directory to be added to the search path.
+ /// If this parameter is an empty string (""), the call removes the current directory from the default
DLL search order.
+ /// If this parameter is NULL, the function restores the default search order.
+ /// </param>
+ /// <returns>If the function succeeds, the return value is nonzero.</returns>
+ [Obsolete("Set environment variable 'PATH' instead.")]
#if UNIX
- public static bool SetDllDirectory(string dllDirectory)
- {
- if (dllDirectory == null)
- {
- System.Environment.SetEnvironmentVariable(LibraryPath, DefaultSearchPath,
EnvironmentVariableTarget.Process);
- }
- else if (dllDirectory == string.Empty)
- {
- throw new NotImplementedException();
- }
- else
- {
- if (!Directory.Exists(dllDirectory))
- {
- return false;
- }
- string path = System.Environment.GetEnvironmentVariable(LibraryPath,
EnvironmentVariableTarget.Process);
- if (string.IsNullOrEmpty(path))
- {
- path = dllDirectory;
- }
- else
- {
- path = dllDirectory + Path.PathSeparator + path;
- }
- System.Environment.SetEnvironmentVariable(LibraryPath, path,
EnvironmentVariableTarget.Process);
- }
- return true;
- }
-
- private const string LibraryPath = "PATH";
- private static readonly string DefaultSearchPath =
System.Environment.GetEnvironmentVariable(LibraryPath, EnvironmentVariableTarget.Process);
+ public static bool SetDllDirectory(string dllDirectory)
+ {
+ if (dllDirectory == null)
+ {
+ System.Environment.SetEnvironmentVariable(LibraryPath, DefaultSearchPath,
EnvironmentVariableTarget.Process);
+ }
+ else if (dllDirectory == string.Empty)
+ {
+ throw new NotImplementedException();
+ }
+ else
+ {
+ if (!Directory.Exists(dllDirectory))
+ {
+ return false;
+ }
+ string path = System.Environment.GetEnvironmentVariable(LibraryPath,
EnvironmentVariableTarget.Process);
+ if (string.IsNullOrEmpty(path))
+ {
+ path = dllDirectory;
+ }
+ else
+ {
+ path = dllDirectory + Path.PathSeparator + path;
+ }
+ System.Environment.SetEnvironmentVariable(LibraryPath, path, EnvironmentVariableTarget.Process);
+ }
+ return true;
+ }
+
+ private const string LibraryPath = "PATH";
+ private static readonly string DefaultSearchPath =
System.Environment.GetEnvironmentVariable(LibraryPath, EnvironmentVariableTarget.Process);
#else
- [DllImport("kernel32.dll")]
- [return: MarshalAs(UnmanagedType.Bool)]
- public static extern bool SetDllDirectory([MarshalAs(UnmanagedType.LPStr)] string
dllDirectory);
+ [DllImport("kernel32.dll")]
+ [return: MarshalAs(UnmanagedType.Bool)]
+ public static extern bool SetDllDirectory([MarshalAs(UnmanagedType.LPStr)] string dllDirectory);
+
#endif
#if UNIX
- private static IntPtr IntLoadLibrary(string filename)
- {
- const int RTLD_LAZY = 0x1;
- if (filename.StartsWith("/"))
- {
- return dlopen(filename, RTLD_LAZY);
- }
- var searchPaths = (Environment.GetEnvironmentVariable("PATH") ??
"").Split(Path.PathSeparator);
- var dll = searchPaths.Select(directory => Path.Combine(directory,
filename)).FirstOrDefault(File.Exists);
- return dll == null ? IntPtr.Zero : dlopen(dll, RTLD_LAZY);
- }
-
- [DllImport("libdl")]
- private static extern IntPtr dlopen([MarshalAs(UnmanagedType.LPStr)] string filename, int
flag);
+ private static IntPtr LoadLibrary(string filename)
+ {
+ const int RTLD_LAZY = 0x1;
+ if (filename.StartsWith("/"))
+ {
+ return dlopen(filename, RTLD_LAZY);
+ }
+ var searchPaths = (Environment.GetEnvironmentVariable("PATH") ?? "").Split(Path.PathSeparator);
+ var dll = searchPaths.Select(directory => Path.Combine(directory,
filename)).FirstOrDefault(File.Exists);
+ return dll == null ? IntPtr.Zero : dlopen(dll, RTLD_LAZY);
+ }
+
+ [DllImport("libdl")]
+ private static extern IntPtr dlopen([MarshalAs(UnmanagedType.LPStr)] string filename, int flag);
#else
- [DllImport("kernel32.dll")]
- private static extern IntPtr LoadLibrary([MarshalAs(UnmanagedType.LPStr)] string lpFileName);
-
- private static IntPtr IntLoadLibrary(string filename)
- {
- var searchPaths = (Environment.GetEnvironmentVariable("PATH") ??
"").Split(Path.PathSeparator);
- var dll = searchPaths.Select(directory => Path.Combine(directory,
filename)).FirstOrDefault(File.Exists);
- return dll == null ? IntPtr.Zero : LoadLibrary(dll);
- }
+
+ [DllImport("kernel32.dll")]
+ private static extern IntPtr LoadLibrary([MarshalAs(UnmanagedType.LPStr)] string lpFileName);
+
#endif
#if UNIX
- [DllImport("libdl", EntryPoint = "dlclose")]
+ [DllImport("libdl", EntryPoint = "dlclose")]
#else
- [DllImport("kernel32.dll")]
+
+ [DllImport("kernel32.dll")]
#endif
- [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
- [return : MarshalAs(UnmanagedType.Bool)]
- private static extern bool FreeLibrary(IntPtr hModule);
+ [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
+ [return: MarshalAs(UnmanagedType.Bool)]
+ private static extern bool FreeLibrary(IntPtr hModule);
#if UNIX
- [DllImport("libdl", EntryPoint = "dlsym")]
+ [DllImport("libdl", EntryPoint = "dlsym")]
#else
- [DllImport("kernel32.dll", EntryPoint = "GetProcAddress")]
+
+ [DllImport("kernel32.dll", EntryPoint = "GetProcAddress")]
#endif
- private static extern IntPtr GetFunctionAddress(IntPtr hModule,
[MarshalAs(UnmanagedType.LPStr)] string lpProcName);
- }
-}
+ private static extern IntPtr GetFunctionAddress(IntPtr hModule, [MarshalAs(UnmanagedType.LPStr)]
string lpProcName);
+ }
+}
\ No newline at end of file
diff --git a/rdotnet/Rdll/i386/R.dll b/rdotnet/Rdll/i386/R.dll
new file mode 100644
index 0000000..3951283
Binary files /dev/null and b/rdotnet/Rdll/i386/R.dll differ
diff --git a/rdotnet/Rdll/i386/R.exe b/rdotnet/Rdll/i386/R.exe
new file mode 100644
index 0000000..d0910a5
Binary files /dev/null and b/rdotnet/Rdll/i386/R.exe differ
diff --git a/rdotnet/Rdll/i386/RSetReg.exe b/rdotnet/Rdll/i386/RSetReg.exe
new file mode 100644
index 0000000..0e8d1ae
Binary files /dev/null and b/rdotnet/Rdll/i386/RSetReg.exe differ
diff --git a/rdotnet/Rdll/i386/Rblas.dll b/rdotnet/Rdll/i386/Rblas.dll
new file mode 100644
index 0000000..773f076
Binary files /dev/null and b/rdotnet/Rdll/i386/Rblas.dll differ
diff --git a/rdotnet/Rdll/i386/Rcmd.exe b/rdotnet/Rdll/i386/Rcmd.exe
new file mode 100644
index 0000000..0d2e9fd
Binary files /dev/null and b/rdotnet/Rdll/i386/Rcmd.exe differ
diff --git a/rdotnet/Rdll/i386/Rgraphapp.dll b/rdotnet/Rdll/i386/Rgraphapp.dll
new file mode 100644
index 0000000..a532534
Binary files /dev/null and b/rdotnet/Rdll/i386/Rgraphapp.dll differ
diff --git a/rdotnet/Rdll/i386/Rgui.exe b/rdotnet/Rdll/i386/Rgui.exe
new file mode 100644
index 0000000..324cc4f
Binary files /dev/null and b/rdotnet/Rdll/i386/Rgui.exe differ
diff --git a/rdotnet/Rdll/i386/Riconv.dll b/rdotnet/Rdll/i386/Riconv.dll
new file mode 100644
index 0000000..09dac03
Binary files /dev/null and b/rdotnet/Rdll/i386/Riconv.dll differ
diff --git a/rdotnet/Rdll/i386/Rlapack.dll b/rdotnet/Rdll/i386/Rlapack.dll
new file mode 100644
index 0000000..56ac862
Binary files /dev/null and b/rdotnet/Rdll/i386/Rlapack.dll differ
diff --git a/rdotnet/Rdll/i386/Rscript.exe b/rdotnet/Rdll/i386/Rscript.exe
new file mode 100644
index 0000000..9c01b65
Binary files /dev/null and b/rdotnet/Rdll/i386/Rscript.exe differ
diff --git a/rdotnet/Rdll/i386/Rterm.exe b/rdotnet/Rdll/i386/Rterm.exe
new file mode 100644
index 0000000..5a23755
Binary files /dev/null and b/rdotnet/Rdll/i386/Rterm.exe differ
diff --git a/rdotnet/Rdll/i386/Rzlib.dll b/rdotnet/Rdll/i386/Rzlib.dll
new file mode 100644
index 0000000..afe32ad
Binary files /dev/null and b/rdotnet/Rdll/i386/Rzlib.dll differ
diff --git a/rdotnet/Rdll/i386/open.exe b/rdotnet/Rdll/i386/open.exe
new file mode 100644
index 0000000..29fa51a
Binary files /dev/null and b/rdotnet/Rdll/i386/open.exe differ
diff --git a/rdotnet/Rdll/x64/R.dll b/rdotnet/Rdll/x64/R.dll
new file mode 100644
index 0000000..cf50de6
Binary files /dev/null and b/rdotnet/Rdll/x64/R.dll differ
diff --git a/rdotnet/Rdll/x64/R.exe b/rdotnet/Rdll/x64/R.exe
new file mode 100644
index 0000000..6306d5d
Binary files /dev/null and b/rdotnet/Rdll/x64/R.exe differ
diff --git a/rdotnet/Rdll/x64/RSetReg.exe b/rdotnet/Rdll/x64/RSetReg.exe
new file mode 100644
index 0000000..20bf558
Binary files /dev/null and b/rdotnet/Rdll/x64/RSetReg.exe differ
diff --git a/rdotnet/Rdll/x64/Rblas.dll b/rdotnet/Rdll/x64/Rblas.dll
new file mode 100644
index 0000000..4eaeb3d
Binary files /dev/null and b/rdotnet/Rdll/x64/Rblas.dll differ
diff --git a/rdotnet/Rdll/x64/Rcmd.exe b/rdotnet/Rdll/x64/Rcmd.exe
new file mode 100644
index 0000000..b4d90c6
Binary files /dev/null and b/rdotnet/Rdll/x64/Rcmd.exe differ
diff --git a/rdotnet/Rdll/x64/Rgraphapp.dll b/rdotnet/Rdll/x64/Rgraphapp.dll
new file mode 100644
index 0000000..3f1a24e
Binary files /dev/null and b/rdotnet/Rdll/x64/Rgraphapp.dll differ
diff --git a/rdotnet/Rdll/x64/Rgui.exe b/rdotnet/Rdll/x64/Rgui.exe
new file mode 100644
index 0000000..82bd65f
Binary files /dev/null and b/rdotnet/Rdll/x64/Rgui.exe differ
diff --git a/rdotnet/Rdll/x64/Riconv.dll b/rdotnet/Rdll/x64/Riconv.dll
new file mode 100644
index 0000000..5a0a50e
Binary files /dev/null and b/rdotnet/Rdll/x64/Riconv.dll differ
diff --git a/rdotnet/Rdll/x64/Rlapack.dll b/rdotnet/Rdll/x64/Rlapack.dll
new file mode 100644
index 0000000..18a2daf
Binary files /dev/null and b/rdotnet/Rdll/x64/Rlapack.dll differ
diff --git a/rdotnet/Rdll/x64/Rscript.exe b/rdotnet/Rdll/x64/Rscript.exe
new file mode 100644
index 0000000..d99a6be
Binary files /dev/null and b/rdotnet/Rdll/x64/Rscript.exe differ
diff --git a/rdotnet/Rdll/x64/Rterm.exe b/rdotnet/Rdll/x64/Rterm.exe
new file mode 100644
index 0000000..26f226c
Binary files /dev/null and b/rdotnet/Rdll/x64/Rterm.exe differ
diff --git a/rdotnet/Rdll/x64/Rzlib.dll b/rdotnet/Rdll/x64/Rzlib.dll
new file mode 100644
index 0000000..61c6097
Binary files /dev/null and b/rdotnet/Rdll/x64/Rzlib.dll differ
diff --git a/rdotnet/Rdll/x64/open.exe b/rdotnet/Rdll/x64/open.exe
new file mode 100644
index 0000000..e2d8606
Binary files /dev/null and b/rdotnet/Rdll/x64/open.exe differ
diff --git a/src/chronojump.cs b/src/chronojump.cs
index 9412345..239c43f 100644
--- a/src/chronojump.cs
+++ b/src/chronojump.cs
@@ -73,15 +73,40 @@ public class ChronoJump
var envPath = Environment.GetEnvironmentVariable ("PATH");
+ var rBinPath = "";
baseDirectory = Util.GetPrefixDir();
if(UtilAll.IsWindows()) {
- Environment.SetEnvironmentVariable ("R_HOME", RelativeToPrefix ("library"));
+ //Environment.SetEnvironmentVariable ("R_HOME", RelativeToPrefix ("library"));
+ //rBinPath = RelativeToPrefix ("lib");
+ //rBinPath = RelativeToPrefix ("library");
+ //var rPath = System.Environment.Is64BitProcess ? @"C:\Program
Files\R\R-3.0.2\bin\x64" : @"C:\Program Files\R\R-3.0.2\bin\i386";
+ string x64 = "bin" + System.IO.Path.DirectorySeparatorChar + "x64";
+ string i386 = "bin" + System.IO.Path.DirectorySeparatorChar + "i386";
+ var rPath = System.Environment.Is64BitProcess ?
+ System.IO.Path.Combine(baseDirectory, x64) :
System.IO.Path.Combine(baseDirectory, i386);
+
+ if (Directory.Exists(rPath) == false) {
+ throw new DirectoryNotFoundException(string.Format("Could not found the
specified path to the directory containing R.dll: {0}", rPath));
+ Log.WriteLine("Could not found the specified path to the directory containing
R.dll: " + rPath);
+ }
+
+ var newPath = string.Format("{0}{1}{2}", rPath, System.IO.Path.PathSeparator,
envPath);
+ Log.WriteLine("newPath:" + newPath);
+
+ System.Environment.SetEnvironmentVariable("PATH", newPath);
+ Log.WriteLine("path:" + System.Environment.GetEnvironmentVariable("PATH"));
} else {
- var rBinPath = @"/usr/lib/R/lib";
+ rBinPath = @"/usr/lib/R/lib";
Environment.SetEnvironmentVariable ("R_HOME", @"/usr/lib/R");
- Environment.SetEnvironmentVariable ("PATH", envPath + Path.PathSeparator + rBinPath);
- }
-
+ Environment.SetEnvironmentVariable("PATH", envPath + Path.PathSeparator + rBinPath);
+ }
+
+
+ Log.WriteLine("baseDir0:" + System.AppDomain.CurrentDomain.BaseDirectory);
+ Log.WriteLine("baseDir1:" + baseDirectory);
+ Log.WriteLine("envPath+rBinPath:" + envPath + Path.PathSeparator + rBinPath);
+
+
if(UtilAll.IsWindows())
Environment.SetEnvironmentVariable("GST_PLUGIN_PATH",RelativeToPrefix("lib\\gstreamer-0.10"));
diff --git a/src/gui/encoder.cs b/src/gui/encoder.cs
index 5ad2f2c..1b056c2 100644
--- a/src/gui/encoder.cs
+++ b/src/gui/encoder.cs
@@ -1763,8 +1763,8 @@ public partial class ChronoJumpWindow
return true;
Log.WriteLine("initializing rdotnet");
-
- //RDotNet.StartupParameter rsup = new RDotNet.StartupParameter();
+
+ //RDotNet.StartupParameter rsup = new RDotNet.StartupParameter();
//rsup.Interactive = false;
//rsup.Quiet = false;
@@ -1773,21 +1773,23 @@ public partial class ChronoJumpWindow
// From v1.5, REngine requires explicit initialization.
// You can set some parameters.
- try {
+ //try {
//rengine.Initialize(rsup);
rengine.Initialize();
- } catch {
- return false;
- }
+ //} catch {
+ //return false;
+ //}
//Previous command, unfortunatelly localizes all GUI to english
//then call Catalog.Init again in order to see new windows localised
- Catalog.Init("chronojump",System.IO.Path.Combine(Util.GetPrefixDir(),"share/locale"));
+ //Catalog.Init("chronojump",System.IO.Path.Combine(Util.GetPrefixDir(),"share/locale"));
+ /*
try {
rengine.Evaluate("library(\"EMD\")");
} catch {
return false;
}
+ */
// .NET Framework array to R vector.
NumericVector group1 = rengine.CreateNumericVector(new double[] { 30.02, 29.99, 30.11, 29.97,
30.01, 29.99 });
diff --git a/src/util.cs b/src/util.cs
index 195cc25..ebce3dd 100644
--- a/src/util.cs
+++ b/src/util.cs
@@ -941,16 +941,16 @@ public class Util
pinfo.CreateNoWindow = true;
pinfo.UseShellExecute = false;
- try {
+ //try {
r = new Process();
r.StartInfo = pinfo;
r.Start();
r.WaitForExit();
//while ( ! ( File.Exists(outputFile) || CancelRScript) );
while ( ! ( File.Exists(outputFile) ) );
- } catch {
+ //} catch {
//maybe R is not installed
- }
+ //}
}
diff --git a/win32/Makefile.am b/win32/Makefile.am
index 527d394..fce0ac1 100644
--- a/win32/Makefile.am
+++ b/win32/Makefile.am
@@ -11,6 +11,10 @@ deploy:
cp ${prefix}/bin/libcesarplayer-0.dll dist/bin
cp -r ${prefix}/lib/chronojump dist/lib/
cp -r ${prefix}/share/chronojump dist/share/
+ cp -r ../rdotnet/Rdll/i386/* dist/bin/i386/
+ mkdir dist/bin/x64
+ cp -r ../rdotnet/Rdll/x64/* dist/bin/x64/
+
bundle: deploy
diff --git a/win32/deps/bin/R.exe b/win32/deps/bin/R.exe
index 43731fa..def9f1c 100644
Binary files a/win32/deps/bin/R.exe and b/win32/deps/bin/R.exe differ
diff --git a/win32/deps/bin/Rscript.exe b/win32/deps/bin/Rscript.exe
index 43731fa..def9f1c 100644
Binary files a/win32/deps/bin/Rscript.exe and b/win32/deps/bin/Rscript.exe differ
diff --git a/win32/deps/bin/i386/R.dll b/win32/deps/bin/i386/R.dll
index ba7b61a..3951283 100644
Binary files a/win32/deps/bin/i386/R.dll and b/win32/deps/bin/i386/R.dll differ
diff --git a/win32/deps/bin/i386/R.exe b/win32/deps/bin/i386/R.exe
index 6697c70..d0910a5 100644
Binary files a/win32/deps/bin/i386/R.exe and b/win32/deps/bin/i386/R.exe differ
diff --git a/win32/deps/bin/i386/RSetReg.exe b/win32/deps/bin/i386/RSetReg.exe
index 3e5eea2..0e8d1ae 100644
Binary files a/win32/deps/bin/i386/RSetReg.exe and b/win32/deps/bin/i386/RSetReg.exe differ
diff --git a/win32/deps/bin/i386/Rblas.dll b/win32/deps/bin/i386/Rblas.dll
index 6dd7a92..773f076 100644
Binary files a/win32/deps/bin/i386/Rblas.dll and b/win32/deps/bin/i386/Rblas.dll differ
diff --git a/win32/deps/bin/i386/Rcmd.exe b/win32/deps/bin/i386/Rcmd.exe
index 6aca7db..0d2e9fd 100644
Binary files a/win32/deps/bin/i386/Rcmd.exe and b/win32/deps/bin/i386/Rcmd.exe differ
diff --git a/win32/deps/bin/i386/Rgraphapp.dll b/win32/deps/bin/i386/Rgraphapp.dll
index c17e5c7..a532534 100644
Binary files a/win32/deps/bin/i386/Rgraphapp.dll and b/win32/deps/bin/i386/Rgraphapp.dll differ
diff --git a/win32/deps/bin/i386/Rgui.exe b/win32/deps/bin/i386/Rgui.exe
index b0757cd..324cc4f 100644
Binary files a/win32/deps/bin/i386/Rgui.exe and b/win32/deps/bin/i386/Rgui.exe differ
diff --git a/win32/deps/bin/i386/Riconv.dll b/win32/deps/bin/i386/Riconv.dll
index 4bc6323..09dac03 100644
Binary files a/win32/deps/bin/i386/Riconv.dll and b/win32/deps/bin/i386/Riconv.dll differ
diff --git a/win32/deps/bin/i386/Rlapack.dll b/win32/deps/bin/i386/Rlapack.dll
index b96ad74..56ac862 100644
Binary files a/win32/deps/bin/i386/Rlapack.dll and b/win32/deps/bin/i386/Rlapack.dll differ
diff --git a/win32/deps/bin/i386/Rscript.exe b/win32/deps/bin/i386/Rscript.exe
index fd03c0a..9c01b65 100644
Binary files a/win32/deps/bin/i386/Rscript.exe and b/win32/deps/bin/i386/Rscript.exe differ
diff --git a/win32/deps/bin/i386/Rterm.exe b/win32/deps/bin/i386/Rterm.exe
index 1efc779..5a23755 100644
Binary files a/win32/deps/bin/i386/Rterm.exe and b/win32/deps/bin/i386/Rterm.exe differ
diff --git a/win32/deps/bin/i386/Rzlib.dll b/win32/deps/bin/i386/Rzlib.dll
index 133975c..afe32ad 100644
Binary files a/win32/deps/bin/i386/Rzlib.dll and b/win32/deps/bin/i386/Rzlib.dll differ
diff --git a/win32/deps/bin/i386/open.exe b/win32/deps/bin/i386/open.exe
index 24aa7ae..29fa51a 100644
Binary files a/win32/deps/bin/i386/open.exe and b/win32/deps/bin/i386/open.exe differ
diff --git a/win32/deps/library/Cairo/DESCRIPTION b/win32/deps/library/Cairo/DESCRIPTION
index ef681dc..61933d8 100644
--- a/win32/deps/library/Cairo/DESCRIPTION
+++ b/win32/deps/library/Cairo/DESCRIPTION
@@ -1,32 +1,20 @@
Package: Cairo
-Version: 1.5-2
+Version: 1.5-5
Title: R graphics device using cairo graphics library for creating
high-quality bitmap (PNG, JPEG, TIFF), vector (PDF, SVG,
PostScript) and display (X11 and Win32) output.
-Author: Simon Urbanek <Simon Urbanek r-project org>, Jeffrey Horner
- <jeff horner vanderbilt edu>
+Author: Simon Urbanek <Simon Urbanek r-project org>, Jeffrey Horner <jeff horner vanderbilt edu>
Maintainer: Simon Urbanek <Simon Urbanek r-project org>
Depends: R (>= 2.4.0)
Suggests: png
Enhances: FastRWeb
-Description: This package provides a Cairo graphics device that can be
- use to create high-quality vector (PDF, PostScript and SVG) and
- bitmap output (PNG,JPEG,TIFF), and high-quality rendering in
- displays (X11 and Win32). Since it uses the same back-end for
- all output, copying across formats is WYSIWYG. Files are
- created without the dependence on X11 or other external
- programs. This device supports alpha channel (semi-transparent
- drawing) and resulting images can contain transparent and
- semi-transparent regions. It is ideal for use in server
- environemnts (file output) and as a replacement for other
- devices that don't have Cairo's capabilities such as alpha
- support or anti-aliasing. Backends are modular such that any
- subset of backends is supported.
+Description: This package provides a Cairo graphics device that can be use to create high-quality vector
(PDF, PostScript and SVG) and bitmap output (PNG,JPEG,TIFF), and high-quality rendering in displays (X11 and
Win32). Since it uses the same back-end for all output, copying across formats is WYSIWYG. Files are created
without the dependence on X11 or other external programs. This device supports alpha channel
(semi-transparent drawing) and resulting images can contain transparent and semi-transparent regions. It is
ideal for use in server environments (file output) and as a replacement for other devices that don't have
Cairo's capabilities such as alpha support or anti-aliasing. Backends are modular such that any subset of
backends is supported.
License: GPL-2
SystemRequirements: cairo (>= 1.2 http://www.cairographics.org/)
URL: http://www.rforge.net/Cairo/
-Packaged: 2012-11-05 18:22:35 UTC; svnuser
+Packaged: 2013-12-23 15:19:33 UTC; svnuser
+NeedsCompilation: yes
Repository: CRAN
-Date/Publication: 2012-11-05 19:46:52
-Built: R 2.15.2; i386-w64-mingw32; 2013-01-03 17:06:29 UTC; windows
+Date/Publication: 2013-12-24 00:16:34
+Built: R 3.0.2; i386-w64-mingw32; 2013-12-24 11:57:35 UTC; windows
Archs: i386, x64
diff --git a/win32/deps/library/Cairo/MD5 b/win32/deps/library/Cairo/MD5
index 395e2d2..c3361ea 100644
--- a/win32/deps/library/Cairo/MD5
+++ b/win32/deps/library/Cairo/MD5
@@ -1,23 +1,23 @@
-367e1d046a1b3bcc1bd575b171b84a48 *DESCRIPTION
+eb256ccbf1e80a7fcd015d3a4c1c6d3c *DESCRIPTION
fc2c0a74538e45f22ff465b0e64fafec *INDEX
-e3e837c005b332a79b709a50da125b2e *Meta/Rd.rds
-4db599095e401fe2698de6ec03c1bc55 *Meta/hsearch.rds
-62f4a47498cb94c97fdefef3dbb5ae37 *Meta/links.rds
-f0fe1e54466b28647836b904a036c97c *Meta/nsInfo.rds
-2711cfe07728704728dc42b4fca35826 *Meta/package.rds
+83c21e01f8d9f366d9fca731fccfcec8 *Meta/Rd.rds
+c80d667e32e5b09f3364c23c9f799fbc *Meta/hsearch.rds
+ffc8cd564ec08bb08703233585fb17aa *Meta/links.rds
+f94d984b21b3570d97a62aa0f07a8238 *Meta/nsInfo.rds
+ce9cbc6109cf14917332cf78c4296101 *Meta/package.rds
a4757769cbeeb852905ad940c7ac7029 *NAMESPACE
-3b624acf7084dcf42766ad70a70644af *NEWS
-240d28d145138a75831809e31a480bad *R/Cairo
-9a22fef89f7d92813d04c9f689d7374f *R/Cairo.rdb
-1d82db82df08a0dde48e4496fc390431 *R/Cairo.rdx
+946ab4be063d058d5f5e5a8721d46955 *NEWS
+ebf0fc819595d631b8bf280c4b049940 *R/Cairo
+cd13edc47673f1fb2196930cae90ee39 *R/Cairo.rdb
+a29a1a36e1498b3d781bef7ae128281b *R/Cairo.rdx
87c65a40e4a86e4ef484df5260fb21df *help/AnIndex
-cc9130832b75b9d47cd1c34820a8c1ff *help/Cairo.rdb
-ff518ffddf788112cb32d7b0b1527544 *help/Cairo.rdx
-59e0de616bb718ce1a5023e0c84b637b *help/aliases.rds
-913c51196267929a30ef2de38f9d8889 *help/paths.rds
-8cc3b6376814258a0c58e2cb4443edfc *html/00Index.html
+ed920c46689970f88c530dc045397e0d *help/Cairo.rdb
+15a4c2a0134c33dfa06ea6fc0f614d11 *help/Cairo.rdx
+7ec3551464763c4ffec318c77979de2a *help/aliases.rds
+de4fee5ac7a66beb6a7c95f549e3c3bc *help/paths.rds
+0ea6865e50c62ccabef6fc86a939c864 *html/00Index.html
444535b9cb76ddff1bab1e1865a3fb14 *html/R.css
-470c7f09a7bf4dc3a363e555443a8bf6 *libs/i386/Cairo.dll
-3ed973be2396fc83baea840e8bb59c24 *libs/i386/symbols.rds
-3a9c89cbe58b07e653a6b938d0c0a63d *libs/x64/Cairo.dll
-9a6cbf714e835eacd7ac8b19d633c197 *libs/x64/symbols.rds
+073e447d0441f00fb7578776a5792856 *libs/i386/Cairo.dll
+f7910562fab4e3c89a31a1160bb0f744 *libs/i386/symbols.rds
+80a6385c0eff7d0ff41ec401410cf75c *libs/x64/Cairo.dll
+6bed448fa710349165781062b2f6b7b1 *libs/x64/symbols.rds
diff --git a/win32/deps/library/Cairo/Meta/Rd.rds b/win32/deps/library/Cairo/Meta/Rd.rds
index e610773..bddd7d4 100644
Binary files a/win32/deps/library/Cairo/Meta/Rd.rds and b/win32/deps/library/Cairo/Meta/Rd.rds differ
diff --git a/win32/deps/library/Cairo/Meta/hsearch.rds b/win32/deps/library/Cairo/Meta/hsearch.rds
index 4fe8318..374d623 100644
Binary files a/win32/deps/library/Cairo/Meta/hsearch.rds and b/win32/deps/library/Cairo/Meta/hsearch.rds
differ
diff --git a/win32/deps/library/Cairo/Meta/links.rds b/win32/deps/library/Cairo/Meta/links.rds
index 40cf766..7ef0f6b 100644
Binary files a/win32/deps/library/Cairo/Meta/links.rds and b/win32/deps/library/Cairo/Meta/links.rds differ
diff --git a/win32/deps/library/Cairo/Meta/nsInfo.rds b/win32/deps/library/Cairo/Meta/nsInfo.rds
index 6248edd..52bba9a 100644
Binary files a/win32/deps/library/Cairo/Meta/nsInfo.rds and b/win32/deps/library/Cairo/Meta/nsInfo.rds differ
diff --git a/win32/deps/library/Cairo/Meta/package.rds b/win32/deps/library/Cairo/Meta/package.rds
index 143bed0..18a6162 100644
Binary files a/win32/deps/library/Cairo/Meta/package.rds and b/win32/deps/library/Cairo/Meta/package.rds
differ
diff --git a/win32/deps/library/Cairo/NEWS b/win32/deps/library/Cairo/NEWS
index 5da0c42..485d629 100644
--- a/win32/deps/library/Cairo/NEWS
+++ b/win32/deps/library/Cairo/NEWS
@@ -1,5 +1,34 @@
NEWS/Changelog
+1.5-5 (2013-12-23)
+ o fix onSave reporting incorrect page number for the last page
+ (introduced in 1.5-4, closes #6)
+
+ o scale fonts unconditionally according to the dpi adjustment
+ (fixes issues with grid graphics and dpi changes)
+
+
+1.5-4 (2013-12-12)
+ o fix invalid pointsize scaling if dpi auto-detection is used
+ (closes #1)
+
+ o fix failure to emit final page in some multi-page settings
+ (closes #4)
+
+ o the `res' parameter in CairoPNG(), CairoTIFF() and CairoJPEG()
+ it now passed down to Cairo() which now accepts `res' to
+ override the value of `dpi' if `res' is set to anyhting other
+ than NA or NULL. (closes #3)
+
+ o release onSave callback function on close (closes #2)
+
+
+1.5-3 (2013-12-03)
+ o remove compatibility layers to make R 3.x happy
+
+ o adjust pointsize according to the dpi setting
+
+
1.5-2 (2012-11-05)
o added Cairo.onSave() callback which allows R code to be run
when Cairo finishes a page
diff --git a/win32/deps/library/Cairo/R/Cairo b/win32/deps/library/Cairo/R/Cairo
index ac8cebe..3b65e3c 100644
--- a/win32/deps/library/Cairo/R/Cairo
+++ b/win32/deps/library/Cairo/R/Cairo
@@ -1,9 +1,27 @@
+# File share/R/nspackloader.R
+# Part of the R package, http://www.R-project.org
+#
+# Copyright (C) 1995-2012 The R Core Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# A copy of the GNU General Public License is available at
+# http://www.r-project.org/Licenses/
+
local({
info <- loadingNamespaceInfo()
- ns <- .Internal(getRegisteredNamespace(as.name(info$pkgname)))
+ pkg <- info$pkgname
+ ns <- .getNamespace(as.name(pkg))
if (is.null(ns))
- stop("cannot find namespace environment");
- barepackage <- sub("([^-]+)_.*", "\\1", info$pkgname)
- dbbase <- file.path(info$libname, info$pkgname, "R", barepackage)
+ stop("cannot find namespace environment for ", pkg, domain = NA);
+ dbbase <- file.path(info$libname, pkg, "R", pkg)
lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
})
diff --git a/win32/deps/library/Cairo/R/Cairo.rdb b/win32/deps/library/Cairo/R/Cairo.rdb
index bfa6b1b..84a21fe 100644
Binary files a/win32/deps/library/Cairo/R/Cairo.rdb and b/win32/deps/library/Cairo/R/Cairo.rdb differ
diff --git a/win32/deps/library/Cairo/R/Cairo.rdx b/win32/deps/library/Cairo/R/Cairo.rdx
index 84252c7..f009bfb 100644
Binary files a/win32/deps/library/Cairo/R/Cairo.rdx and b/win32/deps/library/Cairo/R/Cairo.rdx differ
diff --git a/win32/deps/library/Cairo/help/Cairo.rdb b/win32/deps/library/Cairo/help/Cairo.rdb
index 1155c10..255cc48 100644
Binary files a/win32/deps/library/Cairo/help/Cairo.rdb and b/win32/deps/library/Cairo/help/Cairo.rdb differ
diff --git a/win32/deps/library/Cairo/help/Cairo.rdx b/win32/deps/library/Cairo/help/Cairo.rdx
index 6ed70c9..936421c 100644
Binary files a/win32/deps/library/Cairo/help/Cairo.rdx and b/win32/deps/library/Cairo/help/Cairo.rdx differ
diff --git a/win32/deps/library/Cairo/help/aliases.rds b/win32/deps/library/Cairo/help/aliases.rds
index 79a01c7..d002f95 100644
Binary files a/win32/deps/library/Cairo/help/aliases.rds and b/win32/deps/library/Cairo/help/aliases.rds
differ
diff --git a/win32/deps/library/Cairo/help/paths.rds b/win32/deps/library/Cairo/help/paths.rds
index 697d544..4a85ee0 100644
Binary files a/win32/deps/library/Cairo/help/paths.rds and b/win32/deps/library/Cairo/help/paths.rds differ
diff --git a/win32/deps/library/Cairo/html/00Index.html b/win32/deps/library/Cairo/html/00Index.html
index 35e57ec..79c2e97 100644
--- a/win32/deps/library/Cairo/html/00Index.html
+++ b/win32/deps/library/Cairo/html/00Index.html
@@ -14,7 +14,7 @@ PostScript) and display (X11 and Win32) output.
<div align="center">
<a href="../../../doc/html/packages.html"><img src="../../../doc/html/left.jpg" alt="[Up]" width="30"
height="30" border="0"></a>
<a href="../../../doc/html/index.html"><img src="../../../doc/html/up.jpg" alt="[Top]" width="30"
height="30" border="0"></a>
-</div><h2>Documentation for package ‘Cairo’ version 1.5-2</h2>
+</div><h2>Documentation for package ‘Cairo’ version 1.5-5</h2>
<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
<li><a href="../NEWS">Package NEWS</a>.</li>
diff --git a/win32/deps/library/Cairo/libs/i386/Cairo.dll b/win32/deps/library/Cairo/libs/i386/Cairo.dll
index a2561b7..33a6c47 100644
Binary files a/win32/deps/library/Cairo/libs/i386/Cairo.dll and
b/win32/deps/library/Cairo/libs/i386/Cairo.dll differ
diff --git a/win32/deps/library/Cairo/libs/i386/symbols.rds b/win32/deps/library/Cairo/libs/i386/symbols.rds
index 370f74b..776e37b 100644
Binary files a/win32/deps/library/Cairo/libs/i386/symbols.rds and
b/win32/deps/library/Cairo/libs/i386/symbols.rds differ
diff --git a/win32/deps/library/Cairo/libs/x64/Cairo.dll b/win32/deps/library/Cairo/libs/x64/Cairo.dll
index b61e06b..bc4a810 100644
Binary files a/win32/deps/library/Cairo/libs/x64/Cairo.dll and b/win32/deps/library/Cairo/libs/x64/Cairo.dll
differ
diff --git a/win32/deps/library/Cairo/libs/x64/symbols.rds b/win32/deps/library/Cairo/libs/x64/symbols.rds
index f8b09cd..16f67d8 100644
Binary files a/win32/deps/library/Cairo/libs/x64/symbols.rds and
b/win32/deps/library/Cairo/libs/x64/symbols.rds differ
diff --git a/win32/deps/library/base/CITATION b/win32/deps/library/base/CITATION
index 44c3b29..954b9dc 100644
--- a/win32/deps/library/base/CITATION
+++ b/win32/deps/library/base/CITATION
@@ -4,14 +4,13 @@ bibentry("Manual",
organization = "R Foundation for Statistical Computing",
address = "Vienna, Austria",
year = version$year,
- note = "{ISBN} 3-900051-07-0",
url = "http://www.R-project.org/",
textVersion =
paste("R Core Team (", version$year, "). ",
"R: A language and environment for statistical computing. ",
"R Foundation for Statistical Computing, Vienna, Austria. ",
- "ISBN 3-900051-07-0, URL http://www.R-project.org/.",
+ "URL http://www.R-project.org/.",
sep=""),
mheader = "To cite R in publications use:",
diff --git a/win32/deps/library/base/DESCRIPTION b/win32/deps/library/base/DESCRIPTION
index 131ef4b..e147560 100644
--- a/win32/deps/library/base/DESCRIPTION
+++ b/win32/deps/library/base/DESCRIPTION
@@ -1,9 +1,9 @@
Package: base
-Version: 2.15.2
+Version: 3.0.2
Priority: base
Title: The R Base Package
Author: R Core Team and contributors worldwide
Maintainer: R Core Team <R-core r-project org>
Description: Base R functions
-License: Part of R 2.15.2
-Built: R 2.15.2; ; 2012-10-27 03:08:06 UTC; windows
+License: Part of R 3.0.2
+Built: R 3.0.2; ; 2013-09-25 15:41:32 UTC; windows
diff --git a/win32/deps/library/base/INDEX b/win32/deps/library/base/INDEX
index 355b8db..067098e 100644
--- a/win32/deps/library/base/INDEX
+++ b/win32/deps/library/base/INDEX
@@ -13,7 +13,7 @@
.standard_regexps Miscellaneous Internal/Programming Utilities
: Colon Operator
:: Double Colon and Triple Colon Operators
-@ Extract Slots
+@ Extract or Replace A Slot
Arithmetic Arithmetic Operators
AsIs Inhibit Interpretation/Conversion of Objects
Bessel Bessel Functions
@@ -94,7 +94,7 @@ as.function Convert Object to Function
assign Assign a Value to a Name
assignOps Assignment Operators
attach Attach Set of R Objects to Search Path
-attachNamespace Loading and Unloading Namespaces
+attachNamespace Loading and Unloading Name Spaces
attr Object Attributes
attributes Object Attribute Lists
autoload On-demand Loading of Packages
@@ -102,6 +102,7 @@ backsolve Solve an Upper or Lower Triangular System
base-package The R Base Package
basename Manipulate File Paths
bindenv Binding and Environment Adjustments
+bitwNot Bitwise Logical Operations
body Access to and Manipulation of the Body of a
Function
bquote Partial substitution in expressions
@@ -204,7 +205,6 @@ getHook Functions to Get and Set Hooks for Load,
getLoadedDLLs Get DLLs Loaded in Current Session
getNativeSymbolInfo Obtain a Description of one or more Native
(C/Fortran) Symbols
-getNumCConverters Management of .C argument conversion list
getTaskCallbackNames Query the Names of the Current Internal
Top-Level Task Callbacks
gettext Translate Text Messages
@@ -253,6 +253,7 @@ load Reload Saved Datasets
locales Query or Set Aspects of the Locale
log Logarithms and Exponentials
logical Logical Vectors
+long vector Long Vectors
lower.tri Lower and Upper Triangular Part of a Matrix
ls List Objects
make.names Make Syntactically Valid Names
@@ -328,7 +329,6 @@ readLines Read Text Lines from a Connection
readRDS Serialization Interface for Single Objects
readRenviron Set Environment Variables from a File
readline Read a Line from the Terminal
-real Real Vectors
reg.finalizer Finalization of Objects
regex Regular Expressions as used in R
regmatches Extract or Replace Matched Substrings
@@ -424,7 +424,8 @@ warning Warning Messages
warnings Print Warning Messages
weekdays Extract Parts of a POSIXt or Date Object
which Which indices are TRUE?
-which.min Where is the Min() or Max() ?
+which.min Where is the Min() or Max() or first TRUE or
+ FALSE ?
with Evaluate an Expression in a Data Environment
withVisible Return both a value and its visibility
write Write Data to a File
diff --git a/win32/deps/library/base/Meta/Rd.rds b/win32/deps/library/base/Meta/Rd.rds
index 2a05420..dd9e0b9 100644
Binary files a/win32/deps/library/base/Meta/Rd.rds and b/win32/deps/library/base/Meta/Rd.rds differ
diff --git a/win32/deps/library/base/Meta/demo.rds b/win32/deps/library/base/Meta/demo.rds
index f729e47..98e2767 100644
Binary files a/win32/deps/library/base/Meta/demo.rds and b/win32/deps/library/base/Meta/demo.rds differ
diff --git a/win32/deps/library/base/Meta/hsearch.rds b/win32/deps/library/base/Meta/hsearch.rds
index 2fa2f94..f7d84e1 100644
Binary files a/win32/deps/library/base/Meta/hsearch.rds and b/win32/deps/library/base/Meta/hsearch.rds differ
diff --git a/win32/deps/library/base/Meta/links.rds b/win32/deps/library/base/Meta/links.rds
index 70f142b..a6aa4da 100644
Binary files a/win32/deps/library/base/Meta/links.rds and b/win32/deps/library/base/Meta/links.rds differ
diff --git a/win32/deps/library/base/Meta/package.rds b/win32/deps/library/base/Meta/package.rds
index 573c2b6..43b617c 100644
Binary files a/win32/deps/library/base/Meta/package.rds and b/win32/deps/library/base/Meta/package.rds differ
diff --git a/win32/deps/library/base/R/Rprofile b/win32/deps/library/base/R/Rprofile
index 9ad2407..9580f48 100644
--- a/win32/deps/library/base/R/Rprofile
+++ b/win32/deps/library/base/R/Rprofile
@@ -107,6 +107,18 @@ invisible(.libPaths(c(unlist(strsplit(Sys.getenv("R_LIBS"), ";")),
unlist(strsplit(Sys.getenv("R_LIBS_USER"), ";"))
)))
+local({
+ popath <- Sys.getenv("R_TRANSLATIONS", "")
+ if(!nzchar(popath)) {
+ paths <- file.path(.libPaths(), "translations", "DESCRIPTION")
+ popath <- dirname(paths[file.exists(paths)][1])
+ }
+ bindtextdomain("R", popath)
+ bindtextdomain("R-base", popath)
+ bindtextdomain("RGui", popath)
+ assign(".popath", popath, .BaseNamespaceEnv)
+})
+
if(nzchar(Sys.getenv("R_PAPERSIZE"))) {
options(papersize = Sys.getenv("R_PAPERSIZE"))
} else {
diff --git a/win32/deps/library/base/R/base b/win32/deps/library/base/R/base
index 635aaf5..4cab9a4 100644
--- a/win32/deps/library/base/R/base
+++ b/win32/deps/library/base/R/base
@@ -1,4 +1,21 @@
-# Copyright (C) 1995-2012 The R Core Team
+# File src/library/base/baseloader.R
+# Part of the R package, http://www.R-project.org
+#
+# Copyright (C) 1995-2013 The R Core Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# A copy of the GNU General Public License is available at
+# http://www.r-project.org/Licenses/
+
## this should be kept in step with code in R/lazyload.R
.Internal(eval(quote({
@@ -48,12 +65,6 @@
set(n, e, envenv) # MUST do this immediately
key <- getFromFrame(n, env)
data <- lazyLoadDBfetch(key, datafile, compressed, envhook)
- ## comment from r41494
- ## modified the loading of old environments, so that those
- ## serialized with parent.env NULL are loaded with the
- ## parent.env=emptyenv(); and yes an alternative would have been
- ## baseenv(), but that was seldom the intention of folks that
- ## set the environment to NULL.
if (is.null(data$enclos))
parent.env(e) <- emptyenv()
else
@@ -62,9 +73,8 @@
for (i in seq_along(vars))
set(vars[i], data$bindings[[i]], e)
if (! is.null(data$attributes))
- attributes(e) <-data$attributes
- if (! is.null(data$isS4) && data$isS4)
- .Call("R_setS4Object", e, TRUE, TRUE, PACKAGE = "base")
+ attributes(e) <- data$attributes
+ ## there are no S4 objects in base
if (! is.null(data$locked) && data$locked)
.Internal(lockEnvironment(e, FALSE))
e
@@ -95,5 +105,18 @@
}), .Internal(new.env(FALSE, baseenv(), 29L)), baseenv()))
## keep in sync with R/zzz.R
-as.numeric <- as.real <- as.double
+as.numeric <- as.double
is.name <- is.symbol
+
+
+## populate C/Fortran symbols
+local({
+ routines <- getDLLRegisteredRoutines("base")
+ for (i in c("dchdc", # chol, deprecated
+ "dqrcf", "dqrdc2", "dqrqty", "dqrqy", "dqrrsd", "dqrxb", # qr
+ "dtrco")) # .kappa_tri
+ assign(paste0(".F_", i), routines[[3]][[i]], envir = .BaseNamespaceEnv)
+ for(i in 1:2)
+ lapply(routines[[i]],
+ function(sym) assign(paste0(".C_", sym$name), sym, envir = .BaseNamespaceEnv))
+})
diff --git a/win32/deps/library/base/R/base.rdb b/win32/deps/library/base/R/base.rdb
index b49bca5..6b6624a 100644
Binary files a/win32/deps/library/base/R/base.rdb and b/win32/deps/library/base/R/base.rdb differ
diff --git a/win32/deps/library/base/R/base.rdx b/win32/deps/library/base/R/base.rdx
index b2b395c..8b6bc71 100644
Binary files a/win32/deps/library/base/R/base.rdx and b/win32/deps/library/base/R/base.rdx differ
diff --git a/win32/deps/library/base/demo/error.catching.R b/win32/deps/library/base/demo/error.catching.R
index 55db352..ed90159 100644
--- a/win32/deps/library/base/demo/error.catching.R
+++ b/win32/deps/library/base/demo/error.catching.R
@@ -7,18 +7,15 @@
### Here's a solution (see R-help mailing list, Dec 9, 2010): ###
##================================================================##
-##' We want to catch *and* save both errors and warnings, and in the case of
+##' Catch *and* save both errors and warnings, and in the case of
##' a warning, also keep the computed result.
##'
-##' @title tryCatch both warnings and errors
-##' @param expr
+##' @title tryCatch both warnings (with value) and errors
+##' @param expr an \R expression to evaluate
##' @return a list with 'value' and 'warning', where
##' 'value' may be an error caught.
-##' @author Martin Maechler
-
-# Copyright (C) 2010 The R Core Team
-
-
+##' @author Martin Maechler;
+##' Copyright (C) 2010-2012 The R Core Team
tryCatch.W.E <- function(expr)
{
W <- NULL
diff --git a/win32/deps/library/base/demo/is.things.R b/win32/deps/library/base/demo/is.things.R
index b5dac61..6531411 100644
--- a/win32/deps/library/base/demo/is.things.R
+++ b/win32/deps/library/base/demo/is.things.R
@@ -30,7 +30,7 @@ is.method <- function(fname) {
}
is.ALL <- function(obj, func.names = ls(pos=length(search())),
- not.using = c("is.single", "is.loaded",
+ not.using = c("is.single", "is.real", "is.loaded",
"is.empty.model", "is.R", "is.element", "is.unsorted"),
true.only = FALSE, debug = FALSE)
{
diff --git a/win32/deps/library/base/help/AnIndex b/win32/deps/library/base/help/AnIndex
index 1a75a9b..4d54708 100644
--- a/win32/deps/library/base/help/AnIndex
+++ b/win32/deps/library/base/help/AnIndex
@@ -32,6 +32,9 @@ $<-.data.frame Extract.data.frame
-.POSIXt DateTimeClasses
-> assignOps
->> assignOps
+... Reserved
+..1 Reserved
+..getNamespace ns-internal
.Alias base-defunct
.amatch_bounds agrep
.amatch_costs agrep
@@ -48,10 +51,17 @@ $<-.data.frame Extract.data.frame
.colMeans colSums
.colSums colSums
.conflicts.OK attach
+.C_R_addTaskCallback base-internal
+.C_R_getbcprofcounts base-internal
+.C_R_getTaskCallbackNames base-internal
+.C_R_removeTaskCallback base-internal
+.C_R_startbcprof base-internal
+.C_R_stopbcprof base-internal
.decode_numeric_version numeric_version
.Defunct Defunct
.deparseOpts deparseOpts
.Deprecated Deprecated
+.detach base-internal
.Device dev
.Devices dev
.difftime base-internal
@@ -63,12 +73,21 @@ $<-.data.frame Extract.data.frame
.Export base-defunct
.External CallExternal
.External.graphics Foreign-internal
-.find.package find.package
+.External2 Foreign-internal
+.find.package base-deprecated
.First Startup
.First.lib base-defunct
.First.sys Startup
.Firstlib_as_onLoad base-internal
.Fortran Foreign
+.F_dchdc base-internal
+.F_dqrcf base-internal
+.F_dqrdc2 base-internal
+.F_dqrqty base-internal
+.F_dqrqy base-internal
+.F_dqrrsd base-internal
+.F_dqrxb base-internal
+.F_dtrco base-internal
.Generic UseMethod
.GenericArgsEnv base-internal
.getNamespace ns-internal
@@ -99,6 +118,7 @@ $<-.data.frame Extract.data.frame
.Machine zMachine
.makeMessage message
.make_numeric_version numeric_version
+.mapply base-internal
.mergeExportMethods ns-internal
.mergeImportMethods ns-internal
.Method UseMethod
@@ -107,14 +127,16 @@ $<-.data.frame Extract.data.frame
.NotYetImplemented notyet
.NotYetUsed notyet
.onAttach ns-hooks
+.onDetach ns-hooks
.onLoad ns-hooks
.onUnload ns-hooks
.Options options
.OptRequireMethods Startup
.packages zpackages
.packageStartupMessage message
-.path.package find.package
+.path.package base-deprecated
.Platform Platform
+.popath base-internal
.POSIXct base-internal
.POSIXlt base-internal
.Primitive Primitive
@@ -160,6 +182,7 @@ $<-.data.frame Extract.data.frame
Comparison
= Comparison
@ slotOp
+@<- slotOp
abbreviate abbreviate
abs MathFun
acos Trig
@@ -177,7 +200,7 @@ all.equal.formula all.equal
all.equal.language all.equal
all.equal.list all.equal
all.equal.numeric all.equal
-all.equal.POSIXct DateTimeClasses
+all.equal.POSIXct all.equal
all.equal.raw all.equal
all.names allnames
all.vars allnames
@@ -300,7 +323,7 @@ as.POSIXlt.numeric as.POSIXlt
as.POSIXlt.POSIXct as.POSIXlt
as.qr qr
as.raw raw
-as.real real
+as.real base-defunct
as.single double
as.single.default double
as.symbol name
@@ -349,6 +372,12 @@ bindenv bindenv
bindingIsActive bindenv
bindingIsLocked bindenv
bindtextdomain gettext
+bitwAnd bitwise
+bitwNot bitwise
+bitwOr bitwise
+bitwShiftL bitwise
+bitwShiftR bitwise
+bitwXor bitwise
body body
body<- body
bquote bquote
@@ -389,6 +418,7 @@ chol2inv chol2inv
choose Special
class class
class<- class
+clearPushBack pushBack
clipboard connections
close connections
close.connection connections
@@ -598,8 +628,6 @@ get get
getAllConnections showConnections
getCallingDLL getCallingDLL
getCallingDLLe getCallingDLL
-getCConverterDescriptions converters
-getCConverterStatus converters
getConnection showConnections
getDLLRegisteredRoutines getDLLRegisteredRoutines
getDLLRegisteredRoutines.character getDLLRegisteredRoutines
@@ -618,7 +646,6 @@ getNamespaceName ns-reflect
getNamespaceUsers ns-reflect
getNamespaceVersion ns-reflect
getNativeSymbolInfo getNativeSymbolInfo
-getNumCConverters converters
getOption options
getRversion numeric_version
getSrcLines srcfile
@@ -711,7 +738,7 @@ is.primitive is.function
is.qr qr
is.R isR
is.raw raw
-is.real real
+is.real base-defunct
is.recursive is.recursive
is.single is.single
is.symbol name
@@ -800,6 +827,9 @@ log2 Log
logb Log
Logic Logic
logical logical
+long vector LongVectors
+Long vectors LongVectors
+long vectors LongVectors
lower.tri lower.tri
ls ls
Machine base-defunct
@@ -829,7 +859,6 @@ matrix matrix
max Extremes
max.col maxCol
mean mean
-mean.data.frame mean
mean.Date Dates
mean.default mean
mean.difftime difftime
@@ -1008,6 +1037,7 @@ promise delayedAssign
promises delayedAssign
prop.table prop.table
provide base-defunct
+provideDimnames dimnames
psigamma Special
pushBack pushBack
pushBackLength pushBack
@@ -1059,7 +1089,7 @@ readline readline
readLines readLines
readRDS readRDS
readRenviron readRenviron
-real real
+real base-defunct
Recall Recall
Reduce funprog
reg.finalizer reg.finalizer
@@ -1074,7 +1104,6 @@ regmatches regmatches
regmatches<- regmatches
regular expression regex
remove rm
-removeCConverter converters
removeTaskCallback taskCallback
Renviron Startup
Renviron.site Startup
@@ -1088,6 +1117,7 @@ rep.POSIXlt rep
repeat Control
replace replace
replicate lapply
+rep_len rep
require library
requireNamespace ns-load
Reserved Reserved
@@ -1178,7 +1208,6 @@ seq_along seq
seq_len seq
serialize serialize
set.seed Random
-setCConverterStatus converters
setdiff sets
setequal sets
setHook userhooks
@@ -1283,6 +1312,7 @@ Summary.POSIXct DateTimeClasses
summary.POSIXct DateTimeClasses
Summary.POSIXlt DateTimeClasses
summary.POSIXlt DateTimeClasses
+summary.proc_time proc.time
summary.srcfile srcfile
summary.srcref srcfile
summary.table table
@@ -1472,6 +1502,7 @@ zapsmall zapsmall
[.POSIXct DateTimeClasses
[.POSIXlt DateTimeClasses
[.simple.list Extract
+[.warnings warnings
[<- Extract
[<-.data.frame Extract.data.frame
[<-.Date Dates
diff --git a/win32/deps/library/base/help/aliases.rds b/win32/deps/library/base/help/aliases.rds
index 1bf7866..e4c8623 100644
Binary files a/win32/deps/library/base/help/aliases.rds and b/win32/deps/library/base/help/aliases.rds differ
diff --git a/win32/deps/library/base/help/base.rdb b/win32/deps/library/base/help/base.rdb
index f39468b..d5a1d3e 100644
Binary files a/win32/deps/library/base/help/base.rdb and b/win32/deps/library/base/help/base.rdb differ
diff --git a/win32/deps/library/base/help/base.rdx b/win32/deps/library/base/help/base.rdx
index ffc4d72..df24aeb 100644
Binary files a/win32/deps/library/base/help/base.rdx and b/win32/deps/library/base/help/base.rdx differ
diff --git a/win32/deps/library/base/help/paths.rds b/win32/deps/library/base/help/paths.rds
index 8afbb39..a1e48dd 100644
Binary files a/win32/deps/library/base/help/paths.rds and b/win32/deps/library/base/help/paths.rds differ
diff --git a/win32/deps/library/base/html/00Index.html b/win32/deps/library/base/html/00Index.html
index ce65b04..5c6e42b 100644
--- a/win32/deps/library/base/html/00Index.html
+++ b/win32/deps/library/base/html/00Index.html
@@ -10,7 +10,7 @@
<div align="center">
<a href="../../../doc/html/packages.html"><img src="../../../doc/html/left.jpg" alt="[Up]" width="30"
height="30" border="0"></a>
<a href="../../../doc/html/index.html"><img src="../../../doc/html/up.jpg" alt="[Top]" width="30"
height="30" border="0"></a>
-</div><h2>Documentation for package ‘base’ version 2.15.2</h2>
+</div><h2>Documentation for package ‘base’ version 3.0.2</h2>
<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
<li><a href="../demo">Code demos</a>. Use <a href="../../utils/help/demo">demo()</a> to run them.</li>
@@ -77,8 +77,6 @@
<td>Are All Values True?</td></tr>
<tr><td width="25%"><a href="all.equal.html">all.equal</a></td>
<td>Test if Two Objects are (Nearly) Equal</td></tr>
-<tr><td width="25%"><a href="DateTimeClasses.html">all.equal.POSIXct</a></td>
-<td>Date-Time Classes</td></tr>
<tr><td width="25%"><a href="allnames.html">all.names</a></td>
<td>Find All Names in an Expression</td></tr>
<tr><td width="25%"><a href="allnames.html">all.vars</a></td>
@@ -199,8 +197,6 @@
<td>The QR Decomposition of a Matrix</td></tr>
<tr><td width="25%"><a href="raw.html">as.raw</a></td>
<td>Raw Vectors</td></tr>
-<tr><td width="25%"><a href="real.html">as.real</a></td>
-<td>Real Vectors</td></tr>
<tr><td width="25%"><a href="double.html">as.single</a></td>
<td>Double-Precision Vectors</td></tr>
<tr><td width="25%"><a href="name.html">as.symbol</a></td>
@@ -234,7 +230,7 @@
<tr><td width="25%"><a href="attach.html">attach</a></td>
<td>Attach Set of R Objects to Search Path</td></tr>
<tr><td width="25%"><a href="ns-load.html">attachNamespace</a></td>
-<td>Loading and Unloading Namespaces</td></tr>
+<td>Loading and Unloading Name Spaces</td></tr>
<tr><td width="25%"><a href="attr.html">attr</a></td>
<td>Object Attributes</td></tr>
<tr><td width="25%"><a href="all.equal.html">attr.all.equal</a></td>
@@ -286,6 +282,18 @@
<td>Binding and Environment Adjustments</td></tr>
<tr><td width="25%"><a href="gettext.html">bindtextdomain</a></td>
<td>Translate Text Messages</td></tr>
+<tr><td width="25%"><a href="bitwise.html">bitwAnd</a></td>
+<td>Bitwise Logical Operations</td></tr>
+<tr><td width="25%"><a href="bitwise.html">bitwNot</a></td>
+<td>Bitwise Logical Operations</td></tr>
+<tr><td width="25%"><a href="bitwise.html">bitwOr</a></td>
+<td>Bitwise Logical Operations</td></tr>
+<tr><td width="25%"><a href="bitwise.html">bitwShiftL</a></td>
+<td>Bitwise Logical Operations</td></tr>
+<tr><td width="25%"><a href="bitwise.html">bitwShiftR</a></td>
+<td>Bitwise Logical Operations</td></tr>
+<tr><td width="25%"><a href="bitwise.html">bitwXor</a></td>
+<td>Bitwise Logical Operations</td></tr>
<tr><td width="25%"><a href="body.html">body</a></td>
<td>Access to and Manipulation of the Body of a Function</td></tr>
<tr><td width="25%"><a href="bquote.html">bquote</a></td>
@@ -357,6 +365,8 @@
<td>Special Functions of Mathematics</td></tr>
<tr><td width="25%"><a href="class.html">class</a></td>
<td>Object Classes</td></tr>
+<tr><td width="25%"><a href="pushBack.html">clearPushBack</a></td>
+<td>Push Text Back on to a Connection</td></tr>
<tr><td width="25%"><a href="connections.html">clipboard</a></td>
<td>Functions to Manipulate Connections</td></tr>
<tr><td width="25%"><a href="connections.html">close</a></td>
@@ -715,10 +725,6 @@
<td>Return the Value of a Named Object</td></tr>
<tr><td width="25%"><a href="showConnections.html">getAllConnections</a></td>
<td>Display Connections</td></tr>
-<tr><td width="25%"><a href="converters.html">getCConverterDescriptions</a></td>
-<td>Management of .C argument conversion list</td></tr>
-<tr><td width="25%"><a href="converters.html">getCConverterStatus</a></td>
-<td>Management of .C argument conversion list</td></tr>
<tr><td width="25%"><a href="showConnections.html">getConnection</a></td>
<td>Display Connections</td></tr>
<tr><td width="25%"><a href="getDLLRegisteredRoutines.html">getDLLRegisteredRoutines</a></td>
@@ -733,8 +739,6 @@
<td>Get DLLs Loaded in Current Session</td></tr>
<tr><td width="25%"><a href="getNativeSymbolInfo.html">getNativeSymbolInfo</a></td>
<td>Obtain a Description of one or more Native (C/Fortran) Symbols</td></tr>
-<tr><td width="25%"><a href="converters.html">getNumCConverters</a></td>
-<td>Management of .C argument conversion list</td></tr>
<tr><td width="25%"><a href="options.html">getOption</a></td>
<td>Options Settings</td></tr>
<tr><td width="25%"><a href="numeric_version.html">getRversion</a></td>
@@ -913,8 +917,6 @@
<td>Are we using R, rather than S?</td></tr>
<tr><td width="25%"><a href="raw.html">is.raw</a></td>
<td>Raw Vectors</td></tr>
-<tr><td width="25%"><a href="real.html">is.real</a></td>
-<td>Real Vectors</td></tr>
<tr><td width="25%"><a href="is.recursive.html">is.recursive</a></td>
<td>Is an Object Atomic or Recursive?</td></tr>
<tr><td width="25%"><a href="is.single.html">is.single</a></td>
@@ -1035,9 +1037,9 @@
<tr><td width="25%"><a href="load.html">load</a></td>
<td>Reload Saved Datasets</td></tr>
<tr><td width="25%"><a href="ns-load.html">loadedNamespaces</a></td>
-<td>Loading and Unloading Namespaces</td></tr>
+<td>Loading and Unloading Name Spaces</td></tr>
<tr><td width="25%"><a href="ns-load.html">loadNamespace</a></td>
-<td>Loading and Unloading Namespaces</td></tr>
+<td>Loading and Unloading Name Spaces</td></tr>
<tr><td width="25%"><a href="eval.html">local</a></td>
<td>Evaluate an (Unevaluated) Expression</td></tr>
<tr><td width="25%"><a href="Sys.localeconv.html">localeconv</a></td>
@@ -1062,6 +1064,12 @@
<td>Logical Operators</td></tr>
<tr><td width="25%"><a href="logical.html">logical</a></td>
<td>Logical Vectors</td></tr>
+<tr><td width="25%"><a href="LongVectors.html">long vector</a></td>
+<td>Long Vectors</td></tr>
+<tr><td width="25%"><a href="LongVectors.html">Long vectors</a></td>
+<td>Long Vectors</td></tr>
+<tr><td width="25%"><a href="LongVectors.html">long vectors</a></td>
+<td>Long Vectors</td></tr>
<tr><td width="25%"><a href="lower.tri.html">lower.tri</a></td>
<td>Lower and Upper Triangular Part of a Matrix</td></tr>
<tr><td width="25%"><a href="ls.html">ls</a></td>
@@ -1394,6 +1402,8 @@
<td>Delay Evaluation</td></tr>
<tr><td width="25%"><a href="prop.table.html">prop.table</a></td>
<td>Express Table Entries as Fraction of Marginal Table</td></tr>
+<tr><td width="25%"><a href="dimnames.html">provideDimnames</a></td>
+<td>Dimnames of an Object</td></tr>
<tr><td width="25%"><a href="Special.html">psigamma</a></td>
<td>Special Functions of Mathematics</td></tr>
<tr><td width="25%"><a href="pushBack.html">pushBack</a></td>
@@ -1496,8 +1506,6 @@
<td>Serialization Interface for Single Objects</td></tr>
<tr><td width="25%"><a href="readRenviron.html">readRenviron</a></td>
<td>Set Environment Variables from a File</td></tr>
-<tr><td width="25%"><a href="real.html">real</a></td>
-<td>Real Vectors</td></tr>
<tr><td width="25%"><a href="Recall.html">Recall</a></td>
<td>Recursive Calling</td></tr>
<tr><td width="25%"><a href="funprog.html">Reduce</a></td>
@@ -1520,8 +1528,6 @@
<td>Regular Expressions as used in R</td></tr>
<tr><td width="25%"><a href="rm.html">remove</a></td>
<td>Remove Objects from a Specified Environment</td></tr>
-<tr><td width="25%"><a href="converters.html">removeCConverter</a></td>
-<td>Management of .C argument conversion list</td></tr>
<tr><td width="25%"><a href="taskCallback.html">removeTaskCallback</a></td>
<td>Add or Remove a Top-Level Task Callback</td></tr>
<tr><td width="25%"><a href="Startup.html">Renviron</a></td>
@@ -1536,10 +1542,12 @@
<td>Replace Values in a Vector</td></tr>
<tr><td width="25%"><a href="lapply.html">replicate</a></td>
<td>Apply a Function over a List or Vector</td></tr>
+<tr><td width="25%"><a href="rep.html">rep_len</a></td>
+<td>Replicate Elements of Vectors and Lists</td></tr>
<tr><td width="25%"><a href="library.html">require</a></td>
<td>Loading and Listing of Packages</td></tr>
<tr><td width="25%"><a href="ns-load.html">requireNamespace</a></td>
-<td>Loading and Unloading Namespaces</td></tr>
+<td>Loading and Unloading Name Spaces</td></tr>
<tr><td width="25%"><a href="Reserved.html">Reserved</a></td>
<td>Reserved Words in R</td></tr>
<tr><td width="25%"><a href="Reserved.html">reserved</a></td>
@@ -1685,8 +1693,6 @@
<td>Simple Serialization Interface</td></tr>
<tr><td width="25%"><a href="Random.html">set.seed</a></td>
<td>Random Number Generation</td></tr>
-<tr><td width="25%"><a href="converters.html">setCConverterStatus</a></td>
-<td>Management of .C argument conversion list</td></tr>
<tr><td width="25%"><a href="sets.html">setdiff</a></td>
<td>Set Operations</td></tr>
<tr><td width="25%"><a href="sets.html">setequal</a></td>
@@ -1845,6 +1851,8 @@
<td>Date-Time Classes</td></tr>
<tr><td width="25%"><a href="DateTimeClasses.html">Summary.POSIXlt</a></td>
<td>Date-Time Classes</td></tr>
+<tr><td width="25%"><a href="proc.time.html">summary.proc_time</a></td>
+<td>Running Time of R</td></tr>
<tr><td width="25%"><a href="srcfile.html">summary.srcfile</a></td>
<td>References to source files</td></tr>
<tr><td width="25%"><a href="srcfile.html">summary.srcref</a></td>
@@ -2038,7 +2046,7 @@
<tr><td width="25%"><a href="unlist.html">unlist</a></td>
<td>Flatten Lists</td></tr>
<tr><td width="25%"><a href="ns-load.html">unloadNamespace</a></td>
-<td>Loading and Unloading Namespaces</td></tr>
+<td>Loading and Unloading Name Spaces</td></tr>
<tr><td width="25%"><a href="bindenv.html">unlockBinding</a></td>
<td>Binding and Environment Adjustments</td></tr>
<tr><td width="25%"><a href="unname.html">unname</a></td>
@@ -2088,9 +2096,9 @@
<tr><td width="25%"><a href="which.html">which</a></td>
<td>Which indices are TRUE?</td></tr>
<tr><td width="25%"><a href="which.min.html">which.max</a></td>
-<td>Where is the Min() or Max() ?</td></tr>
+<td>Where is the Min() or Max() or first TRUE or FALSE ?</td></tr>
<tr><td width="25%"><a href="which.min.html">which.min</a></td>
-<td>Where is the Min() or Max() ?</td></tr>
+<td>Where is the Min() or Max() or first TRUE or FALSE ?</td></tr>
<tr><td width="25%"><a href="Control.html">while</a></td>
<td>Control Flow</td></tr>
<tr><td width="25%"><a href="with.html">with</a></td>
@@ -2208,6 +2216,10 @@
<td>Assignment Operators</td></tr>
<tr><td width="25%"><a href="assignOps.html">->></a></td>
<td>Assignment Operators</td></tr>
+<tr><td width="25%"><a href="Reserved.html">...</a></td>
+<td>Reserved Words in R</td></tr>
+<tr><td width="25%"><a href="Reserved.html">..1</a></td>
+<td>Reserved Words in R</td></tr>
<tr><td width="25%"><a href="agrep.html">.amatch_bounds</a></td>
<td>Approximate String Matching (Fuzzy Matching)</td></tr>
<tr><td width="25%"><a href="agrep.html">.amatch_costs</a></td>
@@ -2254,8 +2266,6 @@
<td>Search Paths for Packages</td></tr>
<tr><td width="25%"><a href="CallExternal.html">.External</a></td>
<td>Modern Interfaces to C/C++ code</td></tr>
-<tr><td width="25%"><a href="find.package.html">.find.package</a></td>
-<td>Find Packages</td></tr>
<tr><td width="25%"><a href="Startup.html">.First</a></td>
<td>Initialization at Start of an R Session</td></tr>
<tr><td width="25%"><a href="Startup.html">.First.sys</a></td>
@@ -2310,6 +2320,8 @@
<td>Not Yet Implemented Functions and Unused Arguments</td></tr>
<tr><td width="25%"><a href="ns-hooks.html">.onAttach</a></td>
<td>Hooks for Namespace Events</td></tr>
+<tr><td width="25%"><a href="ns-hooks.html">.onDetach</a></td>
+<td>Hooks for Namespace Events</td></tr>
<tr><td width="25%"><a href="ns-hooks.html">.onLoad</a></td>
<td>Hooks for Namespace Events</td></tr>
<tr><td width="25%"><a href="ns-hooks.html">.onUnload</a></td>
@@ -2322,8 +2334,6 @@
<td>Listing of Packages</td></tr>
<tr><td width="25%"><a href="message.html">.packageStartupMessage</a></td>
<td>Diagnostic Messages</td></tr>
-<tr><td width="25%"><a href="find.package.html">.path.package</a></td>
-<td>Find Packages</td></tr>
<tr><td width="25%"><a href="Platform.html">.Platform</a></td>
<td>Platform Specific Variables</td></tr>
<tr><td width="25%"><a href="Primitive.html">.Primitive</a></td>
@@ -2385,7 +2395,9 @@
<tr><td width="25%"><a href="Comparison.html">>=</a></td>
<td>Relational Operators</td></tr>
<tr><td width="25%"><a href="slotOp.html">@</a></td>
-<td>Extract Slots</td></tr>
+<td>Extract or Replace A Slot</td></tr>
+<tr><td width="25%"><a href="slotOp.html">@<-</a></td>
+<td>Extract or Replace A Slot</td></tr>
<tr><td width="25%"><a href="Extract.html">[</a></td>
<td>Extract or Replace Parts of an Object</td></tr>
<tr><td width="25%"><a href="AsIs.html">[.AsIs</a></td>
@@ -2414,6 +2426,8 @@
<td>Date-Time Classes</td></tr>
<tr><td width="25%"><a href="Extract.html">[.simple.list</a></td>
<td>Extract or Replace Parts of an Object</td></tr>
+<tr><td width="25%"><a href="warnings.html">[.warnings</a></td>
+<td>Print Warning Messages</td></tr>
<tr><td width="25%"><a href="Extract.html">[<-</a></td>
<td>Extract or Replace Parts of an Object</td></tr>
<tr><td width="25%"><a href="Extract.data.frame.html">[<-.data.frame</a></td>
diff --git a/win32/deps/library/datasets/DESCRIPTION b/win32/deps/library/datasets/DESCRIPTION
index 03afe20..021e946 100644
--- a/win32/deps/library/datasets/DESCRIPTION
+++ b/win32/deps/library/datasets/DESCRIPTION
@@ -1,9 +1,9 @@
Package: datasets
-Version: 2.15.2
+Version: 3.0.2
Priority: base
Title: The R Datasets Package
Author: R Core Team and contributors worldwide
Maintainer: R Core Team <R-core r-project org>
Description: Base R datasets
-License: Part of R 2.15.2
-Built: R 2.15.2; ; 2012-10-27 03:07:02 UTC; windows
+License: Part of R 3.0.2
+Built: R 3.0.2; ; 2013-09-25 15:40:36 UTC; windows
diff --git a/win32/deps/library/datasets/INDEX b/win32/deps/library/datasets/INDEX
index e9a37cc..7175ac0 100644
--- a/win32/deps/library/datasets/INDEX
+++ b/win32/deps/library/datasets/INDEX
@@ -71,6 +71,7 @@ mtcars Motor Trend Car Road Tests
nhtemp Average Yearly Temperatures in New Haven
nottem Average Monthly Temperatures at Nottingham,
1920-1939
+npk Classical N, P, K Factorial Experiment
occupationalStatus Occupational Status of Fathers and their Sons
precip Annual Precipitation in US Cities
presidents Quarterly Approval Ratings of US Presidents
diff --git a/win32/deps/library/datasets/Meta/Rd.rds b/win32/deps/library/datasets/Meta/Rd.rds
index 4e28191..ff4b5cd 100644
Binary files a/win32/deps/library/datasets/Meta/Rd.rds and b/win32/deps/library/datasets/Meta/Rd.rds differ
diff --git a/win32/deps/library/datasets/Meta/data.rds b/win32/deps/library/datasets/Meta/data.rds
index e89c28f..97d2520 100644
Binary files a/win32/deps/library/datasets/Meta/data.rds and b/win32/deps/library/datasets/Meta/data.rds
differ
diff --git a/win32/deps/library/datasets/Meta/hsearch.rds b/win32/deps/library/datasets/Meta/hsearch.rds
index 36d475f..2adc81a 100644
Binary files a/win32/deps/library/datasets/Meta/hsearch.rds and
b/win32/deps/library/datasets/Meta/hsearch.rds differ
diff --git a/win32/deps/library/datasets/Meta/links.rds b/win32/deps/library/datasets/Meta/links.rds
index a6e5e04..32e5627 100644
Binary files a/win32/deps/library/datasets/Meta/links.rds and b/win32/deps/library/datasets/Meta/links.rds
differ
diff --git a/win32/deps/library/datasets/Meta/nsInfo.rds b/win32/deps/library/datasets/Meta/nsInfo.rds
index b825b2a..a2cf1c3 100644
Binary files a/win32/deps/library/datasets/Meta/nsInfo.rds and b/win32/deps/library/datasets/Meta/nsInfo.rds
differ
diff --git a/win32/deps/library/datasets/Meta/package.rds b/win32/deps/library/datasets/Meta/package.rds
index 53dd299..6bfc253 100644
Binary files a/win32/deps/library/datasets/Meta/package.rds and
b/win32/deps/library/datasets/Meta/package.rds differ
diff --git a/win32/deps/library/datasets/data/Rdata.rdb b/win32/deps/library/datasets/data/Rdata.rdb
index 8a37907..c022064 100644
Binary files a/win32/deps/library/datasets/data/Rdata.rdb and b/win32/deps/library/datasets/data/Rdata.rdb
differ
diff --git a/win32/deps/library/datasets/data/Rdata.rds b/win32/deps/library/datasets/data/Rdata.rds
index 9119841..a867cc3 100644
Binary files a/win32/deps/library/datasets/data/Rdata.rds and b/win32/deps/library/datasets/data/Rdata.rds
differ
diff --git a/win32/deps/library/datasets/data/Rdata.rdx b/win32/deps/library/datasets/data/Rdata.rdx
index b94434b..7ab469e 100644
Binary files a/win32/deps/library/datasets/data/Rdata.rdx and b/win32/deps/library/datasets/data/Rdata.rdx
differ
diff --git a/win32/deps/library/datasets/help/AnIndex b/win32/deps/library/datasets/help/AnIndex
index 89d78e7..46c35c8 100644
--- a/win32/deps/library/datasets/help/AnIndex
+++ b/win32/deps/library/datasets/help/AnIndex
@@ -56,6 +56,7 @@ mtcars mtcars
nhtemp nhtemp
Nile Nile
nottem nottem
+npk npk
occupationalStatus occupationalStatus
Orange Orange
OrchardSprays OrchardSprays
diff --git a/win32/deps/library/datasets/help/aliases.rds b/win32/deps/library/datasets/help/aliases.rds
index 1e1f980..8254cb4 100644
Binary files a/win32/deps/library/datasets/help/aliases.rds and
b/win32/deps/library/datasets/help/aliases.rds differ
diff --git a/win32/deps/library/datasets/help/datasets.rdb b/win32/deps/library/datasets/help/datasets.rdb
index 82f6008..15e8fdb 100644
Binary files a/win32/deps/library/datasets/help/datasets.rdb and
b/win32/deps/library/datasets/help/datasets.rdb differ
diff --git a/win32/deps/library/datasets/help/datasets.rdx b/win32/deps/library/datasets/help/datasets.rdx
index 1ede2a0..6f7bf42 100644
Binary files a/win32/deps/library/datasets/help/datasets.rdx and
b/win32/deps/library/datasets/help/datasets.rdx differ
diff --git a/win32/deps/library/datasets/help/paths.rds b/win32/deps/library/datasets/help/paths.rds
index 9e914ab..65d0c2b 100644
Binary files a/win32/deps/library/datasets/help/paths.rds and b/win32/deps/library/datasets/help/paths.rds
differ
diff --git a/win32/deps/library/datasets/html/00Index.html b/win32/deps/library/datasets/html/00Index.html
index 0bab6ab..f2c40b6 100644
--- a/win32/deps/library/datasets/html/00Index.html
+++ b/win32/deps/library/datasets/html/00Index.html
@@ -10,7 +10,7 @@
<div align="center">
<a href="../../../doc/html/packages.html"><img src="../../../doc/html/left.jpg" alt="[Up]" width="30"
height="30" border="0"></a>
<a href="../../../doc/html/index.html"><img src="../../../doc/html/up.jpg" alt="[Top]" width="30"
height="30" border="0"></a>
-</div><h2>Documentation for package ‘datasets’ version 2.15.2</h2>
+</div><h2>Documentation for package ‘datasets’ version 3.0.2</h2>
<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
</ul>
@@ -220,6 +220,8 @@
<td>Flow of the River Nile</td></tr>
<tr><td width="25%"><a href="nottem.html">nottem</a></td>
<td>Average Monthly Temperatures at Nottingham, 1920-1939</td></tr>
+<tr><td width="25%"><a href="npk.html">npk</a></td>
+<td>Classical N, P, K Factorial Experiment</td></tr>
</table>
<h2><a name="O">-- O --</a></h2>
diff --git a/win32/deps/library/grDevices/DESCRIPTION b/win32/deps/library/grDevices/DESCRIPTION
index ee7afcb..455e1af 100644
--- a/win32/deps/library/grDevices/DESCRIPTION
+++ b/win32/deps/library/grDevices/DESCRIPTION
@@ -1,9 +1,9 @@
Package: grDevices
-Version: 2.15.2
+Version: 3.0.2
Priority: base
Title: The R Graphics Devices and Support for Colours and Fonts
Author: R Core Team and contributors worldwide
Maintainer: R Core Team <R-core r-project org>
Description: Graphics devices and support for base and grid graphics
-License: Part of R 2.15.2
-Built: R 2.15.2; x86_64-w64-mingw32; 2012-10-27 03:05:46 UTC; windows
+License: Part of R 3.0.2
+Built: R 3.0.2; x86_64-w64-mingw32; 2013-09-25 15:39:14 UTC; windows
diff --git a/win32/deps/library/grDevices/Meta/Rd.rds b/win32/deps/library/grDevices/Meta/Rd.rds
index 96579d4..0683f25 100644
Binary files a/win32/deps/library/grDevices/Meta/Rd.rds and b/win32/deps/library/grDevices/Meta/Rd.rds differ
diff --git a/win32/deps/library/grDevices/Meta/hsearch.rds b/win32/deps/library/grDevices/Meta/hsearch.rds
index 357442d..31151db 100644
Binary files a/win32/deps/library/grDevices/Meta/hsearch.rds and
b/win32/deps/library/grDevices/Meta/hsearch.rds differ
diff --git a/win32/deps/library/grDevices/Meta/links.rds b/win32/deps/library/grDevices/Meta/links.rds
index 8033b9f..27fde93 100644
Binary files a/win32/deps/library/grDevices/Meta/links.rds and b/win32/deps/library/grDevices/Meta/links.rds
differ
diff --git a/win32/deps/library/grDevices/Meta/nsInfo.rds b/win32/deps/library/grDevices/Meta/nsInfo.rds
index cb66138..d30fd86 100644
Binary files a/win32/deps/library/grDevices/Meta/nsInfo.rds and
b/win32/deps/library/grDevices/Meta/nsInfo.rds differ
diff --git a/win32/deps/library/grDevices/Meta/package.rds b/win32/deps/library/grDevices/Meta/package.rds
index b8bf427..bff3730 100644
Binary files a/win32/deps/library/grDevices/Meta/package.rds and
b/win32/deps/library/grDevices/Meta/package.rds differ
diff --git a/win32/deps/library/grDevices/NAMESPACE b/win32/deps/library/grDevices/NAMESPACE
index cfc1de6..e692bfc 100644
--- a/win32/deps/library/grDevices/NAMESPACE
+++ b/win32/deps/library/grDevices/NAMESPACE
@@ -1,18 +1,4 @@
-## Explicitly enumerate the symbols here that are in the registration
-## information rather than use .registration as there are symbols that
-## conflict with functions on Windows, i.e. savePlot.
-
-if(tools:::.OStype() == "windows") {
- useDynLib(grDevices, R_chull, R_CreateAtVector, R_GAxisPars,
- PicTeX, PostScript, XFig, PDF,
- Cdevga=devga, CsavePlot=savePlot, devCairo,
- Type1FontInUse, CIDFontInUse, R_GD_nullDevice)
-} else {
- useDynLib(grDevices, R_chull, R_CreateAtVector, R_GAxisPars,
- PicTeX, PostScript, XFig, PDF, CQuartz = Quartz, devCairo,
- Type1FontInUse, CIDFontInUse, R_GD_nullDevice,
- cairoProps, makeQuartzDefault)
-}
+useDynLib(grDevices, .registration = TRUE, .fixes = "C_")
export(Hershey, adjustcolor, as.graphicsAnnot, as.raster, axisTicks, blues9,
boxplot.stats, check.options, chull, CIDFont, col2rgb, colors,
@@ -26,7 +12,7 @@ export(Hershey, adjustcolor, as.graphicsAnnot, as.raster, axisTicks, blues9,
getGraphicsEventEnv, graphics.off, gray, grey, gray.colors,
grey.colors, heat.colors, hsv, hcl, is.raster, make.rgb,
n2mfrow, nclass.Sturges, nclass.FD, nclass.scott, palette, pdf,
- pdf.options, pdfFonts, pictex, postscript, postscriptFont,
+ pdf.options, pdfFonts, pictex, postscript,
postscriptFonts, ps.options, rainbow, recordGraphics,
recordPlot, replayPlot, rgb, rgb2hsv, savePlot, setEPS,
setGraphicsEventEnv, setGraphicsEventHandlers, setPS,
@@ -34,7 +20,7 @@ export(Hershey, adjustcolor, as.graphicsAnnot, as.raster, axisTicks, blues9,
xfig, xyTable, xy.coords, xyz.coords)
## devices common to all platforms
-export(X11, x11, bitmap, bmp, jpeg, png, tiff)
+export(X11, x11, bitmap, bmp, cairo_pdf, cairo_ps, jpeg, png, svg, tiff)
S3method(print, recordedplot)
S3method(print, colorConverter)
@@ -68,11 +54,10 @@ S3method(pretty, POSIXt)
if(tools:::.OStype() == "windows") {
export(bringToTop, msgWindow, win.graph, win.metafile, win.print,
windows, windows.options, windowsFont, windowsFonts)
- export(cairo_pdf, cairo_ps, svg)
S3method("[", SavedPlots)
S3method(print, SavedPlots)
} else {
- export(cairo_pdf, cairo_ps, X11.options, X11Font, X11Fonts,
- quartz, quartz.options, quartzFont, quartzFonts, svg)
+ export(X11.options, X11Font, X11Fonts,
+ quartz, quartz.options, quartz.save, quartzFont, quartzFonts)
}
diff --git a/win32/deps/library/grDevices/R/grDevices b/win32/deps/library/grDevices/R/grDevices
index ac8cebe..3b65e3c 100644
--- a/win32/deps/library/grDevices/R/grDevices
+++ b/win32/deps/library/grDevices/R/grDevices
@@ -1,9 +1,27 @@
+# File share/R/nspackloader.R
+# Part of the R package, http://www.R-project.org
+#
+# Copyright (C) 1995-2012 The R Core Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# A copy of the GNU General Public License is available at
+# http://www.r-project.org/Licenses/
+
local({
info <- loadingNamespaceInfo()
- ns <- .Internal(getRegisteredNamespace(as.name(info$pkgname)))
+ pkg <- info$pkgname
+ ns <- .getNamespace(as.name(pkg))
if (is.null(ns))
- stop("cannot find namespace environment");
- barepackage <- sub("([^-]+)_.*", "\\1", info$pkgname)
- dbbase <- file.path(info$libname, info$pkgname, "R", barepackage)
+ stop("cannot find namespace environment for ", pkg, domain = NA);
+ dbbase <- file.path(info$libname, pkg, "R", pkg)
lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
})
diff --git a/win32/deps/library/grDevices/R/grDevices.rdb b/win32/deps/library/grDevices/R/grDevices.rdb
index 0b80c44..cc3193f 100644
Binary files a/win32/deps/library/grDevices/R/grDevices.rdb and
b/win32/deps/library/grDevices/R/grDevices.rdb differ
diff --git a/win32/deps/library/grDevices/R/grDevices.rdx b/win32/deps/library/grDevices/R/grDevices.rdx
index b40faab..792cd27 100644
Binary files a/win32/deps/library/grDevices/R/grDevices.rdx and
b/win32/deps/library/grDevices/R/grDevices.rdx differ
diff --git a/win32/deps/library/grDevices/afm/CM_boldx_10.afm.gz
b/win32/deps/library/grDevices/afm/CM_boldx_10.afm.gz
index 1647728..6725cf8 100644
Binary files a/win32/deps/library/grDevices/afm/CM_boldx_10.afm.gz and
b/win32/deps/library/grDevices/afm/CM_boldx_10.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/CM_boldx_italic_10.afm.gz
b/win32/deps/library/grDevices/afm/CM_boldx_italic_10.afm.gz
index 4203fac..7286df4 100644
Binary files a/win32/deps/library/grDevices/afm/CM_boldx_italic_10.afm.gz and
b/win32/deps/library/grDevices/afm/CM_boldx_italic_10.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/CM_italic_10.afm.gz
b/win32/deps/library/grDevices/afm/CM_italic_10.afm.gz
index 0acc43c..f59cb85 100644
Binary files a/win32/deps/library/grDevices/afm/CM_italic_10.afm.gz and
b/win32/deps/library/grDevices/afm/CM_italic_10.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/CM_regular_10.afm.gz
b/win32/deps/library/grDevices/afm/CM_regular_10.afm.gz
index 10f12b4..5c4925e 100644
Binary files a/win32/deps/library/grDevices/afm/CM_regular_10.afm.gz and
b/win32/deps/library/grDevices/afm/CM_regular_10.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/CM_symbol_10.afm.gz
b/win32/deps/library/grDevices/afm/CM_symbol_10.afm.gz
index 4163593..6a84e53 100644
Binary files a/win32/deps/library/grDevices/afm/CM_symbol_10.afm.gz and
b/win32/deps/library/grDevices/afm/CM_symbol_10.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/Courier-Bold.afm.gz
b/win32/deps/library/grDevices/afm/Courier-Bold.afm.gz
index 04ecb51..a3c6d64 100644
Binary files a/win32/deps/library/grDevices/afm/Courier-Bold.afm.gz and
b/win32/deps/library/grDevices/afm/Courier-Bold.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/Courier-BoldOblique.afm.gz
b/win32/deps/library/grDevices/afm/Courier-BoldOblique.afm.gz
index dad0c9a..b01b0a6 100644
Binary files a/win32/deps/library/grDevices/afm/Courier-BoldOblique.afm.gz and
b/win32/deps/library/grDevices/afm/Courier-BoldOblique.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/Courier-Oblique.afm.gz
b/win32/deps/library/grDevices/afm/Courier-Oblique.afm.gz
index 119a915..0ffcdaf 100644
Binary files a/win32/deps/library/grDevices/afm/Courier-Oblique.afm.gz and
b/win32/deps/library/grDevices/afm/Courier-Oblique.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/Courier.afm.gz b/win32/deps/library/grDevices/afm/Courier.afm.gz
index 5742c2d..d457f2e 100644
Binary files a/win32/deps/library/grDevices/afm/Courier.afm.gz and
b/win32/deps/library/grDevices/afm/Courier.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/Helvetica-Bold.afm.gz
b/win32/deps/library/grDevices/afm/Helvetica-Bold.afm.gz
index f89498d..038b77d 100644
Binary files a/win32/deps/library/grDevices/afm/Helvetica-Bold.afm.gz and
b/win32/deps/library/grDevices/afm/Helvetica-Bold.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/Helvetica-BoldOblique.afm.gz
b/win32/deps/library/grDevices/afm/Helvetica-BoldOblique.afm.gz
index 25f3e96..e604c66 100644
Binary files a/win32/deps/library/grDevices/afm/Helvetica-BoldOblique.afm.gz and
b/win32/deps/library/grDevices/afm/Helvetica-BoldOblique.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/Helvetica-Oblique.afm.gz
b/win32/deps/library/grDevices/afm/Helvetica-Oblique.afm.gz
index 5762c14..78cf1a0 100644
Binary files a/win32/deps/library/grDevices/afm/Helvetica-Oblique.afm.gz and
b/win32/deps/library/grDevices/afm/Helvetica-Oblique.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/Helvetica.afm.gz
b/win32/deps/library/grDevices/afm/Helvetica.afm.gz
index 518c3a3..d829c04 100644
Binary files a/win32/deps/library/grDevices/afm/Helvetica.afm.gz and
b/win32/deps/library/grDevices/afm/Helvetica.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/Symbol.afm.gz b/win32/deps/library/grDevices/afm/Symbol.afm.gz
index f29339a..24cf429 100644
Binary files a/win32/deps/library/grDevices/afm/Symbol.afm.gz and
b/win32/deps/library/grDevices/afm/Symbol.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/Times-Bold.afm.gz
b/win32/deps/library/grDevices/afm/Times-Bold.afm.gz
index 95bece0..6fa32f4 100644
Binary files a/win32/deps/library/grDevices/afm/Times-Bold.afm.gz and
b/win32/deps/library/grDevices/afm/Times-Bold.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/Times-BoldItalic.afm.gz
b/win32/deps/library/grDevices/afm/Times-BoldItalic.afm.gz
index 6a48ab9..6bee71a 100644
Binary files a/win32/deps/library/grDevices/afm/Times-BoldItalic.afm.gz and
b/win32/deps/library/grDevices/afm/Times-BoldItalic.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/Times-Italic.afm.gz
b/win32/deps/library/grDevices/afm/Times-Italic.afm.gz
index 8e235f9..2a60d16 100644
Binary files a/win32/deps/library/grDevices/afm/Times-Italic.afm.gz and
b/win32/deps/library/grDevices/afm/Times-Italic.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/Times-Roman.afm.gz
b/win32/deps/library/grDevices/afm/Times-Roman.afm.gz
index c26d2c6..5e7c08e 100644
Binary files a/win32/deps/library/grDevices/afm/Times-Roman.afm.gz and
b/win32/deps/library/grDevices/afm/Times-Roman.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/ZapfDingbats.afm.gz
b/win32/deps/library/grDevices/afm/ZapfDingbats.afm.gz
index a816165..7cbe932 100644
Binary files a/win32/deps/library/grDevices/afm/ZapfDingbats.afm.gz and
b/win32/deps/library/grDevices/afm/ZapfDingbats.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/a010013l.afm.gz
b/win32/deps/library/grDevices/afm/a010013l.afm.gz
index 7831084..62f8a83 100644
Binary files a/win32/deps/library/grDevices/afm/a010013l.afm.gz and
b/win32/deps/library/grDevices/afm/a010013l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/a010015l.afm.gz
b/win32/deps/library/grDevices/afm/a010015l.afm.gz
index c05f961..f02976b 100644
Binary files a/win32/deps/library/grDevices/afm/a010015l.afm.gz and
b/win32/deps/library/grDevices/afm/a010015l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/a010033l.afm.gz
b/win32/deps/library/grDevices/afm/a010033l.afm.gz
index 6bcef68..1c5dc3c 100644
Binary files a/win32/deps/library/grDevices/afm/a010033l.afm.gz and
b/win32/deps/library/grDevices/afm/a010033l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/a010035l.afm.gz
b/win32/deps/library/grDevices/afm/a010035l.afm.gz
index bbecc00..973cdd0 100644
Binary files a/win32/deps/library/grDevices/afm/a010035l.afm.gz and
b/win32/deps/library/grDevices/afm/a010035l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/agd_____.afm.gz
b/win32/deps/library/grDevices/afm/agd_____.afm.gz
index 0007386..590c2a0 100644
Binary files a/win32/deps/library/grDevices/afm/agd_____.afm.gz and
b/win32/deps/library/grDevices/afm/agd_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/agdo____.afm.gz
b/win32/deps/library/grDevices/afm/agdo____.afm.gz
index 980f29c..6e3bbd3 100644
Binary files a/win32/deps/library/grDevices/afm/agdo____.afm.gz and
b/win32/deps/library/grDevices/afm/agdo____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/agw_____.afm.gz
b/win32/deps/library/grDevices/afm/agw_____.afm.gz
index f91b3b5..06e60e9 100644
Binary files a/win32/deps/library/grDevices/afm/agw_____.afm.gz and
b/win32/deps/library/grDevices/afm/agw_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/agwo____.afm.gz
b/win32/deps/library/grDevices/afm/agwo____.afm.gz
index d763bd5..f235c3b 100644
Binary files a/win32/deps/library/grDevices/afm/agwo____.afm.gz and
b/win32/deps/library/grDevices/afm/agwo____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/b018012l.afm.gz
b/win32/deps/library/grDevices/afm/b018012l.afm.gz
index 1881d1b..4377b5f 100644
Binary files a/win32/deps/library/grDevices/afm/b018012l.afm.gz and
b/win32/deps/library/grDevices/afm/b018012l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/b018015l.afm.gz
b/win32/deps/library/grDevices/afm/b018015l.afm.gz
index 4e1d8a7..46799ea 100644
Binary files a/win32/deps/library/grDevices/afm/b018015l.afm.gz and
b/win32/deps/library/grDevices/afm/b018015l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/b018032l.afm.gz
b/win32/deps/library/grDevices/afm/b018032l.afm.gz
index 90d5433..ac49965 100644
Binary files a/win32/deps/library/grDevices/afm/b018032l.afm.gz and
b/win32/deps/library/grDevices/afm/b018032l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/b018035l.afm.gz
b/win32/deps/library/grDevices/afm/b018035l.afm.gz
index b823526..27c0671 100644
Binary files a/win32/deps/library/grDevices/afm/b018035l.afm.gz and
b/win32/deps/library/grDevices/afm/b018035l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/bkd_____.afm.gz
b/win32/deps/library/grDevices/afm/bkd_____.afm.gz
index feaa926..76b92c6 100644
Binary files a/win32/deps/library/grDevices/afm/bkd_____.afm.gz and
b/win32/deps/library/grDevices/afm/bkd_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/bkdi____.afm.gz
b/win32/deps/library/grDevices/afm/bkdi____.afm.gz
index 8124426..baf2b93 100644
Binary files a/win32/deps/library/grDevices/afm/bkdi____.afm.gz and
b/win32/deps/library/grDevices/afm/bkdi____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/bkl_____.afm.gz
b/win32/deps/library/grDevices/afm/bkl_____.afm.gz
index 2f3cdb7..4120525 100644
Binary files a/win32/deps/library/grDevices/afm/bkl_____.afm.gz and
b/win32/deps/library/grDevices/afm/bkl_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/bkli____.afm.gz
b/win32/deps/library/grDevices/afm/bkli____.afm.gz
index 2420541..027093a 100644
Binary files a/win32/deps/library/grDevices/afm/bkli____.afm.gz and
b/win32/deps/library/grDevices/afm/bkli____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/c059013l.afm.gz
b/win32/deps/library/grDevices/afm/c059013l.afm.gz
index d78d8ef..f3a13b7 100644
Binary files a/win32/deps/library/grDevices/afm/c059013l.afm.gz and
b/win32/deps/library/grDevices/afm/c059013l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/c059016l.afm.gz
b/win32/deps/library/grDevices/afm/c059016l.afm.gz
index bdf90a7..332d6df 100644
Binary files a/win32/deps/library/grDevices/afm/c059016l.afm.gz and
b/win32/deps/library/grDevices/afm/c059016l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/c059033l.afm.gz
b/win32/deps/library/grDevices/afm/c059033l.afm.gz
index e7727cb..5cb9632 100644
Binary files a/win32/deps/library/grDevices/afm/c059033l.afm.gz and
b/win32/deps/library/grDevices/afm/c059033l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/c059036l.afm.gz
b/win32/deps/library/grDevices/afm/c059036l.afm.gz
index 253b27f..3fb62c1 100644
Binary files a/win32/deps/library/grDevices/afm/c059036l.afm.gz and
b/win32/deps/library/grDevices/afm/c059036l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/cmbxti10.afm.gz
b/win32/deps/library/grDevices/afm/cmbxti10.afm.gz
index 1b4243f..d14bb94 100644
Binary files a/win32/deps/library/grDevices/afm/cmbxti10.afm.gz and
b/win32/deps/library/grDevices/afm/cmbxti10.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/cmti10.afm.gz b/win32/deps/library/grDevices/afm/cmti10.afm.gz
index bfee45b..995edce 100644
Binary files a/win32/deps/library/grDevices/afm/cmti10.afm.gz and
b/win32/deps/library/grDevices/afm/cmti10.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/cob_____.afm.gz
b/win32/deps/library/grDevices/afm/cob_____.afm.gz
index 42b2661..4eb055d 100644
Binary files a/win32/deps/library/grDevices/afm/cob_____.afm.gz and
b/win32/deps/library/grDevices/afm/cob_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/cobo____.afm.gz
b/win32/deps/library/grDevices/afm/cobo____.afm.gz
index 0c4ea40..4b93a28 100644
Binary files a/win32/deps/library/grDevices/afm/cobo____.afm.gz and
b/win32/deps/library/grDevices/afm/cobo____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/com_____.afm.gz
b/win32/deps/library/grDevices/afm/com_____.afm.gz
index e498048..656069b 100644
Binary files a/win32/deps/library/grDevices/afm/com_____.afm.gz and
b/win32/deps/library/grDevices/afm/com_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/coo_____.afm.gz
b/win32/deps/library/grDevices/afm/coo_____.afm.gz
index ccf43c6..618acf7 100644
Binary files a/win32/deps/library/grDevices/afm/coo_____.afm.gz and
b/win32/deps/library/grDevices/afm/coo_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/hv______.afm.gz
b/win32/deps/library/grDevices/afm/hv______.afm.gz
index a6722e3..290e9cd 100644
Binary files a/win32/deps/library/grDevices/afm/hv______.afm.gz and
b/win32/deps/library/grDevices/afm/hv______.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/hvb_____.afm.gz
b/win32/deps/library/grDevices/afm/hvb_____.afm.gz
index 37d72be..f3f7cbe 100644
Binary files a/win32/deps/library/grDevices/afm/hvb_____.afm.gz and
b/win32/deps/library/grDevices/afm/hvb_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/hvbo____.afm.gz
b/win32/deps/library/grDevices/afm/hvbo____.afm.gz
index e6f911c..c63529c 100644
Binary files a/win32/deps/library/grDevices/afm/hvbo____.afm.gz and
b/win32/deps/library/grDevices/afm/hvbo____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/hvn_____.afm.gz
b/win32/deps/library/grDevices/afm/hvn_____.afm.gz
index 6678a75..c17f9b9 100644
Binary files a/win32/deps/library/grDevices/afm/hvn_____.afm.gz and
b/win32/deps/library/grDevices/afm/hvn_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/hvnb____.afm.gz
b/win32/deps/library/grDevices/afm/hvnb____.afm.gz
index eb0835e..a226e62 100644
Binary files a/win32/deps/library/grDevices/afm/hvnb____.afm.gz and
b/win32/deps/library/grDevices/afm/hvnb____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/hvnbo___.afm.gz
b/win32/deps/library/grDevices/afm/hvnbo___.afm.gz
index ea6fce9..0113ff9 100644
Binary files a/win32/deps/library/grDevices/afm/hvnbo___.afm.gz and
b/win32/deps/library/grDevices/afm/hvnbo___.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/hvno____.afm.gz
b/win32/deps/library/grDevices/afm/hvno____.afm.gz
index 9620e7e..0b4f89d 100644
Binary files a/win32/deps/library/grDevices/afm/hvno____.afm.gz and
b/win32/deps/library/grDevices/afm/hvno____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/hvo_____.afm.gz
b/win32/deps/library/grDevices/afm/hvo_____.afm.gz
index 7af2259..03c3ba4 100644
Binary files a/win32/deps/library/grDevices/afm/hvo_____.afm.gz and
b/win32/deps/library/grDevices/afm/hvo_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n019003l.afm.gz
b/win32/deps/library/grDevices/afm/n019003l.afm.gz
index 0992cf5..547a066 100644
Binary files a/win32/deps/library/grDevices/afm/n019003l.afm.gz and
b/win32/deps/library/grDevices/afm/n019003l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n019004l.afm.gz
b/win32/deps/library/grDevices/afm/n019004l.afm.gz
index 59b1180..090c3f7 100644
Binary files a/win32/deps/library/grDevices/afm/n019004l.afm.gz and
b/win32/deps/library/grDevices/afm/n019004l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n019023l.afm.gz
b/win32/deps/library/grDevices/afm/n019023l.afm.gz
index 8217b8f..df4eb3c 100644
Binary files a/win32/deps/library/grDevices/afm/n019023l.afm.gz and
b/win32/deps/library/grDevices/afm/n019023l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n019024l.afm.gz
b/win32/deps/library/grDevices/afm/n019024l.afm.gz
index bee8d41..7c181f4 100644
Binary files a/win32/deps/library/grDevices/afm/n019024l.afm.gz and
b/win32/deps/library/grDevices/afm/n019024l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n019043l.afm.gz
b/win32/deps/library/grDevices/afm/n019043l.afm.gz
index 6910b42..8ae67ac 100644
Binary files a/win32/deps/library/grDevices/afm/n019043l.afm.gz and
b/win32/deps/library/grDevices/afm/n019043l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n019044l.afm.gz
b/win32/deps/library/grDevices/afm/n019044l.afm.gz
index bee9079..bf7859f 100644
Binary files a/win32/deps/library/grDevices/afm/n019044l.afm.gz and
b/win32/deps/library/grDevices/afm/n019044l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n019063l.afm.gz
b/win32/deps/library/grDevices/afm/n019063l.afm.gz
index 12dd710..12665ec 100644
Binary files a/win32/deps/library/grDevices/afm/n019063l.afm.gz and
b/win32/deps/library/grDevices/afm/n019063l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n019064l.afm.gz
b/win32/deps/library/grDevices/afm/n019064l.afm.gz
index fc1bdfb..6a7839d 100644
Binary files a/win32/deps/library/grDevices/afm/n019064l.afm.gz and
b/win32/deps/library/grDevices/afm/n019064l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n021003l.afm.gz
b/win32/deps/library/grDevices/afm/n021003l.afm.gz
index 6e2da3e..b9c9ec8 100644
Binary files a/win32/deps/library/grDevices/afm/n021003l.afm.gz and
b/win32/deps/library/grDevices/afm/n021003l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n021004l.afm.gz
b/win32/deps/library/grDevices/afm/n021004l.afm.gz
index 9a2d93f..6cd444d 100644
Binary files a/win32/deps/library/grDevices/afm/n021004l.afm.gz and
b/win32/deps/library/grDevices/afm/n021004l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n021023l.afm.gz
b/win32/deps/library/grDevices/afm/n021023l.afm.gz
index a587388..cd40447 100644
Binary files a/win32/deps/library/grDevices/afm/n021023l.afm.gz and
b/win32/deps/library/grDevices/afm/n021023l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n021024l.afm.gz
b/win32/deps/library/grDevices/afm/n021024l.afm.gz
index aa1b553..fe70662 100644
Binary files a/win32/deps/library/grDevices/afm/n021024l.afm.gz and
b/win32/deps/library/grDevices/afm/n021024l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n022003l.afm.gz
b/win32/deps/library/grDevices/afm/n022003l.afm.gz
index e7c7370..d2696a6 100644
Binary files a/win32/deps/library/grDevices/afm/n022003l.afm.gz and
b/win32/deps/library/grDevices/afm/n022003l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n022004l.afm.gz
b/win32/deps/library/grDevices/afm/n022004l.afm.gz
index da8828d..3e49fd7 100644
Binary files a/win32/deps/library/grDevices/afm/n022004l.afm.gz and
b/win32/deps/library/grDevices/afm/n022004l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n022023l.afm.gz
b/win32/deps/library/grDevices/afm/n022023l.afm.gz
index 582afe1..9310f87 100644
Binary files a/win32/deps/library/grDevices/afm/n022023l.afm.gz and
b/win32/deps/library/grDevices/afm/n022023l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/n022024l.afm.gz
b/win32/deps/library/grDevices/afm/n022024l.afm.gz
index 1ebecaa..8ee18ad 100644
Binary files a/win32/deps/library/grDevices/afm/n022024l.afm.gz and
b/win32/deps/library/grDevices/afm/n022024l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/ncb_____.afm.gz
b/win32/deps/library/grDevices/afm/ncb_____.afm.gz
index 18bf0f3..d1c9d67 100644
Binary files a/win32/deps/library/grDevices/afm/ncb_____.afm.gz and
b/win32/deps/library/grDevices/afm/ncb_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/ncbi____.afm.gz
b/win32/deps/library/grDevices/afm/ncbi____.afm.gz
index 13934c8..8273ba8 100644
Binary files a/win32/deps/library/grDevices/afm/ncbi____.afm.gz and
b/win32/deps/library/grDevices/afm/ncbi____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/nci_____.afm.gz
b/win32/deps/library/grDevices/afm/nci_____.afm.gz
index a80c067..261c57e 100644
Binary files a/win32/deps/library/grDevices/afm/nci_____.afm.gz and
b/win32/deps/library/grDevices/afm/nci_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/ncr_____.afm.gz
b/win32/deps/library/grDevices/afm/ncr_____.afm.gz
index b3a8377..7f079e6 100644
Binary files a/win32/deps/library/grDevices/afm/ncr_____.afm.gz and
b/win32/deps/library/grDevices/afm/ncr_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/p052003l.afm.gz
b/win32/deps/library/grDevices/afm/p052003l.afm.gz
index a50f130..3a77347 100644
Binary files a/win32/deps/library/grDevices/afm/p052003l.afm.gz and
b/win32/deps/library/grDevices/afm/p052003l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/p052004l.afm.gz
b/win32/deps/library/grDevices/afm/p052004l.afm.gz
index bcc5434..63a191f 100644
Binary files a/win32/deps/library/grDevices/afm/p052004l.afm.gz and
b/win32/deps/library/grDevices/afm/p052004l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/p052023l.afm.gz
b/win32/deps/library/grDevices/afm/p052023l.afm.gz
index 7860a00..203ef89 100644
Binary files a/win32/deps/library/grDevices/afm/p052023l.afm.gz and
b/win32/deps/library/grDevices/afm/p052023l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/p052024l.afm.gz
b/win32/deps/library/grDevices/afm/p052024l.afm.gz
index 097fdfb..8a70d7e 100644
Binary files a/win32/deps/library/grDevices/afm/p052024l.afm.gz and
b/win32/deps/library/grDevices/afm/p052024l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/pob_____.afm.gz
b/win32/deps/library/grDevices/afm/pob_____.afm.gz
index c2c6959..35f1d5e 100644
Binary files a/win32/deps/library/grDevices/afm/pob_____.afm.gz and
b/win32/deps/library/grDevices/afm/pob_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/pobi____.afm.gz
b/win32/deps/library/grDevices/afm/pobi____.afm.gz
index 237c01e..f4c2e9b 100644
Binary files a/win32/deps/library/grDevices/afm/pobi____.afm.gz and
b/win32/deps/library/grDevices/afm/pobi____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/poi_____.afm.gz
b/win32/deps/library/grDevices/afm/poi_____.afm.gz
index 70c69e9..233016c 100644
Binary files a/win32/deps/library/grDevices/afm/poi_____.afm.gz and
b/win32/deps/library/grDevices/afm/poi_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/por_____.afm.gz
b/win32/deps/library/grDevices/afm/por_____.afm.gz
index afe482e..a76cbc5 100644
Binary files a/win32/deps/library/grDevices/afm/por_____.afm.gz and
b/win32/deps/library/grDevices/afm/por_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/s050000l.afm.gz
b/win32/deps/library/grDevices/afm/s050000l.afm.gz
index 3c0684d..b5bc07b 100644
Binary files a/win32/deps/library/grDevices/afm/s050000l.afm.gz and
b/win32/deps/library/grDevices/afm/s050000l.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/sy______.afm.gz
b/win32/deps/library/grDevices/afm/sy______.afm.gz
index 96e542c..a3dc701 100644
Binary files a/win32/deps/library/grDevices/afm/sy______.afm.gz and
b/win32/deps/library/grDevices/afm/sy______.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/tib_____.afm.gz
b/win32/deps/library/grDevices/afm/tib_____.afm.gz
index e27c868..fbb94c1 100644
Binary files a/win32/deps/library/grDevices/afm/tib_____.afm.gz and
b/win32/deps/library/grDevices/afm/tib_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/tibi____.afm.gz
b/win32/deps/library/grDevices/afm/tibi____.afm.gz
index 2d22623..13025e0 100644
Binary files a/win32/deps/library/grDevices/afm/tibi____.afm.gz and
b/win32/deps/library/grDevices/afm/tibi____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/tii_____.afm.gz
b/win32/deps/library/grDevices/afm/tii_____.afm.gz
index 0cb428a..6b161cf 100644
Binary files a/win32/deps/library/grDevices/afm/tii_____.afm.gz and
b/win32/deps/library/grDevices/afm/tii_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/afm/tir_____.afm.gz
b/win32/deps/library/grDevices/afm/tir_____.afm.gz
index b6b271a..c73741c 100644
Binary files a/win32/deps/library/grDevices/afm/tir_____.afm.gz and
b/win32/deps/library/grDevices/afm/tir_____.afm.gz differ
diff --git a/win32/deps/library/grDevices/help/aliases.rds b/win32/deps/library/grDevices/help/aliases.rds
index c680af4..a78f019 100644
Binary files a/win32/deps/library/grDevices/help/aliases.rds and
b/win32/deps/library/grDevices/help/aliases.rds differ
diff --git a/win32/deps/library/grDevices/help/grDevices.rdb b/win32/deps/library/grDevices/help/grDevices.rdb
index aa8d8e6..144494b 100644
Binary files a/win32/deps/library/grDevices/help/grDevices.rdb and
b/win32/deps/library/grDevices/help/grDevices.rdb differ
diff --git a/win32/deps/library/grDevices/help/grDevices.rdx b/win32/deps/library/grDevices/help/grDevices.rdx
index d5374ae..583d228 100644
Binary files a/win32/deps/library/grDevices/help/grDevices.rdx and
b/win32/deps/library/grDevices/help/grDevices.rdx differ
diff --git a/win32/deps/library/grDevices/help/paths.rds b/win32/deps/library/grDevices/help/paths.rds
index c5697c5..3ee5926 100644
Binary files a/win32/deps/library/grDevices/help/paths.rds and b/win32/deps/library/grDevices/help/paths.rds
differ
diff --git a/win32/deps/library/grDevices/html/00Index.html b/win32/deps/library/grDevices/html/00Index.html
index 9e810cc..762ff06 100644
--- a/win32/deps/library/grDevices/html/00Index.html
+++ b/win32/deps/library/grDevices/html/00Index.html
@@ -10,9 +10,10 @@
<div align="center">
<a href="../../../doc/html/packages.html"><img src="../../../doc/html/left.jpg" alt="[Up]" width="30"
height="30" border="0"></a>
<a href="../../../doc/html/index.html"><img src="../../../doc/html/up.jpg" alt="[Top]" width="30"
height="30" border="0"></a>
-</div><h2>Documentation for package ‘grDevices’ version 2.15.2</h2>
+</div><h2>Documentation for package ‘grDevices’ version 3.0.2</h2>
<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
+<li><a href="../demo">Code demos</a>. Use <a href="../../utils/help/demo">demo()</a> to run them.</li>
</ul>
<h2>Help Pages</h2>
diff --git a/win32/deps/library/grDevices/libs/i386/Rbitmap.dll
b/win32/deps/library/grDevices/libs/i386/Rbitmap.dll
index 81fe79f..af7d7f3 100644
Binary files a/win32/deps/library/grDevices/libs/i386/Rbitmap.dll and
b/win32/deps/library/grDevices/libs/i386/Rbitmap.dll differ
diff --git a/win32/deps/library/grDevices/libs/i386/grDevices.dll
b/win32/deps/library/grDevices/libs/i386/grDevices.dll
index 1613427..5283c69 100644
Binary files a/win32/deps/library/grDevices/libs/i386/grDevices.dll and
b/win32/deps/library/grDevices/libs/i386/grDevices.dll differ
diff --git a/win32/deps/library/grDevices/libs/i386/winCairo.dll
b/win32/deps/library/grDevices/libs/i386/winCairo.dll
index 6cc542c..bb34fae 100644
Binary files a/win32/deps/library/grDevices/libs/i386/winCairo.dll and
b/win32/deps/library/grDevices/libs/i386/winCairo.dll differ
diff --git a/win32/deps/library/grDevices/tests/ps-tests.Rout.save
b/win32/deps/library/grDevices/tests/ps-tests.Rout.save
index 105f699..17aa5d1 100644
--- a/win32/deps/library/grDevices/tests/ps-tests.Rout.save
+++ b/win32/deps/library/grDevices/tests/ps-tests.Rout.save
@@ -1,7 +1,7 @@
-R : Copyright 2005, The R Foundation for Statistical Computing
-Version 2.3.0 Under development (unstable) (2005-11-06 r36200)
-ISBN 3-900051-07-0
+R version 3.0.2 RC (2013-09-22 r63960) -- "Frisbee Sailing"
+Copyright (C) 2013 The R Foundation for Statistical Computing
+Platform: x86_64-unknown-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
@@ -12,7 +12,7 @@ Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.
Type 'demo()' for some demos, 'help()' for on-line help, or
-'help.start()' for a HTML browser interface to help.
+'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.
## tests of the fonts in the postscript() device.
@@ -93,3 +93,6 @@ null device
unlink("ps-tests.ps")
+> proc.time()
+ user system elapsed
+ 0.709 0.019 0.726
diff --git a/win32/deps/library/grDevices/tests/xfig-tests.Rout.save
b/win32/deps/library/grDevices/tests/xfig-tests.Rout.save
index 91af2f6..6a5525f 100644
--- a/win32/deps/library/grDevices/tests/xfig-tests.Rout.save
+++ b/win32/deps/library/grDevices/tests/xfig-tests.Rout.save
@@ -1,7 +1,7 @@
-R version 2.9.0 Under development (unstable) (2009-01-21 r47661)
-Copyright (C) 2009 The R Foundation for Statistical Computing
-ISBN 3-900051-07-0
+R version 3.0.2 RC (2013-09-22 r63960) -- "Frisbee Sailing"
+Copyright (C) 2013 The R Foundation for Statistical Computing
+Platform: x86_64-unknown-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
@@ -100,3 +100,6 @@ Type 'q()' to quit R.
unlink("xfig-tests.fig")
+> proc.time()
+ user system elapsed
+ 0.295 0.025 0.316
diff --git a/win32/deps/library/graphics/DESCRIPTION b/win32/deps/library/graphics/DESCRIPTION
index 19c169a..66dbaaf 100644
--- a/win32/deps/library/graphics/DESCRIPTION
+++ b/win32/deps/library/graphics/DESCRIPTION
@@ -1,10 +1,10 @@
Package: graphics
-Version: 2.15.2
+Version: 3.0.2
Priority: base
Title: The R Graphics Package
Author: R Core Team and contributors worldwide
Maintainer: R Core Team <R-core r-project org>
Description: R functions for base graphics
Imports: grDevices
-License: Part of R 2.15.2
-Built: R 2.15.2; ; 2012-10-27 03:05:59 UTC; windows
+License: Part of R 3.0.2
+Built: R 3.0.2; x86_64-w64-mingw32; 2013-09-25 15:39:29 UTC; windows
diff --git a/win32/deps/library/graphics/Meta/Rd.rds b/win32/deps/library/graphics/Meta/Rd.rds
index 564f9cc..af83034 100644
Binary files a/win32/deps/library/graphics/Meta/Rd.rds and b/win32/deps/library/graphics/Meta/Rd.rds differ
diff --git a/win32/deps/library/graphics/Meta/demo.rds b/win32/deps/library/graphics/Meta/demo.rds
index 16c136b..0f5f5aa 100644
Binary files a/win32/deps/library/graphics/Meta/demo.rds and b/win32/deps/library/graphics/Meta/demo.rds
differ
diff --git a/win32/deps/library/graphics/Meta/hsearch.rds b/win32/deps/library/graphics/Meta/hsearch.rds
index 0034a0e..7dbab65 100644
Binary files a/win32/deps/library/graphics/Meta/hsearch.rds and
b/win32/deps/library/graphics/Meta/hsearch.rds differ
diff --git a/win32/deps/library/graphics/Meta/links.rds b/win32/deps/library/graphics/Meta/links.rds
index dc8a3a6..194aa17 100644
Binary files a/win32/deps/library/graphics/Meta/links.rds and b/win32/deps/library/graphics/Meta/links.rds
differ
diff --git a/win32/deps/library/graphics/Meta/nsInfo.rds b/win32/deps/library/graphics/Meta/nsInfo.rds
index 20fa967..3e18850 100644
Binary files a/win32/deps/library/graphics/Meta/nsInfo.rds and b/win32/deps/library/graphics/Meta/nsInfo.rds
differ
diff --git a/win32/deps/library/graphics/Meta/package.rds b/win32/deps/library/graphics/Meta/package.rds
index d3f7bc6..d2c2df2 100644
Binary files a/win32/deps/library/graphics/Meta/package.rds and
b/win32/deps/library/graphics/Meta/package.rds differ
diff --git a/win32/deps/library/graphics/NAMESPACE b/win32/deps/library/graphics/NAMESPACE
index e5b30f1..a6af66c 100644
--- a/win32/deps/library/graphics/NAMESPACE
+++ b/win32/deps/library/graphics/NAMESPACE
@@ -1,27 +1,33 @@
+useDynLib(graphics,
+ C_contour, C_contourDef, C_filledcontour, C_image,
+ C_persp, C_abline, C_arrows, C_axis, C_box, C_clip,
+ C_convertX, C_convertY, C_dend, C_dendwindow, C_erase,
+ C_layout, C_mtext, C_par, C_path, C_plotXY, C_plot_window,
+ C_polygon, C_raster, C_rect, C_segments, C_strHeight,
+ C_strWidth, C_symbols, C_text, C_title, C_xspline,
+ C_plot_new, C_locator, C_identify, C_StemLeaf, C_BinCount,
+ RunregisterBase)
+
import(grDevices)
export(abline, arrows, assocplot, axTicks, Axis, axis, axis.Date,
- axis.POSIXct, barplot, barplot, box, boxplot, bxp, cdplot,
- clip, close.screen, co.intervals, contour, coplot, curve,
- dotchart, erase.screen, filled.contour, fourfoldplot, frame,
- grconvertX, grconvertY, grid, hist, hist.default, identify,
- image, layout, layout.show, lcm, legend, lines, lines.default,
- locator, matlines, matplot, matpoints, mosaicplot, mtext,
- pairs, panel.smooth, par, persp, pie, plot, plot.design,
- plot.function, plot.new, plot.window, plot.xy, points, polygon,
- polypath, rasterImage, rect, rug, screen, segments,
- smoothScatter, spineplot, split.screen, stars, stem, strheight,
- stripchart, strwidth, sunflowerplot, symbols, text, title,
- xinch, xspline, xyinch, yinch, .filled.contour)
+ axis.POSIXct, barplot, box, boxplot, bxp, cdplot, clip,
+ close.screen, co.intervals, contour, coplot, curve, dotchart,
+ erase.screen, filled.contour, fourfoldplot, frame, grconvertX,
+ grconvertY, grid, hist, identify, image, layout, layout.show,
+ lcm, legend, lines, locator, matlines, matplot, matpoints,
+ mosaicplot, mtext, pairs, panel.smooth, par, persp, pie, plot,
+ plot.design, plot.function, plot.new, plot.window, plot.xy,
+ points, polygon, polypath, rasterImage, rect, rug, screen,
+ segments, smoothScatter, spineplot, split.screen, stars, stem,
+ strheight, stripchart, strwidth, sunflowerplot, symbols, text,
+ title, xinch, xspline, xyinch, yinch, .filled.contour)
# leave most of the default methods visible as people seem to call them.
export(barplot.default, boxplot.default, boxplot.matrix,
- contour.default, image.default,
+ contour.default, hist.default, image.default, lines.default,
pairs.default, plot.default, points.default, text.default)
-#defunct
-export(piechart)
-
S3method(Axis, default)
S3method(Axis, Date)
S3method(Axis, POSIXt)
diff --git a/win32/deps/library/graphics/R/graphics b/win32/deps/library/graphics/R/graphics
index ac8cebe..3b65e3c 100644
--- a/win32/deps/library/graphics/R/graphics
+++ b/win32/deps/library/graphics/R/graphics
@@ -1,9 +1,27 @@
+# File share/R/nspackloader.R
+# Part of the R package, http://www.R-project.org
+#
+# Copyright (C) 1995-2012 The R Core Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# A copy of the GNU General Public License is available at
+# http://www.r-project.org/Licenses/
+
local({
info <- loadingNamespaceInfo()
- ns <- .Internal(getRegisteredNamespace(as.name(info$pkgname)))
+ pkg <- info$pkgname
+ ns <- .getNamespace(as.name(pkg))
if (is.null(ns))
- stop("cannot find namespace environment");
- barepackage <- sub("([^-]+)_.*", "\\1", info$pkgname)
- dbbase <- file.path(info$libname, info$pkgname, "R", barepackage)
+ stop("cannot find namespace environment for ", pkg, domain = NA);
+ dbbase <- file.path(info$libname, pkg, "R", pkg)
lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
})
diff --git a/win32/deps/library/graphics/R/graphics.rdb b/win32/deps/library/graphics/R/graphics.rdb
index 9c68f1c..c1abe30 100644
Binary files a/win32/deps/library/graphics/R/graphics.rdb and b/win32/deps/library/graphics/R/graphics.rdb
differ
diff --git a/win32/deps/library/graphics/R/graphics.rdx b/win32/deps/library/graphics/R/graphics.rdx
index f1d415c..365c9c3 100644
Binary files a/win32/deps/library/graphics/R/graphics.rdx and b/win32/deps/library/graphics/R/graphics.rdx
differ
diff --git a/win32/deps/library/graphics/demo/plotmath.R b/win32/deps/library/graphics/demo/plotmath.R
index b1be384..1c6a7d7 100644
--- a/win32/deps/library/graphics/demo/plotmath.R
+++ b/win32/deps/library/graphics/demo/plotmath.R
@@ -63,13 +63,11 @@ draw.plotmath.cell(expression(x^2), i, nr); i <- i + 1
draw.title.cell("Juxtaposition", i, nr); i <- i + 1
draw.plotmath.cell(expression(x * y), i, nr); i <- i + 1
draw.plotmath.cell(expression(paste(x, y, z)), i, nr); i <- i + 1
-draw.title.cell("Lists", i, nr); i <- i + 1
-draw.plotmath.cell(expression(list(x, y, z)), i, nr); i <- i + 1
-# even columns up
-i <- 20
draw.title.cell("Radicals", i, nr); i <- i + 1
draw.plotmath.cell(expression(sqrt(x)), i, nr); i <- i + 1
draw.plotmath.cell(expression(sqrt(x, y)), i, nr); i <- i + 1
+draw.title.cell("Lists", i, nr); i <- i + 1
+draw.plotmath.cell(expression(list(x, y, z)), i, nr); i <- i + 1
draw.title.cell("Relations", i, nr); i <- i + 1
draw.plotmath.cell(expression(x == y), i, nr); i <- i + 1
draw.plotmath.cell(expression(x != y), i, nr); i <- i + 1
@@ -81,6 +79,7 @@ draw.plotmath.cell(expression(x %~~% y), i, nr); i <- i + 1
draw.plotmath.cell(expression(x %=~% y), i, nr); i <- i + 1
draw.plotmath.cell(expression(x %==% y), i, nr); i <- i + 1
draw.plotmath.cell(expression(x %prop% y), i, nr); i <- i + 1
+draw.plotmath.cell(expression(x %~% y), i, nr); i <- i + 1
draw.title.cell("Typeface", i, nr); i <- i + 1
draw.plotmath.cell(expression(plain(x)), i, nr); i <- i + 1
draw.plotmath.cell(expression(italic(x)), i, nr); i <- i + 1
diff --git a/win32/deps/library/graphics/help/aliases.rds b/win32/deps/library/graphics/help/aliases.rds
index 53baa5f..8c64846 100644
Binary files a/win32/deps/library/graphics/help/aliases.rds and
b/win32/deps/library/graphics/help/aliases.rds differ
diff --git a/win32/deps/library/graphics/help/graphics.rdb b/win32/deps/library/graphics/help/graphics.rdb
index aeaf612..2387ec2 100644
Binary files a/win32/deps/library/graphics/help/graphics.rdb and
b/win32/deps/library/graphics/help/graphics.rdb differ
diff --git a/win32/deps/library/graphics/help/graphics.rdx b/win32/deps/library/graphics/help/graphics.rdx
index 5bb0b38..005a4b0 100644
Binary files a/win32/deps/library/graphics/help/graphics.rdx and
b/win32/deps/library/graphics/help/graphics.rdx differ
diff --git a/win32/deps/library/graphics/help/paths.rds b/win32/deps/library/graphics/help/paths.rds
index f6a3d19..2936cc8 100644
Binary files a/win32/deps/library/graphics/help/paths.rds and b/win32/deps/library/graphics/help/paths.rds
differ
diff --git a/win32/deps/library/graphics/html/00Index.html b/win32/deps/library/graphics/html/00Index.html
index a261178..b14ae4b 100644
--- a/win32/deps/library/graphics/html/00Index.html
+++ b/win32/deps/library/graphics/html/00Index.html
@@ -10,7 +10,7 @@
<div align="center">
<a href="../../../doc/html/packages.html"><img src="../../../doc/html/left.jpg" alt="[Up]" width="30"
height="30" border="0"></a>
<a href="../../../doc/html/index.html"><img src="../../../doc/html/up.jpg" alt="[Top]" width="30"
height="30" border="0"></a>
-</div><h2>Documentation for package ‘graphics’ version 2.15.2</h2>
+</div><h2>Documentation for package ‘graphics’ version 3.0.2</h2>
<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
<li><a href="../demo">Code demos</a>. Use <a href="../../utils/help/demo">demo()</a> to run them.</li>
diff --git a/win32/deps/library/methods/DESCRIPTION b/win32/deps/library/methods/DESCRIPTION
index ce1f5a5..8a124a4 100644
--- a/win32/deps/library/methods/DESCRIPTION
+++ b/win32/deps/library/methods/DESCRIPTION
@@ -1,5 +1,5 @@
Package: methods
-Version: 2.15.2
+Version: 3.0.2
Priority: base
Imports: utils
Title: Formal Methods and Classes
@@ -9,5 +9,5 @@ Description: Formally defined methods and classes for R objects,
plus other programming tools, as described in the reference
References: John M. Chambers (2008) ``Software for Data Analysis:
Programming with R''; Springer NY.
-License: Part of R 2.15.2
-Built: R 2.15.2; x86_64-w64-mingw32; 2012-10-27 03:07:06 UTC; windows
+License: Part of R 3.0.2
+Built: R 3.0.2; x86_64-w64-mingw32; 2013-09-25 15:40:41 UTC; windows
diff --git a/win32/deps/library/methods/INDEX b/win32/deps/library/methods/INDEX
index 8556951..d59a612 100644
--- a/win32/deps/library/methods/INDEX
+++ b/win32/deps/library/methods/INDEX
@@ -5,6 +5,7 @@ Documentation Using and Creating On-line Documentation for
GenericFunctions Tools for Managing Generic Functions
LinearMethodsList-class
Class "LinearMethodsList"
+LocalReferenceClasses Localized Objects based on Reference Classes
MethodDefinition-class
Classes to Represent Method Definitions
MethodWithNext-class Class MethodWithNext
diff --git a/win32/deps/library/methods/Meta/Rd.rds b/win32/deps/library/methods/Meta/Rd.rds
index e0dac62..176ad19 100644
Binary files a/win32/deps/library/methods/Meta/Rd.rds and b/win32/deps/library/methods/Meta/Rd.rds differ
diff --git a/win32/deps/library/methods/Meta/hsearch.rds b/win32/deps/library/methods/Meta/hsearch.rds
index a73e2be..63e25f9 100644
Binary files a/win32/deps/library/methods/Meta/hsearch.rds and b/win32/deps/library/methods/Meta/hsearch.rds
differ
diff --git a/win32/deps/library/methods/Meta/links.rds b/win32/deps/library/methods/Meta/links.rds
index d007e45..66e260a 100644
Binary files a/win32/deps/library/methods/Meta/links.rds and b/win32/deps/library/methods/Meta/links.rds
differ
diff --git a/win32/deps/library/methods/Meta/nsInfo.rds b/win32/deps/library/methods/Meta/nsInfo.rds
index 0ad24e0..e82d586 100644
Binary files a/win32/deps/library/methods/Meta/nsInfo.rds and b/win32/deps/library/methods/Meta/nsInfo.rds
differ
diff --git a/win32/deps/library/methods/Meta/package.rds b/win32/deps/library/methods/Meta/package.rds
index c603a99..29e11c8 100644
Binary files a/win32/deps/library/methods/Meta/package.rds and b/win32/deps/library/methods/Meta/package.rds
differ
diff --git a/win32/deps/library/methods/NAMESPACE b/win32/deps/library/methods/NAMESPACE
index b37fb65..4a429ec 100644
--- a/win32/deps/library/methods/NAMESPACE
+++ b/win32/deps/library/methods/NAMESPACE
@@ -1,4 +1,4 @@
-useDynLib(methods) #>> fails for now : .registration = TRUE
+useDynLib(methods, .registration = TRUE, .fixes = "C_")
importFrom(utils, find)
@@ -7,12 +7,11 @@ exportPattern("^\\.__C__")
exportPattern("^\\.__M__")
exportPattern("^\\.__T__")
-export(.Last.lib)
export(.TraceWithMethods)
export(.untracedFunction)
export(.doTracePrint)
export(.valueClassTest)
-export("@<-")
+## export("@<-")
export(Arith)
export(Compare)
export(Complex)
@@ -45,6 +44,7 @@ export(cacheMethod)
export(callGeneric)
export(callNextMethod)
export(canCoerce)
+export(checkAtAssignment)
export(checkSlotAssignment)
export(classMetaName)
export(classLabel)
@@ -174,7 +174,6 @@ export(resetGeneric)
export(sealClass)
export(selectMethod)
export(seemsS4Object)
-export(sessionData)
export(setAs)
export(setClass)
export(setClassUnion)
@@ -209,7 +208,6 @@ export(testVirtual)
export(traceOff)
export(traceOn)
export(tryNew)
-export(trySilent)
export(unRematchDefinition)
export(validObject)
export(validSlotNames)
@@ -218,7 +216,7 @@ export(validSlotNames)
export(.ShortPrimitiveSkeletons)
export(.EmptyPrimitiveSkeletons)
-## to allow "S4-cbind/rbind (./R/cbind-rbind.R)
+## to allow "S4"-cbind/rbind (./R/cbind-rbind.R)
export(cbind2)
export(rbind2)
export(kronecker)
diff --git a/win32/deps/library/methods/R/methods b/win32/deps/library/methods/R/methods
index ac8cebe..3b65e3c 100644
--- a/win32/deps/library/methods/R/methods
+++ b/win32/deps/library/methods/R/methods
@@ -1,9 +1,27 @@
+# File share/R/nspackloader.R
+# Part of the R package, http://www.R-project.org
+#
+# Copyright (C) 1995-2012 The R Core Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# A copy of the GNU General Public License is available at
+# http://www.r-project.org/Licenses/
+
local({
info <- loadingNamespaceInfo()
- ns <- .Internal(getRegisteredNamespace(as.name(info$pkgname)))
+ pkg <- info$pkgname
+ ns <- .getNamespace(as.name(pkg))
if (is.null(ns))
- stop("cannot find namespace environment");
- barepackage <- sub("([^-]+)_.*", "\\1", info$pkgname)
- dbbase <- file.path(info$libname, info$pkgname, "R", barepackage)
+ stop("cannot find namespace environment for ", pkg, domain = NA);
+ dbbase <- file.path(info$libname, pkg, "R", pkg)
lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
})
diff --git a/win32/deps/library/methods/R/methods.rdb b/win32/deps/library/methods/R/methods.rdb
index fa6da41..09eb01e 100644
Binary files a/win32/deps/library/methods/R/methods.rdb and b/win32/deps/library/methods/R/methods.rdb differ
diff --git a/win32/deps/library/methods/R/methods.rdx b/win32/deps/library/methods/R/methods.rdx
index 0c5e3c3..432ee83 100644
Binary files a/win32/deps/library/methods/R/methods.rdx and b/win32/deps/library/methods/R/methods.rdx differ
diff --git a/win32/deps/library/methods/help/AnIndex b/win32/deps/library/methods/help/AnIndex
index 2c87306..907c1b1 100644
--- a/win32/deps/library/methods/help/AnIndex
+++ b/win32/deps/library/methods/help/AnIndex
@@ -1,6 +1,7 @@
methods-package methods-package
$,envRefClass-method stdRefClass
$<-,envRefClass-method stdRefClass
+$<-,localRefClass-method localRefClass
(-class LanguageClasses
.BasicClasses RClassUtils
.BasicFunsList zBasicFunsList
@@ -28,7 +29,6 @@ $<-,envRefClass-method stdRefClass
.untracedFunction TraceClasses
.valueClassTest RMethodUtils
<--class LanguageClasses
-@<- slot
activeBindingFunction-class refClass
addNextMethod RMethodUtils
addNextMethod,MethodDefinition-method RMethodUtils
@@ -49,7 +49,6 @@ assignClassDef RClassUtils
assignMethodsMetaData RMethodUtils
balanceMethodsList RMethodUtils
body<-,MethodDefinition-method MethodsList-class
-browseAll Session
builtin-class BasicClasses
cacheGenericsMetaData RMethodUtils
cacheMetaData RMethodUtils
@@ -63,6 +62,7 @@ cbind2,ANY,ANY-method cbind2
cbind2,ANY,missing-method cbind2
cbind2-methods cbind2
character-class BasicClasses
+checkAtAssignment RClassUtils
checkSlotAssignment RClassUtils
Classes Classes
classesToAM classesToAM
@@ -257,6 +257,8 @@ loadMethod,ANY-method MethodsList
loadMethod,MethodDefinition-method MethodsList
loadMethod,MethodWithNext-method MethodsList
loadMethod-methods MethodsList
+localRefClass-class localRefClass
+LocalReferenceClasses localRefClass
Logic S4groupGeneric
logical-class BasicClasses
logLik-class setOldClass
@@ -353,6 +355,7 @@ recordedplot-class setOldClass
refClass-class refClass
refClassRepresentation-class refClass
ReferenceClasses refClass
+refGeneratorSlot-class refClass
refMethodDef-class refClass
refMethodDefWithTrace-class refClass
refObject-class refClass
@@ -385,7 +388,6 @@ SealedMethodDefinition-class MethodDefinition-class
seemsS4Object methods-defunct
selectMethod getMethod
selectSuperClasses selectSuperClasses
-sessionData Session
setAs as
setClass setClass
setClassUnion setClassUnion
@@ -455,8 +457,8 @@ table-class setOldClass
testInheritedMethods testInheritedMethods
testVirtual RClassUtils
traceable-class TraceClasses
-traceOff Session
-traceOn Session
+traceOff methods-defunct
+traceOn methods-defunct
tryNew RClassUtils
trySilent methods-defunct
ts-class StructureClasses
diff --git a/win32/deps/library/methods/help/aliases.rds b/win32/deps/library/methods/help/aliases.rds
index 4bb6f09..7d07a5f 100644
Binary files a/win32/deps/library/methods/help/aliases.rds and b/win32/deps/library/methods/help/aliases.rds
differ
diff --git a/win32/deps/library/methods/help/methods.rdb b/win32/deps/library/methods/help/methods.rdb
index 27a4a10..3d09c5c 100644
Binary files a/win32/deps/library/methods/help/methods.rdb and b/win32/deps/library/methods/help/methods.rdb
differ
diff --git a/win32/deps/library/methods/help/methods.rdx b/win32/deps/library/methods/help/methods.rdx
index fa5c5a6..c7afb6d 100644
Binary files a/win32/deps/library/methods/help/methods.rdx and b/win32/deps/library/methods/help/methods.rdx
differ
diff --git a/win32/deps/library/methods/help/paths.rds b/win32/deps/library/methods/help/paths.rds
index 8077a14..13fdead 100644
Binary files a/win32/deps/library/methods/help/paths.rds and b/win32/deps/library/methods/help/paths.rds
differ
diff --git a/win32/deps/library/methods/html/00Index.html b/win32/deps/library/methods/html/00Index.html
index 82bf5d7..ec0241c 100644
--- a/win32/deps/library/methods/html/00Index.html
+++ b/win32/deps/library/methods/html/00Index.html
@@ -10,7 +10,7 @@
<div align="center">
<a href="../../../doc/html/packages.html"><img src="../../../doc/html/left.jpg" alt="[Up]" width="30"
height="30" border="0"></a>
<a href="../../../doc/html/index.html"><img src="../../../doc/html/up.jpg" alt="[Top]" width="30"
height="30" border="0"></a>
-</div><h2>Documentation for package ‘methods’ version 2.15.2</h2>
+</div><h2>Documentation for package ‘methods’ version 3.0.2</h2>
<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
</ul>
@@ -340,6 +340,10 @@
<td>Description of the Methods Defined for a Generic Function</td></tr>
<tr><td width="25%"><a href="setOldClass.html">lm-class</a></td>
<td>Register Old-Style (S3) Classes and Inheritance</td></tr>
+<tr><td width="25%"><a href="localRefClass.html">localRefClass-class</a></td>
+<td>Localized Objects based on Reference Classes</td></tr>
+<tr><td width="25%"><a href="localRefClass.html">LocalReferenceClasses</a></td>
+<td>Localized Objects based on Reference Classes</td></tr>
<tr><td width="25%"><a href="S4groupGeneric.html">Logic</a></td>
<td>S4 Group Generic Functions</td></tr>
<tr><td width="25%"><a href="BasicClasses.html">logical-class</a></td>
@@ -477,6 +481,8 @@
<td>Objects With Fields Treated by Reference (OOP-style)</td></tr>
<tr><td width="25%"><a href="refClass.html">ReferenceClasses</a></td>
<td>Objects With Fields Treated by Reference (OOP-style)</td></tr>
+<tr><td width="25%"><a href="refClass.html">refGeneratorSlot-class</a></td>
+<td>Objects With Fields Treated by Reference (OOP-style)</td></tr>
<tr><td width="25%"><a href="refClass.html">refMethodDef-class</a></td>
<td>Objects With Fields Treated by Reference (OOP-style)</td></tr>
<tr><td width="25%"><a href="refClass.html">refMethodDefWithTrace-class</a></td>
@@ -657,6 +663,8 @@
<table width="100%">
<tr><td width="25%"><a href="stdRefClass.html">$-method</a></td>
<td>Class '"envRefClass"'</td></tr>
+<tr><td width="25%"><a href="localRefClass.html">$<--method</a></td>
+<td>Localized Objects based on Reference Classes</td></tr>
<tr><td width="25%"><a href="stdRefClass.html">$<--method</a></td>
<td>Class '"envRefClass"'</td></tr>
<tr><td width="25%"><a href="LanguageClasses.html">(-class</a></td>
@@ -693,8 +701,6 @@
<td>Classes Used Internally to Control Tracing</td></tr>
<tr><td width="25%"><a href="LanguageClasses.html"><--class</a></td>
<td>Classes to Represent Unevaluated Language Objects</td></tr>
-<tr><td width="25%"><a href="slot.html">@<-</a></td>
-<td>The Slots in an Object from a Formal Class</td></tr>
<tr><td width="25%"><a href="Classes.html">__ClassMetaData</a></td>
<td>Class Definitions</td></tr>
<tr><td width="25%"><a href="LanguageClasses.html">{-class</a></td>
diff --git a/win32/deps/library/methods/libs/i386/methods.dll
b/win32/deps/library/methods/libs/i386/methods.dll
index 2bb29f0..ae7fc6e 100644
Binary files a/win32/deps/library/methods/libs/i386/methods.dll and
b/win32/deps/library/methods/libs/i386/methods.dll differ
diff --git a/win32/deps/library/methods/tests/basicRefClass.R
b/win32/deps/library/methods/tests/basicRefClass.R
index 4460efe..91255dd 100644
--- a/win32/deps/library/methods/tests/basicRefClass.R
+++ b/win32/deps/library/methods/tests/basicRefClass.R
@@ -1,10 +1,10 @@
## simple call, only field names
fg <- setRefClass("foo", c("bar", "flag"))
-f1 <- new("foo")
-f1$bar
-f1 <- fg$new(flag = "testing")
+f0 <- new("foo") # deprecated, but should still work
+f1 <- fg(flag = "testing")
f1$bar <- 1
stopifnot(identical(f1$bar, 1))
+## add method
fg$methods(showAll = function() c(bar, flag))
stopifnot(all.equal(f1$showAll(), c(1, "testing")))
str(f1)
@@ -32,7 +32,7 @@ stopifnot(is(tryCatch(ff$flag <- "new", error = function(e)e), "error"))
## test against generator
-f2 <- fg$new(bar = pi, flag = "flag test")
+f2 <- fg(bar = pi, flag = "flag test")
## identical does not return TRUE if *contents* of env are identical
stopifnot(identical(ff$bar, f2$bar), identical(ff$flag, f2$flag))
## but flag was now assigned once
@@ -84,19 +84,19 @@ foo2 <- setRefClass("foo2", list(b2 = "numeric", flag = "ratedChar",
}))
## now lock the flag field; should still allow one write
foo2$lock("flag")
-f2 <- foo2$new(bar = -3, flag = as("ANY", "ratedChar"),
+f2 <- foo2(bar = -3, flag = as("ANY", "ratedChar"),
b2 = ff$bar, tag = 1.5)
## but not a second one
stopifnot(is(tryCatch(f2$flag <- "Try again",
error = function(e)e), "error"))
str(f2)
-f22 <- foo2$new(bar = f2$bar)
+f22 <- foo2(bar = f2$bar)
## same story if assignment follows the initialization
f22$flag <- f2$flag
stopifnot(is(tryCatch(f22$flag <- "Try again",
error = function(e)e), "error"))
## Exporting superclass object
-f22 <- fg$new(bar = f2$bar, flag = f2$flag)
+f22 <- fg(bar = f2$bar, flag = f2$flag)
f2e <- f2$export("foo")
stopifnot(identical(f2e$bar, f22$bar), identical(f2e$flag, f22$flag),
identical(class(f2e), class(f22)))
@@ -117,8 +117,8 @@ foo3 <- setRefClass("foo3", fields = list(flag2 = "ratedChar"),
incr
}))
-f2 <- foo2$new(bar = -3, flag = as("ANY", "ratedChar"), b2 = 1:3)
-f3 <- foo3$new()
+f2 <- foo2(bar = -3, flag = as("ANY", "ratedChar"), b2 = 1:3)
+f3 <- foo3()
f3$import(f2)
stopifnot(all.equal(f3$b2, f2$b2), all.equal(f3$bar, f2$bar),
all.equal(f3$flag, f2$flag))
@@ -132,24 +132,29 @@ stopifnot(is(tryCatch(f3$flag <- "Try again",
str(f3)
## importing the same class (not very useful but documented to work)
-f3 <- foo3$new()
-f4 <- foo3$new(bar = -3, flag = as("More", "ratedChar"), b2 = 1:3, flag2 = f2$flag)
+f3 <- foo3()
+f4 <- foo3(bar = -3, flag = as("More", "ratedChar"), b2 = 1:3, flag2 = f2$flag)
f3$import(f4)
stopifnot(identical(f3$bar, f4$bar),
identical(f3$flag, f4$flag),
identical(f3$b2, f4$b2),
identical(f3$flag2, f4$flag2))
-## similar to $import() but using superclass object in the $new() call
+## similar to $import() but using superclass object in the generator call
## The explicitly supplied flag= should override and be allowed
## by the default $initialize()
-f3b <- foo3$new(f2, flag = as("Other", "ratedChar"),
+f3b <- foo3(f2, flag = as("Other", "ratedChar"),
flag2 = as("More", "ratedChar"))
## check that inherited and direct field assignments worked
stopifnot(identical(f3b$tag, f2$tag),
identical(f3b$flag, as("Other", "ratedChar")),
identical(f3b$flag2, as("More", "ratedChar")))
-
+## the $new() method should match the generator function
+f3b <- foo3$new(f2, flag = as("Other", "ratedChar"),
+ flag2 = as("More", "ratedChar"))
+stopifnot(identical(f3b$tag, f2$tag),
+ identical(f3b$flag, as("Other", "ratedChar")),
+ identical(f3b$flag2, as("More", "ratedChar")))
## a class with an initialize method, and an extra slot (legal, not a good idea)
setOldClass(c("simple.list", "list"))
fg4 <- setRefClass("foo4",
@@ -171,7 +176,7 @@ foo5 <- setRefClass("foo5", fields = list(),
methods = list(bar = function(test)
paste("*",test,"*")))
-f5 <- foo5$new()
+f5 <- foo5()
stopifnot(identical( f5$bar("xxx"), paste("*","xxx", "*")))
@@ -180,7 +185,7 @@ abGen <- setRefClass("ab",
fields = list(a = "ANY",
b = function(x) if(missing(x)) a else {a <<- x; x}))
-ab1 <- abGen$new(a = 1)
+ab1 <- abGen(a = 1)
stopifnot(identical(ab1$a, 1), identical(ab1$b, 1))
@@ -220,7 +225,7 @@ mEditor <- setRefClass("matrixEditor",
}
))
xMat <- matrix(1:12,4,3)
-xx <- mEditor$new(data = xMat)
+xx <- mEditor(data = xMat)
xx$edit(2, 2, 0)
xx$data
xx$undo()
@@ -293,7 +298,7 @@ mv$methods( counts = function() {
})
-ff <- mv$new( data = xMat)
+ff <- mv( data = xMat)
stopifnot(identical(markViewer, "ON")) # check initialize
ff$edit(2,2,0)
ff$data
@@ -308,14 +313,14 @@ stopifnot(identical(markViewer, "OFF")) #check finalize
viewerPlus <- setRefClass("viewerPlus",
fields = list( text = "character",
viewer = "matrixViewer"))
-ff <- mv$new( data = xMat)
-v1 <- viewerPlus$new(text = letters, viewer = ff)
+ff <- mv( data = xMat)
+v1 <- viewerPlus(text = letters, viewer = ff)
v2 <- v1$copy()
v3 <- v1$copy(TRUE)
v2$text <- "Hello, world"
v2$viewer$data <- t(xMat) # change a field in v2$viewer
v3$text <- LETTERS
-v3$viewer <- mv$new( data = matrix(nrow=1,ncol=1))
+v3$viewer <- mv( data = matrix(nrow=1,ncol=1))
## with a deep copy all is protected, with a shallow copy
## the environment of a copied field remains the same,
## but replacing the whole field should be local
@@ -345,11 +350,11 @@ refClassA <- setRefClass("refClassA", methods=list(foo=function() "A"))
refClassB <- setRefClass("refClassB", contains="refClassA")
mnames <- objects(getClass("refClassB")@refMethods)
refClassB$methods(foo=function() callSuper())
-stopifnot(identical(refClassB$new()$foo(), "A"))
+stopifnot(identical(refClassB()$foo(), "A"))
mnames2 <- objects(getClass("refClassB")@refMethods)
stopifnot(identical(mnames2[is.na(match(mnames2,mnames))], "foo#refClassA"))
refClassB$methods(foo=function() paste(callSuper(), "Version 2"))
-stopifnot(identical(refClassB$new()$foo(), "A Version 2"))
+stopifnot(identical(refClassB()$foo(), "A Version 2"))
stopifnot(identical(mnames2, objects(getClass("refClassB")@refMethods)))
if(methods:::.hasCodeTools()) {
@@ -378,7 +383,7 @@ rm(ctxt)
## tests related to subclassing environments. These really test code in the core, viz. builtin.c
-a <- refClassA$new()
+a <- refClassA()
ev <- new.env(parent = a) # parent= arg
stopifnot(is.environment(ev))
foo <- function()"A"; environment(foo) <- a # environment of function
@@ -437,7 +442,7 @@ TestClass <- setRefClass ("TestClass",
print = function () {cat(text)},
initialize = function(text = "", ...) callSuper(text = paste(text, ":", sep=""),...)
))
-tt <- TestClass$new("hello world")
+tt <- TestClass("hello world")
stopifnot(identical(tt$text, "hello world:"))
## now a subclass with another field & another layer of callSuper()
TestClass2 <- setRefClass("TestClass2",
@@ -447,9 +452,9 @@ TestClass2 <- setRefClass("TestClass2",
initialize = function(..., version = 0L)
callSuper(..., version = version+1L))
)
-tt <- TestClass2$new("test", version = 1L)
+tt <- TestClass2("test", version = 1L)
stopifnot(identical(tt$text, "test:"), identical(tt$version, as.integer(2)))
-tt <- TestClass2$new(version=3L) # default text
+tt <- TestClass2(version=3L) # default text
stopifnot(identical(tt$text, ":"), identical(tt$version, as.integer(4)))
@@ -462,10 +467,10 @@ stopifnot(identical(tt$text, ":"), identical(tt$version, as.integer(4)))
}
mEditor$methods(change = .changeAllFields)
-xx <- mEditor$new(data = xMat)
+xx <- mEditor(data = xMat)
xx$edit(2, 2, 0)
-yy <- mEditor$new(data = xMat+1)
+yy <- mEditor(data = xMat+1)
yy$change(xx)
stopifnot(identical(yy$data, xx$data), identical(yy$edits, xx$edits))
@@ -473,9 +478,11 @@ stopifnot(identical(yy$data, xx$data), identical(yy$edits, xx$edits))
if(methods:::.hasCodeTools())
stopifnot(is(tryCatch(yy$.self$data <- xMat, error = function(e)e), "error"))
-## the locked binding of refObjectGenerator class should prevent modifying
+## the locked binding of refGeneratorSlot class should prevent modifying
## methods, locking fields or setting accessor methods
-evr <- getRefClass("refObjectGenerator") # in methods
+## Nothing special about refGeneratorSlot in this test -- the point is just
+## to use a standard reference class known to be defined in a package
+evr <- getRefClass("refGeneratorSlot") # in methods
stopifnot(is(tryCatch(evr$methods(foo = function()"..."), error = function(e)e), "error"),
is(tryCatch(evr$lock("def"), error = function(e)e), "error"),
is(tryCatch(evr$accessors("def"), error = function(e)e), "error"))
@@ -483,14 +490,11 @@ stopifnot(is(tryCatch(evr$methods(foo = function()"..."), error = function(e)e),
##getRefClass() method and function should work with either
## a class name or a class representation (bug report 14600)
tg <- setRefClass("tg", fields = "a")
-t1 <- tg$new(a=1)
+t1 <- tg(a=1)
tgg <- t1$getRefClass()
tggg <- getRefClass("tg")
stopifnot(identical(tgg$def, tggg$def),
identical(tg$def, tgg$def))
-## TODO: the className returned by setRefClass should have
-## a package attribute, which would allow:
-## identical(tg$className, tgg$className))
## this used to fail in initFieldArgs() from partial matching "self"
selfClass <- setRefClass("selfClass",
@@ -499,4 +503,4 @@ selfClass <- setRefClass("selfClass",
)
)
-stopifnot(identical(selfClass$new(self="B", super="A", sub="C")$self, "B"))
+stopifnot(identical(selfClass(self="B", super="A", sub="C")$self, "B"))
diff --git a/win32/deps/library/methods/tests/duplicateClass.R
b/win32/deps/library/methods/tests/duplicateClass.R
index e8f167c..7cd3f61 100644
--- a/win32/deps/library/methods/tests/duplicateClass.R
+++ b/win32/deps/library/methods/tests/duplicateClass.R
@@ -25,3 +25,11 @@ stopifnot(identical(getClass("Cholesky"), clG))
## Second: tests of methods defined for the same generic
## (NOT YET!)
+## Related: retaining package slots in methods signatures (reported by Martin Morgan)
+setClass("A")
+setGeneric("bar", function(x, y) standardGeneric("bar"))
+setMethod(bar, signature(x="A", y="A"), function(x, y) {})
+setMethod(bar, signature(x="A", y="ANY"), function(x, y) {})
+
+## tests one use of .matchSigLength
+stopifnot(all(nzchar(getMethod("bar", signature(x="A", y="ANY"))@target package)))
diff --git a/win32/deps/library/methods/tests/mixinInitialize.R
b/win32/deps/library/methods/tests/mixinInitialize.R
index 139724d..6754415 100644
--- a/win32/deps/library/methods/tests/mixinInitialize.R
+++ b/win32/deps/library/methods/tests/mixinInitialize.R
@@ -62,4 +62,18 @@ removeClass("M")
removeClass("A")
+## removeClass() for a union where "matrix"/"array" is part:
+setClassUnion("mn", c("matrix","numeric")); removeClass("mn")# gave "node stack overflow",
+setClassUnion("an", c("array", "integer")); removeClass("an")# (ditto)
+setClassUnion("AM", c("array", "matrix")); removeClass("AM")# (ditto)
+## as had "matrix" -> "array" -> "matrix" ... recursion
+
+## and we want this to *still* work:
+stopifnot(is(tryCatch(as(a3 <- array(1:24, 2:4), "matrix"), error=function(e)e),
+ "error"),
+ is(as(a2 <- array(1:12, 3:4), "matrix"),
+ "matrix"),
+ is(a2, "matrix"), is(a2, "array"), is(a3, "array"), !is(a3, "matrix"),
+ ## and yes, "for now":
+ identical(a2, matrix(1:12, 3)))
diff --git a/win32/deps/library/methods/tests/namesAndSlots.R
b/win32/deps/library/methods/tests/namesAndSlots.R
index 2091921..f7bb13e 100644
--- a/win32/deps/library/methods/tests/namesAndSlots.R
+++ b/win32/deps/library/methods/tests/namesAndSlots.R
@@ -14,3 +14,6 @@ setClass("D", contains = "numeric", representation(names = "character"))
d <- new("D", 1)
names(d) <- "A"
stopifnot(identical(d names, "A"))
+## test the checks on @<- primitive assignment
+stopifnot(is(tryCatch(a yy <- 1 , error = function(e)e), "error"))
+stopifnot(is(tryCatch(a xx <- "A" , error = function(e)e), "error"))
diff --git a/win32/deps/library/splines/DESCRIPTION b/win32/deps/library/splines/DESCRIPTION
index 54009c9..3a4a931 100644
--- a/win32/deps/library/splines/DESCRIPTION
+++ b/win32/deps/library/splines/DESCRIPTION
@@ -1,5 +1,5 @@
Package: splines
-Version: 2.15.2
+Version: 3.0.2
Priority: base
Imports: graphics, stats
Title: Regression Spline Functions and Classes
@@ -7,5 +7,5 @@ Author: Douglas M. Bates <bates stat wisc edu> and
William N. Venables <Bill Venables csiro au>
Maintainer: R Core Team <R-core r-project org>
Description: Regression spline functions and classes
-License: Part of R 2.15.2
-Built: R 2.15.2; x86_64-w64-mingw32; 2012-10-27 03:07:55 UTC; windows
+License: Part of R 3.0.2
+Built: R 3.0.2; x86_64-w64-mingw32; 2013-09-25 15:41:19 UTC; windows
diff --git a/win32/deps/library/splines/Meta/Rd.rds b/win32/deps/library/splines/Meta/Rd.rds
index f0ab2fa..ea39378 100644
Binary files a/win32/deps/library/splines/Meta/Rd.rds and b/win32/deps/library/splines/Meta/Rd.rds differ
diff --git a/win32/deps/library/splines/Meta/hsearch.rds b/win32/deps/library/splines/Meta/hsearch.rds
index ff05ab5..bca5794 100644
Binary files a/win32/deps/library/splines/Meta/hsearch.rds and b/win32/deps/library/splines/Meta/hsearch.rds
differ
diff --git a/win32/deps/library/splines/Meta/links.rds b/win32/deps/library/splines/Meta/links.rds
index bd91165..a7e4caf 100644
Binary files a/win32/deps/library/splines/Meta/links.rds and b/win32/deps/library/splines/Meta/links.rds
differ
diff --git a/win32/deps/library/splines/Meta/nsInfo.rds b/win32/deps/library/splines/Meta/nsInfo.rds
index cb23c63..691c90d 100644
Binary files a/win32/deps/library/splines/Meta/nsInfo.rds and b/win32/deps/library/splines/Meta/nsInfo.rds
differ
diff --git a/win32/deps/library/splines/Meta/package.rds b/win32/deps/library/splines/Meta/package.rds
index d09d9c0..b69ab60 100644
Binary files a/win32/deps/library/splines/Meta/package.rds and b/win32/deps/library/splines/Meta/package.rds
differ
diff --git a/win32/deps/library/splines/R/splines b/win32/deps/library/splines/R/splines
index ac8cebe..3b65e3c 100644
--- a/win32/deps/library/splines/R/splines
+++ b/win32/deps/library/splines/R/splines
@@ -1,9 +1,27 @@
+# File share/R/nspackloader.R
+# Part of the R package, http://www.R-project.org
+#
+# Copyright (C) 1995-2012 The R Core Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# A copy of the GNU General Public License is available at
+# http://www.r-project.org/Licenses/
+
local({
info <- loadingNamespaceInfo()
- ns <- .Internal(getRegisteredNamespace(as.name(info$pkgname)))
+ pkg <- info$pkgname
+ ns <- .getNamespace(as.name(pkg))
if (is.null(ns))
- stop("cannot find namespace environment");
- barepackage <- sub("([^-]+)_.*", "\\1", info$pkgname)
- dbbase <- file.path(info$libname, info$pkgname, "R", barepackage)
+ stop("cannot find namespace environment for ", pkg, domain = NA);
+ dbbase <- file.path(info$libname, pkg, "R", pkg)
lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
})
diff --git a/win32/deps/library/splines/R/splines.rdb b/win32/deps/library/splines/R/splines.rdb
index 6c6779f..48dc7c9 100644
Binary files a/win32/deps/library/splines/R/splines.rdb and b/win32/deps/library/splines/R/splines.rdb differ
diff --git a/win32/deps/library/splines/R/splines.rdx b/win32/deps/library/splines/R/splines.rdx
index 5048981..84e2496 100644
Binary files a/win32/deps/library/splines/R/splines.rdx and b/win32/deps/library/splines/R/splines.rdx differ
diff --git a/win32/deps/library/splines/help/aliases.rds b/win32/deps/library/splines/help/aliases.rds
index f9185d8..3618f15 100644
Binary files a/win32/deps/library/splines/help/aliases.rds and b/win32/deps/library/splines/help/aliases.rds
differ
diff --git a/win32/deps/library/splines/help/paths.rds b/win32/deps/library/splines/help/paths.rds
index be52d00..b1ad19e 100644
Binary files a/win32/deps/library/splines/help/paths.rds and b/win32/deps/library/splines/help/paths.rds
differ
diff --git a/win32/deps/library/splines/help/splines.rdb b/win32/deps/library/splines/help/splines.rdb
index e1be526..7b77f91 100644
Binary files a/win32/deps/library/splines/help/splines.rdb and b/win32/deps/library/splines/help/splines.rdb
differ
diff --git a/win32/deps/library/splines/help/splines.rdx b/win32/deps/library/splines/help/splines.rdx
index 9cd364a..e8a7620 100644
Binary files a/win32/deps/library/splines/help/splines.rdx and b/win32/deps/library/splines/help/splines.rdx
differ
diff --git a/win32/deps/library/splines/html/00Index.html b/win32/deps/library/splines/html/00Index.html
index 43185c1..b05f8b1 100644
--- a/win32/deps/library/splines/html/00Index.html
+++ b/win32/deps/library/splines/html/00Index.html
@@ -10,7 +10,7 @@
<div align="center">
<a href="../../../doc/html/packages.html"><img src="../../../doc/html/left.jpg" alt="[Up]" width="30"
height="30" border="0"></a>
<a href="../../../doc/html/index.html"><img src="../../../doc/html/up.jpg" alt="[Top]" width="30"
height="30" border="0"></a>
-</div><h2>Documentation for package ‘splines’ version 2.15.2</h2>
+</div><h2>Documentation for package ‘splines’ version 3.0.2</h2>
<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
</ul>
diff --git a/win32/deps/library/splines/libs/i386/splines.dll
b/win32/deps/library/splines/libs/i386/splines.dll
index 888f501..053cd91 100644
Binary files a/win32/deps/library/splines/libs/i386/splines.dll and
b/win32/deps/library/splines/libs/i386/splines.dll differ
diff --git a/win32/deps/library/stats/DESCRIPTION b/win32/deps/library/stats/DESCRIPTION
index 8941be4..38cbdf7 100644
--- a/win32/deps/library/stats/DESCRIPTION
+++ b/win32/deps/library/stats/DESCRIPTION
@@ -1,9 +1,9 @@
Package: stats
-Version: 2.15.2
+Version: 3.0.2
Priority: base
Title: The R Stats Package
Author: R Core Team and contributors worldwide
Maintainer: R Core Team <R-core r-project org>
Description: R statistical functions
-License: Part of R 2.15.2
-Built: R 2.15.2; x86_64-w64-mingw32; 2012-10-27 03:06:07 UTC; windows
+License: Part of R 3.0.2
+Built: R 3.0.2; x86_64-w64-mingw32; 2013-09-25 15:39:42 UTC; windows
diff --git a/win32/deps/library/stats/Meta/Rd.rds b/win32/deps/library/stats/Meta/Rd.rds
index 345fee8..78eb5d9 100644
Binary files a/win32/deps/library/stats/Meta/Rd.rds and b/win32/deps/library/stats/Meta/Rd.rds differ
diff --git a/win32/deps/library/stats/Meta/demo.rds b/win32/deps/library/stats/Meta/demo.rds
index 8bb2fdf..2865dfb 100644
Binary files a/win32/deps/library/stats/Meta/demo.rds and b/win32/deps/library/stats/Meta/demo.rds differ
diff --git a/win32/deps/library/stats/Meta/hsearch.rds b/win32/deps/library/stats/Meta/hsearch.rds
index 9787d03..ef4f132 100644
Binary files a/win32/deps/library/stats/Meta/hsearch.rds and b/win32/deps/library/stats/Meta/hsearch.rds
differ
diff --git a/win32/deps/library/stats/Meta/links.rds b/win32/deps/library/stats/Meta/links.rds
index 583c84d..3b48a67 100644
Binary files a/win32/deps/library/stats/Meta/links.rds and b/win32/deps/library/stats/Meta/links.rds differ
diff --git a/win32/deps/library/stats/Meta/nsInfo.rds b/win32/deps/library/stats/Meta/nsInfo.rds
index 1a34273..bd12999 100644
Binary files a/win32/deps/library/stats/Meta/nsInfo.rds and b/win32/deps/library/stats/Meta/nsInfo.rds differ
diff --git a/win32/deps/library/stats/Meta/package.rds b/win32/deps/library/stats/Meta/package.rds
index 473cb61..5d53be9 100644
Binary files a/win32/deps/library/stats/Meta/package.rds and b/win32/deps/library/stats/Meta/package.rds
differ
diff --git a/win32/deps/library/stats/NAMESPACE b/win32/deps/library/stats/NAMESPACE
index 249c699..8d1aa89 100644
--- a/win32/deps/library/stats/NAMESPACE
+++ b/win32/deps/library/stats/NAMESPACE
@@ -7,7 +7,6 @@ importFrom(grDevices, dev.interactive, palette, extendrange, xy.coords)
importFrom(utils, str)
-# exportPattern("^[^\\.]")
export(.checkMFClasses, .getXlevels, .MFclass)
export(add.scope, add1, addmargins, aggregate, aggregate.data.frame,
@@ -74,12 +73,8 @@ export(add.scope, add1, addmargins, aggregate, aggregate.data.frame,
# for now, as package 'rv' takes over median
export(median.default)
-# deprecated
-export(mauchley.test)
-
# defunct
-export(reshapeWide, reshapeLong, print.coefmat, anovalist.lm, lm.fit.null,
- lm.wfit.null, glm.fit.null)
+# export(clearNames, mauchley.test, reshapeWide, reshapeLong, anovalist.lm, lm.fit.null, lm.wfit.null,
glm.fit.null)
## register all the methods for generics elsewhere in case namespace is
## loaded but not currently attached.
@@ -92,7 +87,10 @@ S3method(add1, default)
S3method(add1, glm)
S3method(add1, lm)
S3method(add1, mlm)
-S3method("aggregate", "formula")
+S3method(aggregate, data.frame)
+S3method(aggregate, default)
+S3method(aggregate, "formula")
+S3method(aggregate, ts)
S3method(AIC, default)
S3method(AIC, logLik)
S3method(alias, formula)
@@ -102,6 +100,9 @@ S3method(as.data.frame, ftable)
S3method(as.data.frame, logLik)
S3method(as.table, ftable)
S3method(as.ts, default)
+S3method(anova, glm)
+S3method(anova, glmlist)
+S3method(anova, lm)
S3method(BIC, default)
S3method(BIC, logLik)
S3method(case.names, default)
@@ -119,6 +120,11 @@ S3method(cooks.distance, lm)
S3method(cycle, default)
S3method(cycle, ts)
S3method(deltat, default)
+S3method(density, default)
+S3method(deriv, default)
+S3method(deriv, formula)
+S3method(deriv3, default)
+S3method(deriv3, formula)
S3method(deviance, default)
S3method(deviance, glm)
S3method(deviance, lm)
@@ -126,6 +132,7 @@ S3method(deviance, mlm)
S3method(df.residual, default)
S3method(dfbeta, lm)
S3method(dfbetas, lm)
+S3method(diff, ts)
S3method(drop1, default)
S3method(drop1, glm)
S3method(drop1, lm)
@@ -159,6 +166,7 @@ S3method(frequency, default)
S3method(ftable, default)
S3method(ftable, formula)
S3method(getCall, default)
+S3method(hatvalues, lm)
S3method(influence, glm)
S3method(influence, lm)
S3method(labels, dist)
@@ -172,6 +180,12 @@ S3method(makepredictcall, poly)
S3method(mauchly.test, SSD)
S3method(mauchly.test, mlm)
S3method(median, default)
+S3method(model.frame, aovlist)
+S3method(model.frame, default)
+S3method(model.frame, glm)
+S3method(model.frame, lm)
+S3method(model.matrix, default)
+S3method(model.matrix, lm)
S3method(model.tables, aov)
S3method(model.tables, aovlist)
S3method(na.action, default)
@@ -238,6 +252,7 @@ S3method(proj, aov)
S3method(proj, aovlist)
S3method(proj, default)
S3method(proj, lm)
+S3method(qqnorm, default)
S3method(qr, lm)
S3method(quantile, default)
S3method(quantile, ecdf)
@@ -246,6 +261,13 @@ S3method(relevel, default)
S3method(relevel, factor)
S3method(relevel, ordered)
S3method(reorder, default)
+S3method(residuals, default)
+S3method(residuals, glm)
+S3method(residuals, lm)
+S3method(rstandard, glm)
+S3method(rstandard, lm)
+S3method(rstudent, glm)
+S3method(rstudent, lm)
S3method(se.contrast, aov)
S3method(se.contrast, aovlist)
S3method(simulate, lm)
@@ -260,6 +282,9 @@ S3method(SSD, mlm)
S3method(start, default)
S3method(str, logLik)
S3method(t, ts)
+S3method(terms, default)
+S3method(terms, formula)
+S3method(terms, terms)
S3method(time, default)
S3method(time, ts)
S3method(TukeyHSD, aov)
@@ -418,7 +443,7 @@ S3method(summary, princomp)
export(NLSstAsymptotic, NLSstClosestX, NLSstLfAsymptote,
NLSstRtAsymptote, SSasymp, SSasympOff, SSasympOrig, SSbiexp,
SSfol, SSfpl, SSgompertz, SSlogis, SSmicmen, SSweibull,
- asOneSidedFormula, clearNames, getInitial, nls, nls.control,
+ asOneSidedFormula, getInitial, nls, nls.control,
numericDeriv, selfStart, setNames, sortedXyData)
# documented but not exported
diff --git a/win32/deps/library/stats/R/stats b/win32/deps/library/stats/R/stats
index ac8cebe..3b65e3c 100644
--- a/win32/deps/library/stats/R/stats
+++ b/win32/deps/library/stats/R/stats
@@ -1,9 +1,27 @@
+# File share/R/nspackloader.R
+# Part of the R package, http://www.R-project.org
+#
+# Copyright (C) 1995-2012 The R Core Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# A copy of the GNU General Public License is available at
+# http://www.r-project.org/Licenses/
+
local({
info <- loadingNamespaceInfo()
- ns <- .Internal(getRegisteredNamespace(as.name(info$pkgname)))
+ pkg <- info$pkgname
+ ns <- .getNamespace(as.name(pkg))
if (is.null(ns))
- stop("cannot find namespace environment");
- barepackage <- sub("([^-]+)_.*", "\\1", info$pkgname)
- dbbase <- file.path(info$libname, info$pkgname, "R", barepackage)
+ stop("cannot find namespace environment for ", pkg, domain = NA);
+ dbbase <- file.path(info$libname, pkg, "R", pkg)
lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
})
diff --git a/win32/deps/library/stats/R/stats.rdb b/win32/deps/library/stats/R/stats.rdb
index 43850f1..ba977dc 100644
Binary files a/win32/deps/library/stats/R/stats.rdb and b/win32/deps/library/stats/R/stats.rdb differ
diff --git a/win32/deps/library/stats/R/stats.rdx b/win32/deps/library/stats/R/stats.rdx
index 02f5a1c..d5fb1ce 100644
Binary files a/win32/deps/library/stats/R/stats.rdx and b/win32/deps/library/stats/R/stats.rdx differ
diff --git a/win32/deps/library/stats/help/AnIndex b/win32/deps/library/stats/help/AnIndex
index 86bef5a..c514330 100644
--- a/win32/deps/library/stats/help/AnIndex
+++ b/win32/deps/library/stats/help/AnIndex
@@ -45,7 +45,7 @@ ar.yw.mts ar
arima arima
arima.sim arima.sim
arima0 arima0
-arima0.diag ts-defunct
+arima0.diag stats-defunct
ARMAacf ARMAacf
ARMAtoMA ARMAtoMA
as.dendrogram dendrogram
@@ -428,7 +428,7 @@ pf Fdist
pgamma GammaDist
pgeom Geometric
phyper Hypergeometric
-plclust hclust
+plclust stats-deprecated
plnorm Lognormal
plogis Logistic
plot.acf plot.acf
@@ -507,7 +507,7 @@ print.ecdf ecdf
print.factanal loadings
print.family family
print.formula formula
-print.ftable ftable
+print.ftable read.ftable
print.glm glm
print.hclust hclust
print.HoltWinters HoltWinters
diff --git a/win32/deps/library/stats/help/aliases.rds b/win32/deps/library/stats/help/aliases.rds
index 0325d05..731829c 100644
Binary files a/win32/deps/library/stats/help/aliases.rds and b/win32/deps/library/stats/help/aliases.rds
differ
diff --git a/win32/deps/library/stats/help/paths.rds b/win32/deps/library/stats/help/paths.rds
index e2f2ddc..37a570e 100644
Binary files a/win32/deps/library/stats/help/paths.rds and b/win32/deps/library/stats/help/paths.rds differ
diff --git a/win32/deps/library/stats/help/stats.rdb b/win32/deps/library/stats/help/stats.rdb
index a60a2d8..34dadb1 100644
Binary files a/win32/deps/library/stats/help/stats.rdb and b/win32/deps/library/stats/help/stats.rdb differ
diff --git a/win32/deps/library/stats/help/stats.rdx b/win32/deps/library/stats/help/stats.rdx
index 60f3d89..2baf9d2 100644
Binary files a/win32/deps/library/stats/help/stats.rdx and b/win32/deps/library/stats/help/stats.rdx differ
diff --git a/win32/deps/library/stats/html/00Index.html b/win32/deps/library/stats/html/00Index.html
index b649900..79343ac 100644
--- a/win32/deps/library/stats/html/00Index.html
+++ b/win32/deps/library/stats/html/00Index.html
@@ -10,7 +10,7 @@
<div align="center">
<a href="../../../doc/html/packages.html"><img src="../../../doc/html/left.jpg" alt="[Up]" width="30"
height="30" border="0"></a>
<a href="../../../doc/html/index.html"><img src="../../../doc/html/up.jpg" alt="[Top]" width="30"
height="30" border="0"></a>
-</div><h2>Documentation for package ‘stats’ version 2.15.2</h2>
+</div><h2>Documentation for package ‘stats’ version 3.0.2</h2>
<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
<li><a href="../demo">Code demos</a>. Use <a href="../../utils/help/demo">demo()</a> to run them.</li>
@@ -737,8 +737,8 @@
<td>The Geometric Distribution</td></tr>
<tr><td width="25%"><a href="Hypergeometric.html">phyper</a></td>
<td>The Hypergeometric Distribution</td></tr>
-<tr><td width="25%"><a href="hclust.html">plclust</a></td>
-<td>Hierarchical Clustering</td></tr>
+<tr><td width="25%"><a href="stats-deprecated.html">plclust</a></td>
+<td>Deprecated Functions in Package 'stats'</td></tr>
<tr><td width="25%"><a href="Lognormal.html">plnorm</a></td>
<td>The Log Normal Distribution</td></tr>
<tr><td width="25%"><a href="Logistic.html">plogis</a></td>
@@ -867,8 +867,8 @@
<td>Family Objects for Models</td></tr>
<tr><td width="25%"><a href="formula.html">print.formula</a></td>
<td>Model Formulae</td></tr>
-<tr><td width="25%"><a href="ftable.html">print.ftable</a></td>
-<td>Flat Contingency Tables</td></tr>
+<tr><td width="25%"><a href="read.ftable.html">print.ftable</a></td>
+<td>Manipulate Flat Contingency Tables</td></tr>
<tr><td width="25%"><a href="glm.html">print.glm</a></td>
<td>Fitting Generalized Linear Models</td></tr>
<tr><td width="25%"><a href="hclust.html">print.hclust</a></td>
diff --git a/win32/deps/library/stats/libs/i386/stats.dll b/win32/deps/library/stats/libs/i386/stats.dll
index 1be3aff..5b6bd34 100644
Binary files a/win32/deps/library/stats/libs/i386/stats.dll and
b/win32/deps/library/stats/libs/i386/stats.dll differ
diff --git a/win32/deps/library/stats/tests/ks-test.Rout.save
b/win32/deps/library/stats/tests/ks-test.Rout.save
index 991451a..3fa350d 100644
--- a/win32/deps/library/stats/tests/ks-test.Rout.save
+++ b/win32/deps/library/stats/tests/ks-test.Rout.save
@@ -1,7 +1,6 @@
-R Under development (unstable) (2011-08-04 r56621)
-Copyright (C) 2011 The R Foundation for Statistical Computing
-ISBN 3-900051-07-0
+R version 3.0.2 RC (2013-09-22 r63960) -- "Frisbee Sailing"
+Copyright (C) 2013 The R Foundation for Statistical Computing
Platform: x86_64-unknown-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
@@ -24,9 +23,9 @@ Type 'q()' to quit R.
One-sample Kolmogorov-Smirnov test
-data: ds1
+data: ds1
D = 0.274, p-value = 0.4407
-alternative hypothesis: two-sided
+alternative hypothesis: two-sided
Warning message:
In ks.test(ds1, "pnorm", mean = 3.3, sd = 1.55216) :
@@ -38,9 +37,9 @@ In ks.test(ds1, "pnorm", mean = 3.3, sd = 1.55216) :
One-sample Kolmogorov-Smirnov test
-data: ds1
+data: ds1
D = 0.274, p-value = 0.3715
-alternative hypothesis: two-sided
+alternative hypothesis: two-sided
Warning message:
In ks.test(ds1, "pnorm", mean = 3.3, sd = 1.55216, exact = TRUE) :
@@ -53,26 +52,26 @@ In ks.test(ds1, "pnorm", mean = 3.3, sd = 1.55216, exact = TRUE) :
One-sample Kolmogorov-Smirnov test
-data: ds2
+data: ds2
D = 0.0194, p-value = 0.8452
-alternative hypothesis: two-sided
+alternative hypothesis: two-sided
ks.test(ds2, "pnorm", exact = TRUE)
One-sample Kolmogorov-Smirnov test
-data: ds2
+data: ds2
D = 0.0194, p-value = 0.8379
-alternative hypothesis: two-sided
+alternative hypothesis: two-sided
## next two are still close
ks.test(round(ds2, 2), "pnorm")
One-sample Kolmogorov-Smirnov test
-data: round(ds2, 2)
+data: round(ds2, 2)
D = 0.0192, p-value = 0.856
-alternative hypothesis: two-sided
+alternative hypothesis: two-sided
Warning message:
In ks.test(round(ds2, 2), "pnorm") :
@@ -81,9 +80,9 @@ In ks.test(round(ds2, 2), "pnorm") :
One-sample Kolmogorov-Smirnov test
-data: round(ds2, 2)
+data: round(ds2, 2)
D = 0.0192, p-value = 0.8489
-alternative hypothesis: two-sided
+alternative hypothesis: two-sided
Warning message:
In ks.test(round(ds2, 2), "pnorm", exact = TRUE) :
@@ -93,9 +92,9 @@ In ks.test(round(ds2, 2), "pnorm", exact = TRUE) :
One-sample Kolmogorov-Smirnov test
-data: round(ds2, 1)
+data: round(ds2, 1)
D = 0.0367, p-value = 0.1344
-alternative hypothesis: two-sided
+alternative hypothesis: two-sided
Warning message:
In ks.test(round(ds2, 1), "pnorm") :
@@ -104,12 +103,15 @@ In ks.test(round(ds2, 1), "pnorm") :
One-sample Kolmogorov-Smirnov test
-data: round(ds2, 1)
+data: round(ds2, 1)
D = 0.0367, p-value = 0.1311
-alternative hypothesis: two-sided
+alternative hypothesis: two-sided
Warning message:
In ks.test(round(ds2, 1), "pnorm", exact = TRUE) :
ties should not be present for the Kolmogorov-Smirnov test
+> proc.time()
+ user system elapsed
+ 0.238 0.020 0.252
diff --git a/win32/deps/library/stats/tests/nls.R b/win32/deps/library/stats/tests/nls.R
index 870edaf..79b5c85 100644
--- a/win32/deps/library/stats/tests/nls.R
+++ b/win32/deps/library/stats/tests/nls.R
@@ -33,9 +33,8 @@ logistInit <- function(mCall, LHS, data) {
if (Asym != max(xy[,"y"])) Asym <- -Asym # negative asymptote
xmid <- NLSstClosestX(xy, 0.5 * Asym)
scal <- NLSstClosestX(xy, 0.75 * Asym) - xmid
- value <- c(Asym, xmid, scal)
- names(value) <- mCall[c("Asym", "xmid", "scal")]
- value
+ setNames(c(Asym, xmid, scal),
+ mCall[c("Asym", "xmid", "scal")])
}
logist <- selfStart(logist, initial = logistInit) ##-> Error in R 1.5.0
str(logist)
diff --git a/win32/deps/library/stats/tests/nls.Rout.save b/win32/deps/library/stats/tests/nls.Rout.save
index 6937a94..307d006 100644
--- a/win32/deps/library/stats/tests/nls.Rout.save
+++ b/win32/deps/library/stats/tests/nls.Rout.save
@@ -1,8 +1,7 @@
-R version 2.15.0 Patched (2012-04-11 r58983) -- "Easter Beagle"
-Copyright (C) 2012 The R Foundation for Statistical Computing
-ISBN 3-900051-07-0
-Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)
+R version 3.0.2 RC (2013-09-22 r63960) -- "Frisbee Sailing"
+Copyright (C) 2013 The R Foundation for Statistical Computing
+Platform: x86_64-unknown-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
@@ -51,9 +50,8 @@ Type 'q()' to quit R.
+ if (Asym != max(xy[,"y"])) Asym <- -Asym # negative asymptote
+ xmid <- NLSstClosestX(xy, 0.5 * Asym)
+ scal <- NLSstClosestX(xy, 0.75 * Asym) - xmid
-+ value <- c(Asym, xmid, scal)
-+ names(value) <- mCall[c("Asym", "xmid", "scal")]
-+ value
++ setNames(c(Asym, xmid, scal),
++ mCall[c("Asym", "xmid", "scal")])
+ }
logist <- selfStart(logist, initial = logistInit) ##-> Error in R 1.5.0
str(logist)
@@ -70,23 +68,23 @@ function (x, Asym, xmid, scal)
curve(a+b*x+c*x^2, add = TRUE)
nls(y ~ a+b*x+c*I(x^2), start = c(a=1, b=1, c=0.1), algorithm = "port")
Nonlinear regression model
- model: y ~ a + b * x + c * I(x^2)
- data: parent.frame()
+ model: y ~ a + b * x + c * I(x^2)
+ data: parent.frame()
a b c
1.0058 0.9824 -0.0897
residual sum-of-squares: 0.46
-Algorithm "port", convergence message: relative convergence (4)
+Algorithm "port", convergence message: relative convergence (4)
(fm <- nls(y ~ a+b*x+c*I(x^2), start = c(a=1, b=1, c=0.1),
+ algorithm = "port", lower = c(0, 0, 0)))
Nonlinear regression model
- model: y ~ a + b * x + c * I(x^2)
- data: parent.frame()
+ model: y ~ a + b * x + c * I(x^2)
+ data: parent.frame()
a b c
1.02 0.89 0.00
residual sum-of-squares: 0.468
-Algorithm "port", convergence message: both X-convergence and relative convergence (5)
+Algorithm "port", convergence message: both X-convergence and relative convergence (5)
confint(fm)
Waiting for profiling to be done...
2.5% 97.5%
@@ -116,8 +114,8 @@ Coefficients:
x 0.99915 0.00119 841.38 <2e-16
Residual standard error: 0.0132 on 7 degrees of freedom
-Multiple R-squared: 1, Adjusted R-squared: 1
-F-statistic: 7.08e+05 on 1 and 7 DF, p-value: <2e-16
+Multiple R-squared: 1, Adjusted R-squared: 1
+F-statistic: 7.08e+05 on 1 and 7 DF, p-value: <2e-16
Correlation of Coefficients:
(Intercept)
@@ -126,8 +124,8 @@ x -0.89
cf0 <- coef(summary(fit0))[, 1:2]
fit <- nls(yeps ~ a + b*x, start = list(a = 0.12345, b = 0.54321),
+ weights = wts, trace = TRUE)
-112.14 : 0.12345 0.54321
-0.0012128 : 0.0051705 0.9991529
+112.14 : 0.12345 0.54321
+0.0012128 : 0.0051705 0.9991529
summary(fit, cor = TRUE)
Formula: yeps ~ a + b * x
@@ -168,7 +166,7 @@ Correlation of Parameter Estimates:
a
b -0.89
-Algorithm "port", convergence message: both X-convergence and relative convergence (5)
+Algorithm "port", convergence message: both X-convergence and relative convergence (5)
cf2 <- coef(summary(fit2))[, 1:2]
rownames(cf0) <- c("a", "b")
@@ -310,7 +308,7 @@ scal 1.0385 0.0304 34.1 4.2e-14
Residual standard error: 0.0355 on 13 degrees of freedom
-Algorithm "port", convergence message: relative convergence (4)
+Algorithm "port", convergence message: relative convergence (4)
stopifnot(all.equal(coef(summary(fm5)), coef(summary(fm1)), tol = 1e-6))
stopifnot(all.equal(residuals(fm5), residuals(fm1), tol = 1e-5))
@@ -359,8 +357,8 @@ scal 0.9757 1.1063
+ print(confint(fm))
+ }
Nonlinear regression model
- model: y ~ x^b
- data: parent.frame()
+ model: y ~ x^b
+ data: parent.frame()
b
0.695
residual sum-of-squares: 2.39
@@ -368,19 +366,19 @@ Waiting for profiling to be done...
2.5% 97.5%
0.68704 0.70281
Nonlinear regression model
- model: y ~ x^b
- data: parent.frame()
+ model: y ~ x^b
+ data: parent.frame()
b
0.695
residual sum-of-squares: 2.39
-Algorithm "port", convergence message: relative convergence (4)
+Algorithm "port", convergence message: relative convergence (4)
Waiting for profiling to be done...
2.5% 97.5%
0.68704 0.70281
Nonlinear regression model
- model: y2 ~ a * x^b
- data: parent.frame()
+ model: y2 ~ a * x^b
+ data: parent.frame()
a b
0.502 0.724
residual sum-of-squares: 2.51
@@ -389,20 +387,20 @@ Waiting for profiling to be done...
a 0.49494 0.50893
b 0.70019 0.74767
Nonlinear regression model
- model: y2 ~ a * x^b
- data: parent.frame()
+ model: y2 ~ a * x^b
+ data: parent.frame()
a b
0.502 0.724
residual sum-of-squares: 2.51
-Algorithm "port", convergence message: relative convergence (4)
+Algorithm "port", convergence message: relative convergence (4)
Waiting for profiling to be done...
2.5% 97.5%
a 0.49494 0.50893
b 0.70019 0.74767
Nonlinear regression model
- model: y3 ~ a * (x + exp(logc))^b
- data: parent.frame()
+ model: y3 ~ a * (x + exp(logc))^b
+ data: parent.frame()
a b logc
0.558 0.603 -0.176
residual sum-of-squares: 2.44
@@ -412,13 +410,13 @@ a 0.35006 0.66057
b 0.45107 0.91473
logc -0.64627 0.40946
Nonlinear regression model
- model: y3 ~ a * (x + exp(logc))^b
- data: parent.frame()
+ model: y3 ~ a * (x + exp(logc))^b
+ data: parent.frame()
a b logc
0.558 0.603 -0.176
residual sum-of-squares: 2.44
-Algorithm "port", convergence message: relative convergence (4)
+Algorithm "port", convergence message: relative convergence (4)
Waiting for profiling to be done...
2.5% 97.5%
a 0.35006 0.66057
@@ -479,13 +477,13 @@ $b
attr(,"original.fit")
Nonlinear regression model
- model: y ~ gfun(a, b, x)
- data: parent.frame()
+ model: y ~ gfun(a, b, x)
+ data: parent.frame()
a b
1.538 0.263
residual sum-of-squares: 0.389
-Algorithm "port", convergence message: relative convergence (4)
+Algorithm "port", convergence message: relative convergence (4)
attr(,"summary")
Formula: y ~ gfun(a, b, x)
@@ -497,7 +495,7 @@ b 0.263 0.352 0.75 0.476
Residual standard error: 0.221 on 8 degrees of freedom
-Algorithm "port", convergence message: relative convergence (4)
+Algorithm "port", convergence message: relative convergence (4)
attr(,"class")
[1] "profile.nls" "profile"
@@ -531,13 +529,13 @@ $b
attr(,"original.fit")
Nonlinear regression model
- model: y ~ gfun(a, b, x)
- data: parent.frame()
+ model: y ~ gfun(a, b, x)
+ data: parent.frame()
a b
1.500 0.243
residual sum-of-squares: 0.39
-Algorithm "port", convergence message: relative convergence (4)
+Algorithm "port", convergence message: relative convergence (4)
attr(,"summary")
Formula: y ~ gfun(a, b, x)
@@ -549,7 +547,7 @@ b 0.243 0.356 0.68 0.514
Residual standard error: 0.221 on 8 degrees of freedom
-Algorithm "port", convergence message: relative convergence (4)
+Algorithm "port", convergence message: relative convergence (4)
attr(,"class")
[1] "profile.nls" "profile"
@@ -571,16 +569,16 @@ b NA 0.611
+ nls(y ~ myf(x,a,b,n), data=xy, start=c(a=1,b=1), trace=TRUE)
+ }
test()
-8291.9 : 1 1
-726.02 : 0.80544 2.42971
-552.85 : 1.290 2.129
-70.431 : 1.9565 1.9670
-26.555 : 1.9788 2.0064
-26.503 : 1.9798 2.0046
-26.503 : 1.9799 2.0046
+8291.9 : 1 1
+726.02 : 0.80544 2.42971
+552.85 : 1.290 2.129
+70.431 : 1.9565 1.9670
+26.555 : 1.9788 2.0064
+26.503 : 1.9798 2.0046
+26.503 : 1.9799 2.0046
Nonlinear regression model
- model: y ~ myf(x, a, b, n)
- data: xy
+ model: y ~ myf(x, a, b, n)
+ data: xy
a b
1.98 2.00
residual sum-of-squares: 26.5
@@ -633,7 +631,7 @@ sp2 9.99e-01 5.00e-03 199.8 <2e-16
Residual standard error: 0.00205 on 96 degrees of freedom
-Algorithm "port", convergence message: both X-convergence and relative convergence (5)
+Algorithm "port", convergence message: both X-convergence and relative convergence (5)
@@ -658,5 +656,8 @@ In nls(y ~ b0[fac] + b1 * x, start = list(b0 = c(1, 1), b1 = 101), :
+ stopifnot(isConv == FALSE, stopCode == 300))
cat('Time elapsed: ', proc.time() - .proctime00,'\n')
-Time elapsed: 2.168 0.023 2.201 0 0
+Time elapsed: 2.304 0.021 2.335 0 0
+> proc.time()
+ user system elapsed
+ 2.513 0.040 2.558
diff --git a/win32/deps/library/stats/tests/simulate.Rout.save
b/win32/deps/library/stats/tests/simulate.Rout.save
index c5d8880..4a3d500 100644
--- a/win32/deps/library/stats/tests/simulate.Rout.save
+++ b/win32/deps/library/stats/tests/simulate.Rout.save
@@ -1,7 +1,6 @@
-R version 2.13.0 Under development (unstable) (2011-03-04 r54667)
-Copyright (C) 2011 The R Foundation for Statistical Computing
-ISBN 3-900051-07-0
+R version 3.0.2 RC (2013-09-22 r63960) -- "Frisbee Sailing"
+Copyright (C) 2013 The R Foundation for Statistical Computing
Platform: x86_64-unknown-linux-gnu (64-bit)
R is free software and comes with ABSOLUTELY NO WARRANTY.
@@ -405,3 +404,6 @@ log(u) 0.014935 0.00021999 67.889 3.9547e-11
log(u) 0.015569 0.00033659 46.256 5.7704e-10
+> proc.time()
+ user system elapsed
+ 0.425 0.022 0.446
diff --git a/win32/deps/library/stats/tests/ts-tests.R b/win32/deps/library/stats/tests/ts-tests.R
index 1589982..315c3a2 100644
--- a/win32/deps/library/stats/tests/ts-tests.R
+++ b/win32/deps/library/stats/tests/ts-tests.R
@@ -19,7 +19,7 @@
.proctime00 <- proc.time()
library(stats)
-postscript("ts-test.ps")
+pdf("ts-test.pdf")
### ar
ar(lh)
diff --git a/win32/deps/library/utils/DESCRIPTION b/win32/deps/library/utils/DESCRIPTION
index 79abb38..b3b51d4 100644
--- a/win32/deps/library/utils/DESCRIPTION
+++ b/win32/deps/library/utils/DESCRIPTION
@@ -1,9 +1,9 @@
Package: utils
-Version: 2.15.2
+Version: 3.0.2
Priority: base
Title: The R Utils Package
Author: R Core Team and contributors worldwide
Maintainer: R Core Team <R-core r-project org>
Description: R utility functions
-License: Part of R 2.15.2
-Built: R 2.15.2; ; 2012-10-27 03:05:31 UTC; windows
+License: Part of R 3.0.2
+Built: R 3.0.2; x86_64-w64-mingw32; 2013-09-25 15:38:52 UTC; windows
diff --git a/win32/deps/library/utils/INDEX b/win32/deps/library/utils/INDEX
index fe97ffc..4f6b42b 100644
--- a/win32/deps/library/utils/INDEX
+++ b/win32/deps/library/utils/INDEX
@@ -3,6 +3,7 @@ DLL.version DLL Version Information
INSTALL Install Add-on Packages
Question Documentation Shortcuts
REMOVE Remove Add-on Packages
+RHOME R Home Directory
RShowDoc Show R Manuals and Other Documentation
RSiteSearch Search for Key Words or Phrases in
Documentation
@@ -41,6 +42,7 @@ chooseBioCmirror Select a Bioconductor Mirror
chooseCRANmirror Select a CRAN Mirror
citEntry Bibliography Entries (Older Interface)
citation Citing R and R Packages in Publications
+cite Cite a bibliography entry.
clipboard Read/Write to/from the Windows Clipboard
close.socket Close a Socket
combn Generate All Combinations of n Elements, Taken
@@ -70,6 +72,7 @@ formatUL Format Unordered and Ordered Lists
getAnywhere Retrieve an R Object, Including from a
Namespace
getFromNamespace Utility functions for Developing Namespaces
+getParseData Get detailed parse information from object.
getS3method Get An S3 Method
getSrcFilename Source Reference Utilities
getWindowsHandle Get a Windows Handle
@@ -102,9 +105,11 @@ news Build and Query R or Package News Information
object.size Report the Space Allocated for an Object
package.skeleton Create a Skeleton for a New Source Package
packageDescription Package Description
+packageName Find package associated with an environment.
packageStatus Package Management Tools
page Invoke a Pager on an R Object
person Persons
+process.events Trigger event handling
prompt Produce Prototype of an R Documentation File
promptData Generate Outline Documentation for a Data Set
promptPackage Generate a Shell for Documentation of a Package
@@ -145,7 +150,7 @@ update.packages Compare Installed Packages with CRAN-like
url.show Display a text URL
utils-deprecated Deprecated Functions in Package 'utils'
utils-package The R Utils Package
-vignette View or List Vignettes
+vignette View or List Package Vignettes
win.version Auxiliary Functions for the Windows Port
winDialog Dialog Boxes under Windows
winMenuAdd User Menus under Windows
diff --git a/win32/deps/library/utils/Meta/Rd.rds b/win32/deps/library/utils/Meta/Rd.rds
index 2c4c9c5..42b1876 100644
Binary files a/win32/deps/library/utils/Meta/Rd.rds and b/win32/deps/library/utils/Meta/Rd.rds differ
diff --git a/win32/deps/library/utils/Meta/hsearch.rds b/win32/deps/library/utils/Meta/hsearch.rds
index 2dff7d3..9a80998 100644
Binary files a/win32/deps/library/utils/Meta/hsearch.rds and b/win32/deps/library/utils/Meta/hsearch.rds
differ
diff --git a/win32/deps/library/utils/Meta/links.rds b/win32/deps/library/utils/Meta/links.rds
index 171c0df..9469518 100644
Binary files a/win32/deps/library/utils/Meta/links.rds and b/win32/deps/library/utils/Meta/links.rds differ
diff --git a/win32/deps/library/utils/Meta/nsInfo.rds b/win32/deps/library/utils/Meta/nsInfo.rds
index ff1b17c..9076a5f 100644
Binary files a/win32/deps/library/utils/Meta/nsInfo.rds and b/win32/deps/library/utils/Meta/nsInfo.rds differ
diff --git a/win32/deps/library/utils/Meta/package.rds b/win32/deps/library/utils/Meta/package.rds
index ee96422..a9c584d 100644
Binary files a/win32/deps/library/utils/Meta/package.rds and b/win32/deps/library/utils/Meta/package.rds
differ
diff --git a/win32/deps/library/utils/Meta/vignette.rds b/win32/deps/library/utils/Meta/vignette.rds
index 1b3038c..0c2590a 100644
Binary files a/win32/deps/library/utils/Meta/vignette.rds and b/win32/deps/library/utils/Meta/vignette.rds
differ
diff --git a/win32/deps/library/utils/NAMESPACE b/win32/deps/library/utils/NAMESPACE
index c4344c8..094f8ef 100644
--- a/win32/deps/library/utils/NAMESPACE
+++ b/win32/deps/library/utils/NAMESPACE
@@ -1,38 +1,44 @@
+# Refer to all C routines by their name prefixed by C_
+useDynLib(utils, .registration = TRUE, .fixes = "C_")
+
export("?", .DollarNames, CRAN.packages, Rprof, Rprofmem, RShowDoc,
RSiteSearch, URLdecode, URLencode, View, adist, alarm, apropos,
aregexec, argsAnywhere, assignInMyNamespace, assignInNamespace,
as.roman, as.person, as.personList, as.relistable, aspell,
+ aspell_package_C_files, aspell_package_R_files,
aspell_package_Rd_files, aspell_package_vignettes,
aspell_write_personal_dictionary_file, available.packages,
browseEnv, browseURL, browseVignettes, bug.report,
capture.output, checkCRAN, chooseBioCmirror, chooseCRANmirror,
- citation, citEntry, citHeader, citFooter, close.socket, combn,
- compareVersion, contrib.url, count.fields, create.post, data,
- data.entry, dataentry, de, de.ncols, de.restore, de.setup,
- debugger, demo, download.file, download.packages, dump.frames,
- edit, emacs, example, file_test, file.edit, find, fix,
- fixInNamespace, findLineNum, flush.console, formatOL, formatUL,
- getAnywhere, getCRANmirrors, getFromNamespace, getS3method,
+ citation, cite, citeNatbib, citEntry, citHeader, citFooter,
+ close.socket, combn, compareVersion, contrib.url, count.fields,
+ create.post, data, data.entry, dataentry, de, de.ncols,
+ de.restore, de.setup, debugger, demo, download.file,
+ download.packages, dump.frames, edit, emacs, example,
+ file_test, file.edit, find, fix, fixInNamespace, findLineNum,
+ flush.console, formatOL, formatUL, getAnywhere, getCRANmirrors,
+ getFromNamespace, getParseData, getParseText, getS3method,
getSrcDirectory, getSrcFilename, getSrcLocation, getSrcref,
- glob2rx, globalVariables, head, head.matrix, help, help.request, help.search,
- help.start, history, install.packages, installed.packages,
- is.relistable, limitedLabels, loadhistory, localeToCharset,
- ls.str, lsf.str, maintainer, make.packages.html, make.socket,
- memory.limit, memory.size, menu, methods, mirror2html,
- modifyList, new.packages, news, object.size, old.packages,
- package.contents, package.skeleton, packageDescription,
+ glob2rx, globalVariables, head, head.matrix, help,
+ help.request, help.search, help.start, history,
+ install.packages, installed.packages, is.relistable,
+ limitedLabels, loadhistory, localeToCharset, ls.str, lsf.str,
+ maintainer, make.packages.html, make.socket, memory.limit,
+ memory.size, menu, methods, mirror2html, modifyList,
+ new.packages, news, object.size, old.packages,
+ package.skeleton, packageDescription, packageName,
packageVersion, packageStatus, page, person, personList, pico,
- prompt, promptData, promptPackage, rc.getOption, rc.options,
- rc.settings, rc.status, readCitationFile, read.DIF, read.csv,
- read.csv2, read.delim, read.delim2, read.fwf, read.fortran,
- read.socket, read.table, recover, relist, remove.packages,
- removeSource, rtags, savehistory, select.list, sessionInfo,
- setBreakpoint, setRepositories, stack, str, strOptions,
- summaryRprof, tail, tail.matrix, tar, timestamp, toBibtex,
- toLatex, type.convert, unstack, untar, unzip,
- update.packageStatus, update.packages, upgrade, url.show, vi,
- vignette, write.csv, write.csv2, write.socket, write.table,
- wsbrowser, xedit, xemacs, zip, zip.file.extract)
+ process.events, prompt, promptData, promptPackage,
+ rc.getOption, rc.options, rc.settings, rc.status,
+ readCitationFile, read.DIF, read.csv, read.csv2, read.delim,
+ read.delim2, read.fwf, read.fortran, read.socket, read.table,
+ recover, relist, remove.packages, removeSource, rtags,
+ savehistory, select.list, sessionInfo, setBreakpoint,
+ setRepositories, stack, str, strOptions, summaryRprof, tail,
+ tail.matrix, tar, timestamp, toBibtex, toLatex, type.convert,
+ unstack, untar, unzip, update.packageStatus, update.packages,
+ upgrade, url.show, vi, vignette, write.csv, write.csv2,
+ write.socket, write.table, xedit, xemacs, zip)
export(txtProgressBar, getTxtProgressBar, setTxtProgressBar)
@@ -48,6 +54,7 @@ S3method(edit, data.frame)
S3method(edit, default)
S3method(edit, matrix)
S3method(edit, vignette)
+S3method(format, "news_db")
S3method(format, "roman")
S3method(head, data.frame)
S3method(head, default)
@@ -121,7 +128,10 @@ S3method("format", "person")
S3method("print", "bibentry")
S3method("print", "citation")
S3method("print", "person")
+S3method("rep", "bibentry")
+S3method("sort", "bibentry")
S3method("toBibtex", "bibentry")
+S3method("unique", "bibentry")
S3method(.DollarNames, default)
S3method(.DollarNames, list)
@@ -129,9 +139,9 @@ S3method(.DollarNames, environment)
export(Rtangle, RtangleSetup, RweaveLatex, RweaveLatexSetup, Stangle,
Sweave, SweaveSyntConv, SweaveSyntaxLatex, SweaveSyntaxNoweb,
- RtangleWritedoc, RweaveLatexOptions, RweaveChunkPrefix,
- RweaveEvalWithOpt, RweaveTryStop, SweaveHooks,
- RweaveLatexWritedoc, RweaveLatexOptions, RweaveLatexFinish,
+ RtangleWritedoc, RweaveChunkPrefix, RweaveEvalWithOpt,
+ RweaveTryStop, SweaveHooks, RweaveLatexWritedoc,
+ RweaveLatexOptions, RweaveLatexFinish,
makeRweaveLatexCodeRunner)
if(tools:::.OStype() == "unix") {
diff --git a/win32/deps/library/utils/R/utils b/win32/deps/library/utils/R/utils
index ac8cebe..3b65e3c 100644
--- a/win32/deps/library/utils/R/utils
+++ b/win32/deps/library/utils/R/utils
@@ -1,9 +1,27 @@
+# File share/R/nspackloader.R
+# Part of the R package, http://www.R-project.org
+#
+# Copyright (C) 1995-2012 The R Core Team
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# A copy of the GNU General Public License is available at
+# http://www.r-project.org/Licenses/
+
local({
info <- loadingNamespaceInfo()
- ns <- .Internal(getRegisteredNamespace(as.name(info$pkgname)))
+ pkg <- info$pkgname
+ ns <- .getNamespace(as.name(pkg))
if (is.null(ns))
- stop("cannot find namespace environment");
- barepackage <- sub("([^-]+)_.*", "\\1", info$pkgname)
- dbbase <- file.path(info$libname, info$pkgname, "R", barepackage)
+ stop("cannot find namespace environment for ", pkg, domain = NA);
+ dbbase <- file.path(info$libname, pkg, "R", pkg)
lazyLoad(dbbase, ns, filter = function(n) n != ".__NAMESPACE__.")
})
diff --git a/win32/deps/library/utils/R/utils.rdb b/win32/deps/library/utils/R/utils.rdb
index 2c70044..8ed576f 100644
Binary files a/win32/deps/library/utils/R/utils.rdb and b/win32/deps/library/utils/R/utils.rdb differ
diff --git a/win32/deps/library/utils/R/utils.rdx b/win32/deps/library/utils/R/utils.rdx
index e359e6f..71351ef 100644
Binary files a/win32/deps/library/utils/R/utils.rdx and b/win32/deps/library/utils/R/utils.rdx differ
diff --git a/win32/deps/library/utils/doc/Sweave.R b/win32/deps/library/utils/doc/Sweave.R
index 3e84422..b0ee7c2 100644
--- a/win32/deps/library/utils/doc/Sweave.R
+++ b/win32/deps/library/utils/doc/Sweave.R
@@ -1,38 +1,38 @@
### R code from vignette source 'Sweave.Rnw'
###################################################
-### code chunk number 1: Sweave.Rnw:122-124
+### code chunk number 1: Sweave.Rnw:127-129
###################################################
rnwfile <- system.file("Sweave", "example-1.Rnw", package = "utils")
Sweave(rnwfile)
###################################################
-### code chunk number 2: Sweave.Rnw:129-130
+### code chunk number 2: Sweave.Rnw:134-135
###################################################
tools::texi2pdf("example-1.tex")
###################################################
-### code chunk number 3: Sweave.Rnw:365-366
+### code chunk number 3: Sweave.Rnw:370-371
###################################################
SweaveSyntConv(rnwfile, SweaveSyntaxLatex)
###################################################
-### code chunk number 4: Sweave.Rnw:468-469 (eval = FALSE)
+### code chunk number 4: Sweave.Rnw:473-474 (eval = FALSE)
###################################################
## help("Sweave")
###################################################
-### code chunk number 5: Sweave.Rnw:478-479 (eval = FALSE)
+### code chunk number 5: Sweave.Rnw:483-484 (eval = FALSE)
###################################################
## help("RweaveLatex")
###################################################
-### code chunk number 6: Sweave.Rnw:594-595 (eval = FALSE)
+### code chunk number 6: Sweave.Rnw:599-600 (eval = FALSE)
###################################################
## help("Rtangle")
diff --git a/win32/deps/library/utils/doc/Sweave.Rnw b/win32/deps/library/utils/doc/Sweave.Rnw
index 430aa47..b7e18dc 100644
--- a/win32/deps/library/utils/doc/Sweave.Rnw
+++ b/win32/deps/library/utils/doc/Sweave.Rnw
@@ -1,3 +1,8 @@
+% File src/library/utils/vignettes/Sweave.Rnw
+% Part of the R package, http://www.R-project.org
+% Copyright 2002-13 Friedrich Leisch and the R Core Team
+% Distributed under GPL 2 or later
+
\documentclass[a4paper]{article}
%\VignetteIndexEntry{Sweave User Manual}
@@ -688,7 +693,7 @@ R CMD Sweave file.Rnw
fail.
\subsection{Why do R lattice graphics not work?}
-
+
In recent versions of Sweave they do if they would when run at the
command line: some calls (e.g.{} those inside loops) need to be
explicitly \code{print()}-ed.
diff --git a/win32/deps/library/utils/doc/Sweave.pdf b/win32/deps/library/utils/doc/Sweave.pdf
index 01e307a..9f137a5 100644
Binary files a/win32/deps/library/utils/doc/Sweave.pdf and b/win32/deps/library/utils/doc/Sweave.pdf differ
diff --git a/win32/deps/library/utils/doc/index.html b/win32/deps/library/utils/doc/index.html
index b23b063..927f660 100644
--- a/win32/deps/library/utils/doc/index.html
+++ b/win32/deps/library/utils/doc/index.html
@@ -1,9 +1,9 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html><head><title>R: Vignettes</title>
+<html><head><title>R: Vignettes and other documentation</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="/doc/html/R.css">
</head><body>
-<h1> Vignettes
+<h1> Vignettes and other documentation
<img class="toplogo" src="/doc/html/logo.jpg" alt="[R logo]">
</h1>
<hr>
diff --git a/win32/deps/library/utils/help/AnIndex b/win32/deps/library/utils/help/AnIndex
index 13cd0ef..25ade5c 100644
--- a/win32/deps/library/utils/help/AnIndex
+++ b/win32/deps/library/utils/help/AnIndex
@@ -22,7 +22,9 @@ as.relistable relist
as.roman roman
aspell aspell
aspell-utils aspell-utils
+aspell_package_C_files aspell-utils
aspell_package_Rd_files aspell-utils
+aspell_package_R_files aspell-utils
aspell_package_vignettes aspell-utils
aspell_write_personal_dictionary_file aspell-utils
assignInMyNamespace getFromNamespace
@@ -45,6 +47,8 @@ chooseBioCmirror chooseBioCmirror
chooseCRANmirror chooseCRANmirror
CITATION citation
citation citation
+cite cite
+citeNatbib cite
citEntry citEntry
citFooter citEntry
citHeader citEntry
@@ -57,7 +61,7 @@ compareVersion compareVersion
completion rcompgen
contrib.url contrib.url
count.fields count.fields
-CRAN.packages utils-deprecated
+CRAN.packages utils-defunct
create.post create.post
data data
data.entry dataentry
@@ -96,6 +100,8 @@ getClipboardFormats clipboard
getCRANmirrors chooseCRANmirror
getFromNamespace getFromNamespace
getIdentification setWindowTitle
+getParseData getParseData
+getParseText getParseData
getS3method getS3method
getSrcDirectory sourceutils
getSrcFilename sourceutils
@@ -148,6 +154,7 @@ old.packages update.packages
package.contents utils-defunct
package.skeleton package.skeleton
packageDescription packageDescription
+packageName packageName
packageStatus packageStatus
packageVersion packageDescription
page page
@@ -170,6 +177,7 @@ print.person person
print.sessionInfo sessionInfo
print.socket make.socket
print.vignette vignette
+process.events process.events
prompt prompt
prompt.data.frame prompt
prompt.default prompt
@@ -204,6 +212,7 @@ relist.matrix relist
REMOVE REMOVE
remove.packages remove.packages
removeSource removeSource
+RHOME RHOME
Rprof Rprof
Rprofmem Rprofmem
Rscript Rscript
diff --git a/win32/deps/library/utils/help/aliases.rds b/win32/deps/library/utils/help/aliases.rds
index 96d4c85..b14b983 100644
Binary files a/win32/deps/library/utils/help/aliases.rds and b/win32/deps/library/utils/help/aliases.rds
differ
diff --git a/win32/deps/library/utils/help/paths.rds b/win32/deps/library/utils/help/paths.rds
index 9b15d15..8e06e20 100644
Binary files a/win32/deps/library/utils/help/paths.rds and b/win32/deps/library/utils/help/paths.rds differ
diff --git a/win32/deps/library/utils/help/utils.rdb b/win32/deps/library/utils/help/utils.rdb
index e231592..8d6f2db 100644
Binary files a/win32/deps/library/utils/help/utils.rdb and b/win32/deps/library/utils/help/utils.rdb differ
diff --git a/win32/deps/library/utils/help/utils.rdx b/win32/deps/library/utils/help/utils.rdx
index 317e835..538d850 100644
Binary files a/win32/deps/library/utils/help/utils.rdx and b/win32/deps/library/utils/help/utils.rdx differ
diff --git a/win32/deps/library/utils/html/00Index.html b/win32/deps/library/utils/html/00Index.html
index 904185e..fa94e91 100644
--- a/win32/deps/library/utils/html/00Index.html
+++ b/win32/deps/library/utils/html/00Index.html
@@ -10,10 +10,10 @@
<div align="center">
<a href="../../../doc/html/packages.html"><img src="../../../doc/html/left.jpg" alt="[Up]" width="30"
height="30" border="0"></a>
<a href="../../../doc/html/index.html"><img src="../../../doc/html/up.jpg" alt="[Top]" width="30"
height="30" border="0"></a>
-</div><h2>Documentation for package ‘utils’ version 2.15.2</h2>
+</div><h2>Documentation for package ‘utils’ version 3.0.2</h2>
<ul><li><a href="../DESCRIPTION">DESCRIPTION file</a>.</li>
-<li><a href="../doc/index.html">Overview of user guides and package vignettes</a>; browse <a
href="../doc">directory</a>.</li>
+<li><a href="../doc/index.html">User guides, package vignettes and other documentation.</a></li>
</ul>
<h2>Help Pages</h2>
@@ -81,8 +81,12 @@
<td>Spell Check Interface</td></tr>
<tr><td width="25%"><a href="aspell-utils.html">aspell-utils</a></td>
<td>Spell Check Utilities</td></tr>
+<tr><td width="25%"><a href="aspell-utils.html">aspell_package_C_files</a></td>
+<td>Spell Check Utilities</td></tr>
<tr><td width="25%"><a href="aspell-utils.html">aspell_package_Rd_files</a></td>
<td>Spell Check Utilities</td></tr>
+<tr><td width="25%"><a href="aspell-utils.html">aspell_package_R_files</a></td>
+<td>Spell Check Utilities</td></tr>
<tr><td width="25%"><a href="aspell-utils.html">aspell_package_vignettes</a></td>
<td>Spell Check Utilities</td></tr>
<tr><td width="25%"><a href="aspell-utils.html">aspell_write_personal_dictionary_file</a></td>
@@ -137,6 +141,10 @@
<td>Citing R and R Packages in Publications</td></tr>
<tr><td width="25%"><a href="citation.html">citation</a></td>
<td>Citing R and R Packages in Publications</td></tr>
+<tr><td width="25%"><a href="cite.html">cite</a></td>
+<td>Cite a bibliography entry.</td></tr>
+<tr><td width="25%"><a href="cite.html">citeNatbib</a></td>
+<td>Cite a bibliography entry.</td></tr>
<tr><td width="25%"><a href="citEntry.html">citEntry</a></td>
<td>Bibliography Entries (Older Interface)</td></tr>
<tr><td width="25%"><a href="citEntry.html">citFooter</a></td>
@@ -161,8 +169,6 @@
<td>Find Appropriate Paths in CRAN-like Repositories</td></tr>
<tr><td width="25%"><a href="count.fields.html">count.fields</a></td>
<td>Count the Number of Fields per Line</td></tr>
-<tr><td width="25%"><a href="utils-deprecated.html">CRAN.packages</a></td>
-<td>Deprecated Functions in Package 'utils'</td></tr>
<tr><td width="25%"><a href="create.post.html">create.post</a></td>
<td>Ancillary Function for Preparing Emails and Postings</td></tr>
</table>
@@ -200,7 +206,7 @@
<tr><td width="25%"><a href="edit.data.frame.html">edit.data.frame</a></td>
<td>Edit Data Frames and Matrices</td></tr>
<tr><td width="25%"><a href="vignette.html">edit.vignette</a></td>
-<td>View or List Vignettes</td></tr>
+<td>View or List Package Vignettes</td></tr>
<tr><td width="25%"><a href="edit.html">emacs</a></td>
<td>Invoke a Text Editor</td></tr>
<tr><td width="25%"><a href="example.html">example</a></td>
@@ -249,6 +255,10 @@
<td>Utility functions for Developing Namespaces</td></tr>
<tr><td width="25%"><a href="setWindowTitle.html">getIdentification</a></td>
<td>Set or get the Window Title, or Set the Statusbar</td></tr>
+<tr><td width="25%"><a href="getParseData.html">getParseData</a></td>
+<td>Get detailed parse information from object.</td></tr>
+<tr><td width="25%"><a href="getParseData.html">getParseText</a></td>
+<td>Get detailed parse information from object.</td></tr>
<tr><td width="25%"><a href="getS3method.html">getS3method</a></td>
<td>Get An S3 Method</td></tr>
<tr><td width="25%"><a href="sourceutils.html">getSrcDirectory</a></td>
@@ -370,6 +380,8 @@
<td>Create a Skeleton for a New Source Package</td></tr>
<tr><td width="25%"><a href="packageDescription.html">packageDescription</a></td>
<td>Package Description</td></tr>
+<tr><td width="25%"><a href="packageName.html">packageName</a></td>
+<td>Find package associated with an environment.</td></tr>
<tr><td width="25%"><a href="packageStatus.html">packageStatus</a></td>
<td>Package Management Tools</td></tr>
<tr><td width="25%"><a href="packageDescription.html">packageVersion</a></td>
@@ -413,7 +425,9 @@
<tr><td width="25%"><a href="make.socket.html">print.socket</a></td>
<td>Create a Socket Connection</td></tr>
<tr><td width="25%"><a href="vignette.html">print.vignette</a></td>
-<td>View or List Vignettes</td></tr>
+<td>View or List Package Vignettes</td></tr>
+<tr><td width="25%"><a href="process.events.html">process.events</a></td>
+<td>Trigger event handling</td></tr>
<tr><td width="25%"><a href="prompt.html">prompt</a></td>
<td>Produce Prototype of an R Documentation File</td></tr>
<tr><td width="25%"><a href="promptData.html">promptData</a></td>
@@ -466,6 +480,8 @@
<td>Remove Installed Packages</td></tr>
<tr><td width="25%"><a href="removeSource.html">removeSource</a></td>
<td>Remove Stored Source from a Function.</td></tr>
+<tr><td width="25%"><a href="RHOME.html">RHOME</a></td>
+<td>R Home Directory</td></tr>
<tr><td width="25%"><a href="Rprof.html">Rprof</a></td>
<td>Enable Profiling of R's Execution</td></tr>
<tr><td width="25%"><a href="Rprofmem.html">Rprofmem</a></td>
@@ -597,9 +613,9 @@
<tr><td width="25%"><a href="View.html">View</a></td>
<td>Invoke a Data Viewer</td></tr>
<tr><td width="25%"><a href="vignette.html">vignette</a></td>
-<td>View or List Vignettes</td></tr>
+<td>View or List Package Vignettes</td></tr>
<tr><td width="25%"><a href="vignette.html">vignettes</a></td>
-<td>View or List Vignettes</td></tr>
+<td>View or List Package Vignettes</td></tr>
</table>
<h2><a name="W">-- W --</a></h2>
diff --git a/win32/deps/library/utils/tests/Sweave-tst.R b/win32/deps/library/utils/tests/Sweave-tst.R
index a943c7f..e22d434 100644
--- a/win32/deps/library/utils/tests/Sweave-tst.R
+++ b/win32/deps/library/utils/tests/Sweave-tst.R
@@ -18,8 +18,8 @@
.proctime00 <- proc.time()
library(utils)
-options(digits=5) # to avoid trivial printed differences
-options(show.signif.stars=FALSE) # avoid fancy quotes in o/p
+options(digits = 5) # to avoid trivial printed differences
+options(show.signif.stars = FALSE) # avoid fancy quotes in o/p
SweaveTeX <- function(file, ...) {
if(!file.exists(file))
@@ -31,7 +31,7 @@ SweaveTeX <- function(file, ...) {
readLines(texF)
}
-p0 <- function(...) paste(..., sep="")
+p0 <- paste0
latexEnv <- function(lines, name) {
stopifnot(is.character(lines), is.character(name),
length(lines) >= 2, length(name) == 1)
diff --git a/win32/deps/library/utils/tests/completion.R b/win32/deps/library/utils/tests/completion.R
index d608361..77bc868 100644
--- a/win32/deps/library/utils/tests/completion.R
+++ b/win32/deps/library/utils/tests/completion.R
@@ -24,6 +24,14 @@ testLine("update(")
testLine("version$m")
testLine("nchar(version[")
+
+
+testLine("method?coe")
+testLine("?coe")
+testLine("?\"coerce,AN")
+testLine("method?\"coerce,AN")
+
+
## testLine("")
## testLine("")
## testLine("")
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]