saraswatmks / superml

Build machine learning models in R like using python's scikit-learn library
https://saraswatmks.github.io/superml/
GNU General Public License v3.0
32 stars 8 forks source link

Analyze the package with RcppDeepState #51

Closed FabrizioSandri closed 2 years ago

FabrizioSandri commented 2 years ago

This PR adds a new Github Action which runs RcppDeepState+valgrind on your package. That means the C++ functions of your package will be tested with random inputs, and there will be a comment like this one for each new PR (which reports if valgrind found any issues with random inputs).

RcppDeepState analysis result

This package contains problems, according to RcppDeepState. The report was generated by RcppDeepState-action in this repository's fork and is accessible here.

FabrizioSandri commented 2 years ago

RcppDeepState Report

function name message file line address trace R code
normalise2d 68 bytes in 1 blocks are possibly lost in loss record 20 of 1,294 utils.cpp:245 No Address Trace found
Test code
testlist <- list(axis = -376396917L, mat = structure(c(2.34682719972496e-284, 2.27469314823053e+267, 1.55976203179705e+92, 3.11904879866766e+38, 3.05346729769012e-29, 6.73768735996796e-45, 1.35818273053389e+119, 1.3656742835488e-247, 5.07667877632948e+22, 1.5956400702865e+177, 9.78538959520559e+296, 4.65343388395119e-21, 8.59451638459472e-124, 1.46617804525109e-106, 1.05092197089873e-135, 1.10886289424335e-226, 9.63076158896563e+184, 7.51100838858301e-08, 3.73685108356975e-142, 6.71116801025925e+211, 1.33952181238408e-06), .Dim = c(7L, 3L)), pnorm = -602028946L)
result <- do.call(superml:::normalise2d, testlist)
sort_vector_with_names 168 bytes in 1 blocks are possibly lost in loss record 35 of 1,292 utils.cpp:312 No Address Trace found
Test code
testlist <- list(x = c(-7.94820854007757e+214, -1.74417644863405e+93, -2.05154272016078e-188, 3.85869007648208e+217, 1.13407853610823e+234, -1.97787633682182e-263, -8.73722368393293e+52, -1.27868035912448e-58, -3.00939171879833e-52, 1.05195692375138e-160, -8.27053234574696e+92, 3.5942213641042e+277, -5.78752427816119e+82, -2.96922577815895e-95, -510323693490055616, -3.2218454360578e-255, 994.233762646939, -2.03875505359078e+208, -12748029.1782587, 4.29493980526926e+33, 1.36647083605345e+183, -1.20356755438343e-109, -2.79208958333226e-218, 1.99118714348784e+242, -1.98802765706915e+270, 1.03680487419699e+233, 3.99438556903841e-214, 4.93029578467622e-114, 1.72165180601188e-109, 1.77407613124503e-138, 4.49736382668234e+116, 1.20697677565636e-284, -2.72639793467614e-279, -1.346761782908e+34, 1.11059744304679e+226, 7.34480317616375e-108, 5.31716103444875e+49, -6.3444340809821e+264, -2.42342454081414e+269, 1.2027550795593e+215, -1.0006103971929e+263, 1.03501837706848e+46, -1.65660820930701e+147, -2.93705974028049e+166, 1.12380483982303e-99, 901.810674082353, -2.58936375573036e-244, 9.21892468389801e-204, -2.65769915165968e+236, 1.64473199247389e-245, -8.70190608140212e-172, -1.33723512816935e+237, -5.68104879860704e+239, -2.61889569556149e-99, 2.20019131813633e+263, -1.98196973171084e-197, 2.53147583059344e-44, 2.56302234872407e+194, -99145574925549936, 5.64678116976393e-207, -3.29203436427922e-295, -5.65920055154888e-195, 1.38729465763806e-126, -1.56572374145416e-174, 5.26789768528875e+160, 3.63305218590104e-128))
result <- do.call(superml:::sort_vector_with_names, testlist)

Analyzed functions summary

function name tested inputs inputs with issues
normalise1d 3 0
normalise2d 3 3
sort_vector_with_names 3 3
sorted 3 0

Report details