blindscrambler 0.1.5__tar.gz → 0.1.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (391) hide show
  1. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/PKG-INFO +4 -1
  2. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/pyproject.toml +4 -1
  3. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/src/blindscrambler/__init__.py +1 -0
  4. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/src/blindscrambler/distributions/cvdistributions.py +3 -9
  5. blindscrambler-0.1.7/src/blindscrambler/model/__init__.py +2 -0
  6. blindscrambler-0.1.7/src/blindscrambler/model/regression.py +216 -0
  7. blindscrambler-0.1.7/target/release/.fingerprint/autocfg-ec849e49b9b0ef7b/lib-autocfg +1 -0
  8. blindscrambler-0.1.7/target/release/.fingerprint/autocfg-ec849e49b9b0ef7b/lib-autocfg.json +1 -0
  9. blindscrambler-0.1.7/target/release/.fingerprint/blindscrambler-515225e0ba74eaea/lib-_core +1 -0
  10. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/blindscrambler-515225e0ba74eaea/lib-_core.json +1 -1
  11. blindscrambler-0.1.7/target/release/.fingerprint/cfg-if-e2692dabafd67c3a/lib-cfg_if +1 -0
  12. blindscrambler-0.1.7/target/release/.fingerprint/cfg-if-e2692dabafd67c3a/lib-cfg_if.json +1 -0
  13. blindscrambler-0.1.7/target/release/.fingerprint/heck-db8430659d799391/lib-heck +1 -0
  14. blindscrambler-0.1.7/target/release/.fingerprint/heck-db8430659d799391/lib-heck.json +1 -0
  15. blindscrambler-0.1.7/target/release/.fingerprint/indoc-5c3ccbba070a5c21/lib-indoc +1 -0
  16. blindscrambler-0.1.7/target/release/.fingerprint/indoc-5c3ccbba070a5c21/lib-indoc.json +1 -0
  17. blindscrambler-0.1.7/target/release/.fingerprint/libc-089751abe6465d96/run-build-script-build-script-build +1 -0
  18. blindscrambler-0.1.7/target/release/.fingerprint/libc-089751abe6465d96/run-build-script-build-script-build.json +1 -0
  19. blindscrambler-0.1.7/target/release/.fingerprint/libc-1048a0e1f7b7acb4/build-script-build-script-build +1 -0
  20. blindscrambler-0.1.7/target/release/.fingerprint/libc-1048a0e1f7b7acb4/build-script-build-script-build.json +1 -0
  21. blindscrambler-0.1.7/target/release/.fingerprint/libc-483d551a2b04c9ed/lib-libc +1 -0
  22. blindscrambler-0.1.7/target/release/.fingerprint/libc-483d551a2b04c9ed/lib-libc.json +1 -0
  23. blindscrambler-0.1.7/target/release/.fingerprint/memoffset-28fab8803985747e/build-script-build-script-build +1 -0
  24. blindscrambler-0.1.7/target/release/.fingerprint/memoffset-28fab8803985747e/build-script-build-script-build.json +1 -0
  25. blindscrambler-0.1.7/target/release/.fingerprint/memoffset-3de0f0a04958d438/lib-memoffset +1 -0
  26. blindscrambler-0.1.7/target/release/.fingerprint/memoffset-3de0f0a04958d438/lib-memoffset.json +1 -0
  27. blindscrambler-0.1.7/target/release/.fingerprint/memoffset-b512f260d0e5ed3a/run-build-script-build-script-build +1 -0
  28. blindscrambler-0.1.7/target/release/.fingerprint/memoffset-b512f260d0e5ed3a/run-build-script-build-script-build.json +1 -0
  29. blindscrambler-0.1.7/target/release/.fingerprint/once_cell-40215868d9ef2577/lib-once_cell +1 -0
  30. blindscrambler-0.1.7/target/release/.fingerprint/once_cell-40215868d9ef2577/lib-once_cell.json +1 -0
  31. blindscrambler-0.1.7/target/release/.fingerprint/once_cell-63c56b003983b4e1/lib-once_cell +1 -0
  32. blindscrambler-0.1.7/target/release/.fingerprint/once_cell-63c56b003983b4e1/lib-once_cell.json +1 -0
  33. blindscrambler-0.1.7/target/release/.fingerprint/proc-macro2-1c915e463d0f02c7/build-script-build-script-build +1 -0
  34. blindscrambler-0.1.7/target/release/.fingerprint/proc-macro2-1c915e463d0f02c7/build-script-build-script-build.json +1 -0
  35. blindscrambler-0.1.7/target/release/.fingerprint/proc-macro2-96f127e3ddb93fe4/run-build-script-build-script-build +1 -0
  36. blindscrambler-0.1.7/target/release/.fingerprint/proc-macro2-96f127e3ddb93fe4/run-build-script-build-script-build.json +1 -0
  37. blindscrambler-0.1.7/target/release/.fingerprint/proc-macro2-a237c3a746f321f4/lib-proc_macro2 +1 -0
  38. blindscrambler-0.1.7/target/release/.fingerprint/proc-macro2-a237c3a746f321f4/lib-proc_macro2.json +1 -0
  39. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-21edf82d33511c71/dep-build-script-build-script-build +0 -0
  40. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-b5406c20eea00644/build-script-build-script-build +1 -0
  41. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-b5406c20eea00644/build-script-build-script-build.json +1 -0
  42. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-b5406c20eea00644/dep-build-script-build-script-build +0 -0
  43. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-build-config-19e45e2b12999ce4/build-script-build-script-build +1 -0
  44. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-build-config-19e45e2b12999ce4/build-script-build-script-build.json +1 -0
  45. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-build-config-19e45e2b12999ce4/dep-build-script-build-script-build +0 -0
  46. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-build-config-19e45e2b12999ce4/invoked.timestamp +1 -0
  47. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-build-config-485f7efd6b2e6f06/invoked.timestamp +1 -0
  48. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-build-config-4d0fbe2a7f553b16/dep-build-script-build-script-build +0 -0
  49. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-build-config-4d0fbe2a7f553b16/invoked.timestamp +1 -0
  50. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-build-config-a8bde4920a4bfe99/dep-lib-pyo3_build_config +0 -0
  51. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-build-config-a8bde4920a4bfe99/invoked.timestamp +1 -0
  52. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-build-config-a8bde4920a4bfe99/lib-pyo3_build_config +1 -0
  53. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-build-config-a8bde4920a4bfe99/lib-pyo3_build_config.json +1 -0
  54. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-build-config-b7fa219f603501ff/run-build-script-build-script-build +1 -0
  55. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-build-config-b7fa219f603501ff/run-build-script-build-script-build.json +1 -0
  56. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-eca712ee3cac982c/run-build-script-build-script-build +1 -0
  57. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-eca712ee3cac982c/run-build-script-build-script-build.json +1 -0
  58. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-fe834dd71f882076/dep-lib-pyo3 +0 -0
  59. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-fe834dd71f882076/invoked.timestamp +1 -0
  60. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-fe834dd71f882076/lib-pyo3 +1 -0
  61. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-fe834dd71f882076/lib-pyo3.json +1 -0
  62. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-ffi-3b410603869916e1/dep-lib-pyo3_ffi +0 -0
  63. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-ffi-3b410603869916e1/invoked.timestamp +1 -0
  64. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-ffi-3b410603869916e1/lib-pyo3_ffi +1 -0
  65. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-ffi-3b410603869916e1/lib-pyo3_ffi.json +1 -0
  66. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-ffi-4b75fa99b2fd670d/build-script-build-script-build +1 -0
  67. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-ffi-4b75fa99b2fd670d/build-script-build-script-build.json +1 -0
  68. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-ffi-4b75fa99b2fd670d/dep-build-script-build-script-build +0 -0
  69. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-ffi-4b75fa99b2fd670d/invoked.timestamp +1 -0
  70. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-ffi-6d841e46994ed231/run-build-script-build-script-build +1 -0
  71. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-ffi-6d841e46994ed231/run-build-script-build-script-build.json +1 -0
  72. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-ffi-797a29b5bf1ec26d/dep-build-script-build-script-build +0 -0
  73. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-ffi-797a29b5bf1ec26d/invoked.timestamp +1 -0
  74. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-ffi-f31b261da8032367/dep-lib-pyo3_ffi +0 -0
  75. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-ffi-f31b261da8032367/invoked.timestamp +1 -0
  76. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-macros-039731653063c94a/dep-lib-pyo3_macros +0 -0
  77. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-macros-039731653063c94a/invoked.timestamp +1 -0
  78. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-macros-039731653063c94a/lib-pyo3_macros +1 -0
  79. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-macros-039731653063c94a/lib-pyo3_macros.json +1 -0
  80. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-macros-ac6298b28244f8de/dep-lib-pyo3_macros +0 -0
  81. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-macros-ac6298b28244f8de/invoked.timestamp +1 -0
  82. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-macros-backend-09bb79477f3dc5c2/run-build-script-build-script-build +1 -0
  83. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-macros-backend-09bb79477f3dc5c2/run-build-script-build-script-build.json +1 -0
  84. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-macros-backend-1419f766b92c0009/dep-lib-pyo3_macros_backend +0 -0
  85. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-macros-backend-1419f766b92c0009/invoked.timestamp +1 -0
  86. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-macros-backend-a8e6c42699c75a62/build-script-build-script-build +1 -0
  87. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-macros-backend-a8e6c42699c75a62/build-script-build-script-build.json +1 -0
  88. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-macros-backend-a8e6c42699c75a62/dep-build-script-build-script-build +0 -0
  89. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-macros-backend-a8e6c42699c75a62/invoked.timestamp +1 -0
  90. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-macros-backend-e82f060013250e12/dep-build-script-build-script-build +0 -0
  91. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-macros-backend-e82f060013250e12/invoked.timestamp +1 -0
  92. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-macros-backend-e9813c72593a8600/dep-lib-pyo3_macros_backend +0 -0
  93. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-macros-backend-e9813c72593a8600/invoked.timestamp +1 -0
  94. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-macros-backend-e9813c72593a8600/lib-pyo3_macros_backend +1 -0
  95. blindscrambler-0.1.7/target/release/.fingerprint/pyo3-macros-backend-e9813c72593a8600/lib-pyo3_macros_backend.json +1 -0
  96. blindscrambler-0.1.7/target/release/.fingerprint/quote-a46488ac4a77f9e2/dep-lib-quote +0 -0
  97. blindscrambler-0.1.7/target/release/.fingerprint/quote-a46488ac4a77f9e2/invoked.timestamp +1 -0
  98. blindscrambler-0.1.7/target/release/.fingerprint/quote-a46488ac4a77f9e2/lib-quote +1 -0
  99. blindscrambler-0.1.7/target/release/.fingerprint/quote-a46488ac4a77f9e2/lib-quote.json +1 -0
  100. blindscrambler-0.1.7/target/release/.fingerprint/quote-c1920bf86f8fba6d/dep-lib-quote +0 -0
  101. blindscrambler-0.1.7/target/release/.fingerprint/quote-c1920bf86f8fba6d/invoked.timestamp +1 -0
  102. blindscrambler-0.1.7/target/release/.fingerprint/syn-2d6742f1c77f2874/dep-lib-syn +0 -0
  103. blindscrambler-0.1.7/target/release/.fingerprint/syn-2d6742f1c77f2874/invoked.timestamp +1 -0
  104. blindscrambler-0.1.7/target/release/.fingerprint/syn-2d6742f1c77f2874/lib-syn +1 -0
  105. blindscrambler-0.1.7/target/release/.fingerprint/syn-2d6742f1c77f2874/lib-syn.json +1 -0
  106. blindscrambler-0.1.7/target/release/.fingerprint/syn-d17ae06f6c5404ec/dep-lib-syn +0 -0
  107. blindscrambler-0.1.7/target/release/.fingerprint/syn-d17ae06f6c5404ec/invoked.timestamp +1 -0
  108. blindscrambler-0.1.7/target/release/.fingerprint/target-lexicon-1461f2bb5fb7494d/dep-lib-target_lexicon +0 -0
  109. blindscrambler-0.1.7/target/release/.fingerprint/target-lexicon-1461f2bb5fb7494d/invoked.timestamp +1 -0
  110. blindscrambler-0.1.7/target/release/.fingerprint/target-lexicon-1461f2bb5fb7494d/lib-target_lexicon +1 -0
  111. blindscrambler-0.1.7/target/release/.fingerprint/target-lexicon-1461f2bb5fb7494d/lib-target_lexicon.json +1 -0
  112. blindscrambler-0.1.7/target/release/.fingerprint/target-lexicon-705997156e45bf9a/invoked.timestamp +1 -0
  113. blindscrambler-0.1.7/target/release/.fingerprint/target-lexicon-d98482d69aa02bc4/run-build-script-build-script-build +1 -0
  114. blindscrambler-0.1.7/target/release/.fingerprint/target-lexicon-d98482d69aa02bc4/run-build-script-build-script-build.json +1 -0
  115. blindscrambler-0.1.7/target/release/.fingerprint/target-lexicon-de6a61689af9d42b/dep-build-script-build-script-build +0 -0
  116. blindscrambler-0.1.7/target/release/.fingerprint/target-lexicon-de6a61689af9d42b/invoked.timestamp +1 -0
  117. blindscrambler-0.1.7/target/release/.fingerprint/target-lexicon-f57b274edbb686fa/build-script-build-script-build +1 -0
  118. blindscrambler-0.1.7/target/release/.fingerprint/target-lexicon-f57b274edbb686fa/build-script-build-script-build.json +1 -0
  119. blindscrambler-0.1.7/target/release/.fingerprint/target-lexicon-f57b274edbb686fa/dep-build-script-build-script-build +0 -0
  120. blindscrambler-0.1.7/target/release/.fingerprint/target-lexicon-f57b274edbb686fa/invoked.timestamp +1 -0
  121. blindscrambler-0.1.7/target/release/.fingerprint/unicode-ident-3b7c11ea57a1ce1d/dep-lib-unicode_ident +0 -0
  122. blindscrambler-0.1.7/target/release/.fingerprint/unicode-ident-3b7c11ea57a1ce1d/invoked.timestamp +1 -0
  123. blindscrambler-0.1.7/target/release/.fingerprint/unicode-ident-3b7c11ea57a1ce1d/lib-unicode_ident +1 -0
  124. blindscrambler-0.1.7/target/release/.fingerprint/unicode-ident-3b7c11ea57a1ce1d/lib-unicode_ident.json +1 -0
  125. blindscrambler-0.1.7/target/release/.fingerprint/unicode-ident-9fc3822a50b81eff/dep-lib-unicode_ident +0 -0
  126. blindscrambler-0.1.7/target/release/.fingerprint/unicode-ident-9fc3822a50b81eff/invoked.timestamp +1 -0
  127. blindscrambler-0.1.7/target/release/.fingerprint/unindent-93f5e45976adf1db/dep-lib-unindent +0 -0
  128. blindscrambler-0.1.7/target/release/.fingerprint/unindent-93f5e45976adf1db/invoked.timestamp +1 -0
  129. blindscrambler-0.1.7/target/release/.fingerprint/unindent-b2dda1915d242574/dep-lib-unindent +0 -0
  130. blindscrambler-0.1.7/target/release/.fingerprint/unindent-b2dda1915d242574/invoked.timestamp +1 -0
  131. blindscrambler-0.1.7/target/release/.fingerprint/unindent-b2dda1915d242574/lib-unindent +1 -0
  132. blindscrambler-0.1.7/target/release/.fingerprint/unindent-b2dda1915d242574/lib-unindent.json +1 -0
  133. blindscrambler-0.1.7/target/release/deps/autocfg-ec849e49b9b0ef7b.d +10 -0
  134. blindscrambler-0.1.7/target/release/deps/cfg_if-e2692dabafd67c3a.d +7 -0
  135. blindscrambler-0.1.7/target/release/deps/heck-db8430659d799391.d +15 -0
  136. blindscrambler-0.1.7/target/release/deps/indoc-5c3ccbba070a5c21.d +8 -0
  137. blindscrambler-0.1.7/target/release/deps/libautocfg-ec849e49b9b0ef7b.rlib +0 -0
  138. blindscrambler-0.1.7/target/release/deps/libautocfg-ec849e49b9b0ef7b.rmeta +0 -0
  139. blindscrambler-0.1.7/target/release/deps/libc-483d551a2b04c9ed.d +15 -0
  140. blindscrambler-0.1.7/target/release/deps/libcfg_if-e2692dabafd67c3a.rlib +0 -0
  141. blindscrambler-0.1.7/target/release/deps/libcfg_if-e2692dabafd67c3a.rmeta +0 -0
  142. blindscrambler-0.1.7/target/release/deps/libheck-db8430659d799391.rlib +0 -0
  143. blindscrambler-0.1.7/target/release/deps/libheck-db8430659d799391.rmeta +0 -0
  144. blindscrambler-0.1.7/target/release/deps/libindoc-5c3ccbba070a5c21.dylib +0 -0
  145. blindscrambler-0.1.7/target/release/deps/liblibc-483d551a2b04c9ed.rlib +0 -0
  146. blindscrambler-0.1.7/target/release/deps/liblibc-483d551a2b04c9ed.rmeta +0 -0
  147. blindscrambler-0.1.7/target/release/deps/libmemoffset-3de0f0a04958d438.rlib +0 -0
  148. blindscrambler-0.1.7/target/release/deps/libmemoffset-3de0f0a04958d438.rmeta +0 -0
  149. blindscrambler-0.1.7/target/release/deps/libonce_cell-40215868d9ef2577.rlib +0 -0
  150. blindscrambler-0.1.7/target/release/deps/libonce_cell-40215868d9ef2577.rmeta +0 -0
  151. blindscrambler-0.1.7/target/release/deps/libonce_cell-63c56b003983b4e1.rlib +0 -0
  152. blindscrambler-0.1.7/target/release/deps/libonce_cell-63c56b003983b4e1.rmeta +0 -0
  153. blindscrambler-0.1.7/target/release/deps/libproc_macro2-a237c3a746f321f4.rlib +0 -0
  154. blindscrambler-0.1.7/target/release/deps/libproc_macro2-a237c3a746f321f4.rmeta +0 -0
  155. blindscrambler-0.1.7/target/release/deps/libpyo3-fe834dd71f882076.rlib +0 -0
  156. blindscrambler-0.1.7/target/release/deps/libpyo3-fe834dd71f882076.rmeta +0 -0
  157. blindscrambler-0.1.7/target/release/deps/libpyo3_build_config-a8bde4920a4bfe99.rlib +0 -0
  158. blindscrambler-0.1.7/target/release/deps/libpyo3_build_config-a8bde4920a4bfe99.rmeta +0 -0
  159. blindscrambler-0.1.7/target/release/deps/libpyo3_ffi-3b410603869916e1.rlib +0 -0
  160. blindscrambler-0.1.7/target/release/deps/libpyo3_ffi-3b410603869916e1.rmeta +0 -0
  161. blindscrambler-0.1.7/target/release/deps/libpyo3_macros-039731653063c94a.dylib +0 -0
  162. blindscrambler-0.1.7/target/release/deps/libpyo3_macros_backend-e9813c72593a8600.rlib +0 -0
  163. blindscrambler-0.1.7/target/release/deps/libpyo3_macros_backend-e9813c72593a8600.rmeta +0 -0
  164. blindscrambler-0.1.7/target/release/deps/libquote-a46488ac4a77f9e2.rlib +0 -0
  165. blindscrambler-0.1.7/target/release/deps/libquote-a46488ac4a77f9e2.rmeta +0 -0
  166. blindscrambler-0.1.7/target/release/deps/libsyn-2d6742f1c77f2874.rlib +0 -0
  167. blindscrambler-0.1.7/target/release/deps/libsyn-2d6742f1c77f2874.rmeta +0 -0
  168. blindscrambler-0.1.7/target/release/deps/libtarget_lexicon-1461f2bb5fb7494d.rlib +0 -0
  169. blindscrambler-0.1.7/target/release/deps/libtarget_lexicon-1461f2bb5fb7494d.rmeta +0 -0
  170. blindscrambler-0.1.7/target/release/deps/libunicode_ident-3b7c11ea57a1ce1d.rlib +0 -0
  171. blindscrambler-0.1.7/target/release/deps/libunicode_ident-3b7c11ea57a1ce1d.rmeta +0 -0
  172. blindscrambler-0.1.7/target/release/deps/libunindent-b2dda1915d242574.rlib +0 -0
  173. blindscrambler-0.1.7/target/release/deps/libunindent-b2dda1915d242574.rmeta +0 -0
  174. blindscrambler-0.1.7/target/release/deps/memoffset-3de0f0a04958d438.d +10 -0
  175. blindscrambler-0.1.7/target/release/deps/once_cell-40215868d9ef2577.d +9 -0
  176. blindscrambler-0.1.7/target/release/deps/once_cell-63c56b003983b4e1.d +9 -0
  177. blindscrambler-0.1.7/target/release/deps/proc_macro2-a237c3a746f321f4.d +17 -0
  178. blindscrambler-0.1.7/target/release/deps/pyo3-fe834dd71f882076.d +118 -0
  179. blindscrambler-0.1.7/target/release/deps/pyo3_build_config-a8bde4920a4bfe99.d +14 -0
  180. blindscrambler-0.1.7/target/release/deps/pyo3_ffi-3b410603869916e1.d +63 -0
  181. blindscrambler-0.1.7/target/release/deps/pyo3_macros-039731653063c94a.d +7 -0
  182. blindscrambler-0.1.7/target/release/deps/pyo3_macros_backend-e9813c72593a8600.d +24 -0
  183. blindscrambler-0.1.7/target/release/deps/quote-a46488ac4a77f9e2.d +13 -0
  184. blindscrambler-0.1.7/target/release/deps/syn-2d6742f1c77f2874.d +57 -0
  185. blindscrambler-0.1.7/target/release/deps/target_lexicon-1461f2bb5fb7494d.d +15 -0
  186. blindscrambler-0.1.7/target/release/deps/unicode_ident-3b7c11ea57a1ce1d.d +8 -0
  187. blindscrambler-0.1.7/target/release/deps/unindent-b2dda1915d242574.d +8 -0
  188. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/uv.lock +146 -1
  189. blindscrambler-0.1.5/target/release/.fingerprint/blindscrambler-515225e0ba74eaea/lib-_core +0 -1
  190. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/.DS_Store +0 -0
  191. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/.gitignore +0 -0
  192. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/.python-version +0 -0
  193. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/Cargo.lock +0 -0
  194. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/Cargo.toml +0 -0
  195. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/README.md +0 -0
  196. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/src/.DS_Store +0 -0
  197. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/src/blindscrambler/_core.pyi +0 -0
  198. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/src/blindscrambler/differential/__init__.py +0 -0
  199. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/src/blindscrambler/differential/discrete.py +0 -0
  200. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/src/blindscrambler/distributions/__init__.py +0 -0
  201. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/src/blindscrambler/matrix/__init__.py +0 -0
  202. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/src/blindscrambler/matrix/elementary.py +0 -0
  203. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/src/blindscrambler/py.typed +0 -0
  204. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/src/lib.rs +0 -0
  205. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/.rustc_info.json +0 -0
  206. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.cargo-lock +0 -0
  207. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/autocfg-a7b9503e43f70dfd/dep-lib-autocfg +0 -0
  208. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/autocfg-a7b9503e43f70dfd/invoked.timestamp +0 -0
  209. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/autocfg-a7b9503e43f70dfd/lib-autocfg +0 -0
  210. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/autocfg-a7b9503e43f70dfd/lib-autocfg.json +0 -0
  211. /blindscrambler-0.1.5/target/release/.fingerprint/cfg-if-6b1405009261e510/dep-lib-cfg_if → /blindscrambler-0.1.7/target/release/.fingerprint/autocfg-ec849e49b9b0ef7b/dep-lib-autocfg +0 -0
  212. {blindscrambler-0.1.5/target/release/.fingerprint/blindscrambler-515225e0ba74eaea → blindscrambler-0.1.7/target/release/.fingerprint/autocfg-ec849e49b9b0ef7b}/invoked.timestamp +0 -0
  213. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/blindscrambler-515225e0ba74eaea/dep-lib-_core +0 -0
  214. {blindscrambler-0.1.5/target/release/.fingerprint/cfg-if-6b1405009261e510 → blindscrambler-0.1.7/target/release/.fingerprint/blindscrambler-515225e0ba74eaea}/invoked.timestamp +0 -0
  215. /blindscrambler-0.1.5/target/release/.fingerprint/heck-1e0efe12adb5e30d/dep-lib-heck → /blindscrambler-0.1.7/target/release/.fingerprint/cfg-if-6b1405009261e510/dep-lib-cfg_if +0 -0
  216. {blindscrambler-0.1.5/target/release/.fingerprint/heck-1e0efe12adb5e30d → blindscrambler-0.1.7/target/release/.fingerprint/cfg-if-6b1405009261e510}/invoked.timestamp +0 -0
  217. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/cfg-if-6b1405009261e510/lib-cfg_if +0 -0
  218. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/cfg-if-6b1405009261e510/lib-cfg_if.json +0 -0
  219. /blindscrambler-0.1.5/target/release/.fingerprint/indoc-07fc2b82ecaa9946/dep-lib-indoc → /blindscrambler-0.1.7/target/release/.fingerprint/cfg-if-e2692dabafd67c3a/dep-lib-cfg_if +0 -0
  220. {blindscrambler-0.1.5/target/release/.fingerprint/indoc-07fc2b82ecaa9946 → blindscrambler-0.1.7/target/release/.fingerprint/cfg-if-e2692dabafd67c3a}/invoked.timestamp +0 -0
  221. /blindscrambler-0.1.5/target/release/.fingerprint/libc-cc387f65ccd2cc68/dep-lib-libc → /blindscrambler-0.1.7/target/release/.fingerprint/heck-1e0efe12adb5e30d/dep-lib-heck +0 -0
  222. {blindscrambler-0.1.5/target/release/.fingerprint/libc-cc387f65ccd2cc68 → blindscrambler-0.1.7/target/release/.fingerprint/heck-1e0efe12adb5e30d}/invoked.timestamp +0 -0
  223. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/heck-1e0efe12adb5e30d/lib-heck +0 -0
  224. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/heck-1e0efe12adb5e30d/lib-heck.json +0 -0
  225. /blindscrambler-0.1.5/target/release/.fingerprint/libc-d684815009b829b4/dep-build-script-build-script-build → /blindscrambler-0.1.7/target/release/.fingerprint/heck-db8430659d799391/dep-lib-heck +0 -0
  226. {blindscrambler-0.1.5/target/release/.fingerprint/libc-d684815009b829b4 → blindscrambler-0.1.7/target/release/.fingerprint/heck-db8430659d799391}/invoked.timestamp +0 -0
  227. /blindscrambler-0.1.5/target/release/.fingerprint/memoffset-0bd42e3da4de5234/dep-build-script-build-script-build → /blindscrambler-0.1.7/target/release/.fingerprint/indoc-07fc2b82ecaa9946/dep-lib-indoc +0 -0
  228. {blindscrambler-0.1.5/target/release/.fingerprint/memoffset-0bd42e3da4de5234 → blindscrambler-0.1.7/target/release/.fingerprint/indoc-07fc2b82ecaa9946}/invoked.timestamp +0 -0
  229. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/indoc-07fc2b82ecaa9946/lib-indoc +0 -0
  230. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/indoc-07fc2b82ecaa9946/lib-indoc.json +0 -0
  231. /blindscrambler-0.1.5/target/release/.fingerprint/memoffset-27028839ea0076a7/dep-lib-memoffset → /blindscrambler-0.1.7/target/release/.fingerprint/indoc-5c3ccbba070a5c21/dep-lib-indoc +0 -0
  232. {blindscrambler-0.1.5/target/release/.fingerprint/memoffset-27028839ea0076a7 → blindscrambler-0.1.7/target/release/.fingerprint/indoc-5c3ccbba070a5c21}/invoked.timestamp +0 -0
  233. {blindscrambler-0.1.5/target/release/.fingerprint/proc-macro2-00da06a5dae54618 → blindscrambler-0.1.7/target/release/.fingerprint/libc-1048a0e1f7b7acb4}/dep-build-script-build-script-build +0 -0
  234. {blindscrambler-0.1.5/target/release/.fingerprint/once_cell-3835f1dea4952693 → blindscrambler-0.1.7/target/release/.fingerprint/libc-1048a0e1f7b7acb4}/invoked.timestamp +0 -0
  235. /blindscrambler-0.1.5/target/release/.fingerprint/once_cell-3835f1dea4952693/dep-lib-once_cell → /blindscrambler-0.1.7/target/release/.fingerprint/libc-483d551a2b04c9ed/dep-lib-libc +0 -0
  236. {blindscrambler-0.1.5/target/release/.fingerprint/once_cell-ec8f0e9efa07d507 → blindscrambler-0.1.7/target/release/.fingerprint/libc-483d551a2b04c9ed}/invoked.timestamp +0 -0
  237. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/libc-4d2ea9f18ff858a6/run-build-script-build-script-build +0 -0
  238. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/libc-4d2ea9f18ff858a6/run-build-script-build-script-build.json +0 -0
  239. /blindscrambler-0.1.5/target/release/.fingerprint/once_cell-ec8f0e9efa07d507/dep-lib-once_cell → /blindscrambler-0.1.7/target/release/.fingerprint/libc-cc387f65ccd2cc68/dep-lib-libc +0 -0
  240. {blindscrambler-0.1.5/target/release/.fingerprint/proc-macro2-00da06a5dae54618 → blindscrambler-0.1.7/target/release/.fingerprint/libc-cc387f65ccd2cc68}/invoked.timestamp +0 -0
  241. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/libc-cc387f65ccd2cc68/lib-libc +0 -0
  242. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/libc-cc387f65ccd2cc68/lib-libc.json +0 -0
  243. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/libc-d684815009b829b4/build-script-build-script-build +0 -0
  244. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/libc-d684815009b829b4/build-script-build-script-build.json +0 -0
  245. {blindscrambler-0.1.5/target/release/.fingerprint/pyo3-21edf82d33511c71 → blindscrambler-0.1.7/target/release/.fingerprint/libc-d684815009b829b4}/dep-build-script-build-script-build +0 -0
  246. {blindscrambler-0.1.5/target/release/.fingerprint/proc-macro2-7e0d15658abd6998 → blindscrambler-0.1.7/target/release/.fingerprint/libc-d684815009b829b4}/invoked.timestamp +0 -0
  247. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/memoffset-0bd42e3da4de5234/build-script-build-script-build +0 -0
  248. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/memoffset-0bd42e3da4de5234/build-script-build-script-build.json +0 -0
  249. {blindscrambler-0.1.5/target/release/.fingerprint/pyo3-build-config-4d0fbe2a7f553b16 → blindscrambler-0.1.7/target/release/.fingerprint/memoffset-0bd42e3da4de5234}/dep-build-script-build-script-build +0 -0
  250. {blindscrambler-0.1.5/target/release/.fingerprint/pyo3-21edf82d33511c71 → blindscrambler-0.1.7/target/release/.fingerprint/memoffset-0bd42e3da4de5234}/invoked.timestamp +0 -0
  251. /blindscrambler-0.1.5/target/release/.fingerprint/proc-macro2-7e0d15658abd6998/dep-lib-proc_macro2 → /blindscrambler-0.1.7/target/release/.fingerprint/memoffset-27028839ea0076a7/dep-lib-memoffset +0 -0
  252. {blindscrambler-0.1.5/target/release/.fingerprint/pyo3-846aa149e4d593bd → blindscrambler-0.1.7/target/release/.fingerprint/memoffset-27028839ea0076a7}/invoked.timestamp +0 -0
  253. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/memoffset-27028839ea0076a7/lib-memoffset +0 -0
  254. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/memoffset-27028839ea0076a7/lib-memoffset.json +0 -0
  255. {blindscrambler-0.1.5/target/release/.fingerprint/pyo3-ffi-797a29b5bf1ec26d → blindscrambler-0.1.7/target/release/.fingerprint/memoffset-28fab8803985747e}/dep-build-script-build-script-build +0 -0
  256. {blindscrambler-0.1.5/target/release/.fingerprint/pyo3-build-config-485f7efd6b2e6f06 → blindscrambler-0.1.7/target/release/.fingerprint/memoffset-28fab8803985747e}/invoked.timestamp +0 -0
  257. /blindscrambler-0.1.5/target/release/.fingerprint/pyo3-ffi-f31b261da8032367/dep-lib-pyo3_ffi → /blindscrambler-0.1.7/target/release/.fingerprint/memoffset-3de0f0a04958d438/dep-lib-memoffset +0 -0
  258. {blindscrambler-0.1.5/target/release/.fingerprint/pyo3-build-config-4d0fbe2a7f553b16 → blindscrambler-0.1.7/target/release/.fingerprint/memoffset-3de0f0a04958d438}/invoked.timestamp +0 -0
  259. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/memoffset-e3aa382409dc35df/run-build-script-build-script-build +0 -0
  260. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/memoffset-e3aa382409dc35df/run-build-script-build-script-build.json +0 -0
  261. /blindscrambler-0.1.5/target/release/.fingerprint/pyo3-macros-ac6298b28244f8de/dep-lib-pyo3_macros → /blindscrambler-0.1.7/target/release/.fingerprint/once_cell-3835f1dea4952693/dep-lib-once_cell +0 -0
  262. {blindscrambler-0.1.5/target/release/.fingerprint/pyo3-ffi-797a29b5bf1ec26d → blindscrambler-0.1.7/target/release/.fingerprint/once_cell-3835f1dea4952693}/invoked.timestamp +0 -0
  263. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/once_cell-3835f1dea4952693/lib-once_cell +0 -0
  264. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/once_cell-3835f1dea4952693/lib-once_cell.json +0 -0
  265. /blindscrambler-0.1.5/target/release/.fingerprint/pyo3-macros-backend-1419f766b92c0009/dep-lib-pyo3_macros_backend → /blindscrambler-0.1.7/target/release/.fingerprint/once_cell-40215868d9ef2577/dep-lib-once_cell +0 -0
  266. {blindscrambler-0.1.5/target/release/.fingerprint/pyo3-ffi-f31b261da8032367 → blindscrambler-0.1.7/target/release/.fingerprint/once_cell-40215868d9ef2577}/invoked.timestamp +0 -0
  267. /blindscrambler-0.1.5/target/release/.fingerprint/pyo3-macros-backend-e82f060013250e12/dep-build-script-build-script-build → /blindscrambler-0.1.7/target/release/.fingerprint/once_cell-63c56b003983b4e1/dep-lib-once_cell +0 -0
  268. {blindscrambler-0.1.5/target/release/.fingerprint/pyo3-macros-ac6298b28244f8de → blindscrambler-0.1.7/target/release/.fingerprint/once_cell-63c56b003983b4e1}/invoked.timestamp +0 -0
  269. /blindscrambler-0.1.5/target/release/.fingerprint/quote-c1920bf86f8fba6d/dep-lib-quote → /blindscrambler-0.1.7/target/release/.fingerprint/once_cell-ec8f0e9efa07d507/dep-lib-once_cell +0 -0
  270. {blindscrambler-0.1.5/target/release/.fingerprint/pyo3-macros-backend-1419f766b92c0009 → blindscrambler-0.1.7/target/release/.fingerprint/once_cell-ec8f0e9efa07d507}/invoked.timestamp +0 -0
  271. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/once_cell-ec8f0e9efa07d507/lib-once_cell +0 -0
  272. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/once_cell-ec8f0e9efa07d507/lib-once_cell.json +0 -0
  273. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/proc-macro2-00da06a5dae54618/build-script-build-script-build +0 -0
  274. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/proc-macro2-00da06a5dae54618/build-script-build-script-build.json +0 -0
  275. {blindscrambler-0.1.5/target/release/.fingerprint/target-lexicon-de6a61689af9d42b → blindscrambler-0.1.7/target/release/.fingerprint/proc-macro2-00da06a5dae54618}/dep-build-script-build-script-build +0 -0
  276. {blindscrambler-0.1.5/target/release/.fingerprint/pyo3-macros-backend-e82f060013250e12 → blindscrambler-0.1.7/target/release/.fingerprint/proc-macro2-00da06a5dae54618}/invoked.timestamp +0 -0
  277. /blindscrambler-0.1.5/target/release/.fingerprint/syn-d17ae06f6c5404ec/dep-lib-syn → /blindscrambler-0.1.7/target/release/.fingerprint/proc-macro2-1c915e463d0f02c7/dep-build-script-build-script-build +0 -0
  278. {blindscrambler-0.1.5/target/release/.fingerprint/quote-c1920bf86f8fba6d → blindscrambler-0.1.7/target/release/.fingerprint/proc-macro2-1c915e463d0f02c7}/invoked.timestamp +0 -0
  279. /blindscrambler-0.1.5/target/release/.fingerprint/unicode-ident-9fc3822a50b81eff/dep-lib-unicode_ident → /blindscrambler-0.1.7/target/release/.fingerprint/proc-macro2-7e0d15658abd6998/dep-lib-proc_macro2 +0 -0
  280. {blindscrambler-0.1.5/target/release/.fingerprint/syn-d17ae06f6c5404ec → blindscrambler-0.1.7/target/release/.fingerprint/proc-macro2-7e0d15658abd6998}/invoked.timestamp +0 -0
  281. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/proc-macro2-7e0d15658abd6998/lib-proc_macro2 +0 -0
  282. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/proc-macro2-7e0d15658abd6998/lib-proc_macro2.json +0 -0
  283. /blindscrambler-0.1.5/target/release/.fingerprint/unindent-93f5e45976adf1db/dep-lib-unindent → /blindscrambler-0.1.7/target/release/.fingerprint/proc-macro2-a237c3a746f321f4/dep-lib-proc_macro2 +0 -0
  284. {blindscrambler-0.1.5/target/release/.fingerprint/target-lexicon-705997156e45bf9a → blindscrambler-0.1.7/target/release/.fingerprint/proc-macro2-a237c3a746f321f4}/invoked.timestamp +0 -0
  285. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/proc-macro2-ba51ef0583c1dda7/run-build-script-build-script-build +0 -0
  286. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/proc-macro2-ba51ef0583c1dda7/run-build-script-build-script-build.json +0 -0
  287. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/pyo3-21edf82d33511c71/build-script-build-script-build +0 -0
  288. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/pyo3-21edf82d33511c71/build-script-build-script-build.json +0 -0
  289. {blindscrambler-0.1.5/target/release/.fingerprint/target-lexicon-de6a61689af9d42b → blindscrambler-0.1.7/target/release/.fingerprint/pyo3-21edf82d33511c71}/invoked.timestamp +0 -0
  290. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/pyo3-846aa149e4d593bd/dep-lib-pyo3 +0 -0
  291. {blindscrambler-0.1.5/target/release/.fingerprint/unicode-ident-9fc3822a50b81eff → blindscrambler-0.1.7/target/release/.fingerprint/pyo3-846aa149e4d593bd}/invoked.timestamp +0 -0
  292. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/pyo3-846aa149e4d593bd/lib-pyo3 +0 -0
  293. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/pyo3-846aa149e4d593bd/lib-pyo3.json +0 -0
  294. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/pyo3-89601d31af12a035/run-build-script-build-script-build +0 -0
  295. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/pyo3-89601d31af12a035/run-build-script-build-script-build.json +0 -0
  296. {blindscrambler-0.1.5/target/release/.fingerprint/unindent-93f5e45976adf1db → blindscrambler-0.1.7/target/release/.fingerprint/pyo3-b5406c20eea00644}/invoked.timestamp +0 -0
  297. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/pyo3-build-config-485f7efd6b2e6f06/dep-lib-pyo3_build_config +0 -0
  298. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/pyo3-build-config-485f7efd6b2e6f06/lib-pyo3_build_config +0 -0
  299. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/pyo3-build-config-485f7efd6b2e6f06/lib-pyo3_build_config.json +0 -0
  300. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/pyo3-build-config-4d0fbe2a7f553b16/build-script-build-script-build +0 -0
  301. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/pyo3-build-config-4d0fbe2a7f553b16/build-script-build-script-build.json +0 -0
  302. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/pyo3-build-config-da1a330592cf50bd/run-build-script-build-script-build +0 -0
  303. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/pyo3-build-config-da1a330592cf50bd/run-build-script-build-script-build.json +0 -0
  304. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/pyo3-ffi-50ad4923338d6e05/run-build-script-build-script-build +0 -0
  305. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/pyo3-ffi-50ad4923338d6e05/run-build-script-build-script-build.json +0 -0
  306. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/pyo3-ffi-797a29b5bf1ec26d/build-script-build-script-build +0 -0
  307. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/pyo3-ffi-797a29b5bf1ec26d/build-script-build-script-build.json +0 -0
  308. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/pyo3-ffi-f31b261da8032367/lib-pyo3_ffi +0 -0
  309. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/pyo3-ffi-f31b261da8032367/lib-pyo3_ffi.json +0 -0
  310. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/pyo3-macros-ac6298b28244f8de/lib-pyo3_macros +0 -0
  311. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/pyo3-macros-ac6298b28244f8de/lib-pyo3_macros.json +0 -0
  312. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/pyo3-macros-backend-1419f766b92c0009/lib-pyo3_macros_backend +0 -0
  313. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/pyo3-macros-backend-1419f766b92c0009/lib-pyo3_macros_backend.json +0 -0
  314. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/pyo3-macros-backend-e82f060013250e12/build-script-build-script-build +0 -0
  315. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/pyo3-macros-backend-e82f060013250e12/build-script-build-script-build.json +0 -0
  316. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/pyo3-macros-backend-ecfd32509acce42f/run-build-script-build-script-build +0 -0
  317. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/pyo3-macros-backend-ecfd32509acce42f/run-build-script-build-script-build.json +0 -0
  318. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/quote-c1920bf86f8fba6d/lib-quote +0 -0
  319. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/quote-c1920bf86f8fba6d/lib-quote.json +0 -0
  320. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/syn-d17ae06f6c5404ec/lib-syn +0 -0
  321. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/syn-d17ae06f6c5404ec/lib-syn.json +0 -0
  322. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/target-lexicon-705997156e45bf9a/dep-lib-target_lexicon +0 -0
  323. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/target-lexicon-705997156e45bf9a/lib-target_lexicon +0 -0
  324. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/target-lexicon-705997156e45bf9a/lib-target_lexicon.json +0 -0
  325. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/target-lexicon-c4ba7987d0594e05/run-build-script-build-script-build +0 -0
  326. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/target-lexicon-c4ba7987d0594e05/run-build-script-build-script-build.json +0 -0
  327. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/target-lexicon-de6a61689af9d42b/build-script-build-script-build +0 -0
  328. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/target-lexicon-de6a61689af9d42b/build-script-build-script-build.json +0 -0
  329. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/unicode-ident-9fc3822a50b81eff/lib-unicode_ident +0 -0
  330. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/unicode-ident-9fc3822a50b81eff/lib-unicode_ident.json +0 -0
  331. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/unindent-93f5e45976adf1db/lib-unindent +0 -0
  332. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/.fingerprint/unindent-93f5e45976adf1db/lib-unindent.json +0 -0
  333. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/_core.d +0 -0
  334. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/autocfg-a7b9503e43f70dfd.d +0 -0
  335. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/cfg_if-6b1405009261e510.d +0 -0
  336. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/heck-1e0efe12adb5e30d.d +0 -0
  337. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/indoc-07fc2b82ecaa9946.d +0 -0
  338. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/lib_core.dylib +0 -0
  339. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libautocfg-a7b9503e43f70dfd.rlib +0 -0
  340. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libautocfg-a7b9503e43f70dfd.rmeta +0 -0
  341. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libc-cc387f65ccd2cc68.d +0 -0
  342. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libcfg_if-6b1405009261e510.rlib +0 -0
  343. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libcfg_if-6b1405009261e510.rmeta +0 -0
  344. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libheck-1e0efe12adb5e30d.rlib +0 -0
  345. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libheck-1e0efe12adb5e30d.rmeta +0 -0
  346. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libindoc-07fc2b82ecaa9946.dylib +0 -0
  347. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/liblibc-cc387f65ccd2cc68.rlib +0 -0
  348. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/liblibc-cc387f65ccd2cc68.rmeta +0 -0
  349. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libmemoffset-27028839ea0076a7.rlib +0 -0
  350. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libmemoffset-27028839ea0076a7.rmeta +0 -0
  351. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libonce_cell-3835f1dea4952693.rlib +0 -0
  352. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libonce_cell-3835f1dea4952693.rmeta +0 -0
  353. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libonce_cell-ec8f0e9efa07d507.rlib +0 -0
  354. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libonce_cell-ec8f0e9efa07d507.rmeta +0 -0
  355. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libproc_macro2-7e0d15658abd6998.rlib +0 -0
  356. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libproc_macro2-7e0d15658abd6998.rmeta +0 -0
  357. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libpyo3-846aa149e4d593bd.rlib +0 -0
  358. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libpyo3-846aa149e4d593bd.rmeta +0 -0
  359. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libpyo3_build_config-485f7efd6b2e6f06.rlib +0 -0
  360. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libpyo3_build_config-485f7efd6b2e6f06.rmeta +0 -0
  361. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libpyo3_ffi-f31b261da8032367.rlib +0 -0
  362. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libpyo3_ffi-f31b261da8032367.rmeta +0 -0
  363. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libpyo3_macros-ac6298b28244f8de.dylib +0 -0
  364. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libpyo3_macros_backend-1419f766b92c0009.rlib +0 -0
  365. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libpyo3_macros_backend-1419f766b92c0009.rmeta +0 -0
  366. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libquote-c1920bf86f8fba6d.rlib +0 -0
  367. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libquote-c1920bf86f8fba6d.rmeta +0 -0
  368. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libsyn-d17ae06f6c5404ec.rlib +0 -0
  369. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libsyn-d17ae06f6c5404ec.rmeta +0 -0
  370. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libtarget_lexicon-705997156e45bf9a.rlib +0 -0
  371. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libtarget_lexicon-705997156e45bf9a.rmeta +0 -0
  372. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libunicode_ident-9fc3822a50b81eff.rlib +0 -0
  373. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libunicode_ident-9fc3822a50b81eff.rmeta +0 -0
  374. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libunindent-93f5e45976adf1db.rlib +0 -0
  375. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/libunindent-93f5e45976adf1db.rmeta +0 -0
  376. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/memoffset-27028839ea0076a7.d +0 -0
  377. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/once_cell-3835f1dea4952693.d +0 -0
  378. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/once_cell-ec8f0e9efa07d507.d +0 -0
  379. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/proc_macro2-7e0d15658abd6998.d +0 -0
  380. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/pyo3-846aa149e4d593bd.d +0 -0
  381. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/pyo3_build_config-485f7efd6b2e6f06.d +0 -0
  382. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/pyo3_ffi-f31b261da8032367.d +0 -0
  383. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/pyo3_macros-ac6298b28244f8de.d +0 -0
  384. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/pyo3_macros_backend-1419f766b92c0009.d +0 -0
  385. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/quote-c1920bf86f8fba6d.d +0 -0
  386. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/syn-d17ae06f6c5404ec.d +0 -0
  387. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/target_lexicon-705997156e45bf9a.d +0 -0
  388. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/unicode_ident-9fc3822a50b81eff.d +0 -0
  389. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/deps/unindent-93f5e45976adf1db.d +0 -0
  390. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/lib_core.d +0 -0
  391. {blindscrambler-0.1.5 → blindscrambler-0.1.7}/target/release/lib_core.dylib +0 -0
@@ -1,8 +1,11 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: blindscrambler
3
- Version: 0.1.5
3
+ Version: 0.1.7
4
4
  Requires-Dist: matplotlib>=3.10.6
5
5
  Requires-Dist: numpy>=2.3.3
6
+ Requires-Dist: polars>=1.34.0
7
+ Requires-Dist: scikit-learn>=1.7.2
8
+ Requires-Dist: scipy>=1.16.2
6
9
  Requires-Dist: torch>=2.8.0
7
10
  Requires-Dist: twine>=6.1.0
8
11
  Summary: Add your description here
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "blindscrambler"
3
- version = "0.1.5"
3
+ version = "0.1.7"
4
4
  description = "Add your description here"
5
5
  readme = "README.md"
6
6
  authors = [
@@ -10,6 +10,9 @@ requires-python = ">=3.12"
10
10
  dependencies = [
11
11
  "matplotlib>=3.10.6",
12
12
  "numpy>=2.3.3",
13
+ "polars>=1.34.0",
14
+ "scikit-learn>=1.7.2",
15
+ "scipy>=1.16.2",
13
16
  "torch>=2.8.0",
14
17
  "twine>=6.1.0",
15
18
  ]
@@ -1,4 +1,5 @@
1
1
  from blindscrambler._core import hello_from_bin
2
+ from blindscrambler.model import LinearRegression
2
3
 
3
4
 
4
5
  def hello() -> str:
@@ -46,17 +46,11 @@ def poissondist(lam):
46
46
  """
47
47
  Params:
48
48
  (1) lam : double
49
- The number lambda that will be used to generate samples of the exponential distributions
49
+ The number lambda that will be used to generate samples of the poisson distributions
50
50
 
51
51
  Returns:
52
52
  (2) x : double
53
- A random sample that is exponentially distributed
54
-
55
- Function description: Basically, this function performs Inverse Transform Sampling. You take a random number generated between [0, 1]
56
- This represets the CDF of some given distribution. Then you apply the inverse CDF function to generate a sample. The given sample will
57
- be from the distribution in question.
58
-
59
- NOTE: the inverse CDF used here is from the exponential distribution. Therefore, the generated numbers will be exponentially distributed
53
+ A random sample that is poisson distributed
60
54
  """
61
55
  # make cumulative function and k
62
56
  cum = 0
@@ -71,7 +65,7 @@ def poissondist(lam):
71
65
 
72
66
  # keep adding probabilities unyil condition is met
73
67
  while cum < u:
74
- k += 1
68
+ x += 1
75
69
  p *= lam / x
76
70
  cum += p
77
71
 
@@ -0,0 +1,2 @@
1
+ from .regression import LinearRegression
2
+ __all__ = ["LinearRegression"]
@@ -0,0 +1,216 @@
1
+ # Author metadata
2
+
3
+ __Name__ = "Syed Raza"
4
+ __email__ = "sar0033@uah.edu"
5
+
6
+ # import statements
7
+ import torch
8
+ import torch.nn as nn
9
+ import torch.optim as optim
10
+ import numpy as np
11
+ import matplotlib.pyplot as plt
12
+ from scipy import stats
13
+ from typing import Tuple, Optional
14
+ import warnings
15
+
16
+ # add a linear Regression class:
17
+ class LinearRegression:
18
+ """
19
+ A PyTorch-based Linear Regression implementation for one variable.
20
+
21
+ Model: y = w_1 * x + w_0
22
+ Loss: Mean Squared Error
23
+
24
+ Features:
25
+ - Gradient-based optimization using PyTorch
26
+ - Confidence intervals for parameters w_1 and w_0
27
+ - Visualization with confidence bands
28
+ """
29
+
30
+ def __init__(self, learning_rate: float = 0.01, max_epochs: int = 1000,
31
+ tolerance: float = 1e-6):
32
+
33
+ """
34
+ """
35
+
36
+ # the main variables
37
+ self.learning_rate = learning_rate
38
+ self.max_epochs = max_epochs
39
+ self.tolerance = tolerance
40
+
41
+ # Model parameters
42
+ self.w_0 = nn.Parameter(torch.randn(1, requires_grad=True)) # intercept
43
+ self.w_1 = nn.Parameter(torch.randn(1, requires_grad=True)) # slope
44
+
45
+ # training data storage
46
+ self.X_train = None
47
+ self.y_train = None
48
+
49
+ # Model statistics for confidence intervals
50
+ self.n_samples = None
51
+ self.residual_sum_squares = None
52
+ self.X_mean = None
53
+ self.X_var = None
54
+ self.fitted = False
55
+
56
+ # Loss function and optimizer
57
+ self.criterion = nn.MSELoss()
58
+ self.optimizer = optim.SGD([self.w_1, self.w_0], lr=self.learning_rate)
59
+
60
+ # Training history
61
+ self.loss_history = []
62
+ self.w0_history = []
63
+ self.w1_history = []
64
+
65
+ def forward(self, X: torch.tensor) -> torch.tensor:
66
+ """
67
+ """
68
+ return self.w_1 * X + self.w_0
69
+
70
+ def fit(self, X: np.ndarray, y: np.ndarray) -> 'LinearRegression':
71
+ """
72
+ """
73
+ # Convert to PyTorch tensors
74
+ self.X_train = torch.tensor(X, dtype=torch.float32)
75
+ self.y_train = torch.tensor(y, dtype=torch.float32)
76
+ self.n_samples = len(X)
77
+
78
+ # Store statistics for confidence intervals
79
+ self.X_mean = float(np.mean(X))
80
+ self.X_var = float(np.var(X, ddof=1)) # Sample variance
81
+
82
+ # Training loop
83
+ prev_loss = float('inf')
84
+
85
+ for epoch in range(self.max_epochs):
86
+ # Zero gradients
87
+ self.optimizer.zero_grad()
88
+
89
+ # Forward pass
90
+ y_pred = self.forward(self.X_train)
91
+
92
+ # Compute loss
93
+ loss = self.criterion(y_pred, self.y_train)
94
+
95
+ # Backward pass
96
+ loss.backward()
97
+
98
+ # Update parameters
99
+ self.optimizer.step()
100
+
101
+ # Store loss history
102
+ current_loss = loss.item()
103
+ self.loss_history.append(current_loss)
104
+ # Track parameter history (after update)
105
+ with torch.no_grad():
106
+ self.w0_history.append(float(self.w_0.item()))
107
+ self.w1_history.append(float(self.w_1.item()))
108
+
109
+ # Check for convergence
110
+ if abs(prev_loss - current_loss) < self.tolerance:
111
+ print(f"Converged after {epoch + 1} epochs")
112
+ break
113
+
114
+ prev_loss = current_loss
115
+
116
+ # Compute residual sum of squares for confidence intervals
117
+ with torch.no_grad():
118
+ y_pred = self.forward(self.X_train)
119
+ residuals = self.y_train - y_pred
120
+ self.residual_sum_squares = float(torch.sum(residuals ** 2))
121
+
122
+ self.fitted = True
123
+ return self
124
+
125
+ def predict(self, X: np.ndarray) -> np.ndarray:
126
+ """
127
+ Make predictions on new data.
128
+
129
+ Args:
130
+ X: Input features of shape (n_samples,)
131
+
132
+ Returns:
133
+ Predictions as numpy array
134
+ """
135
+ if not self.fitted:
136
+ raise ValueError("Model must be fitted before making predictions")
137
+
138
+ X_tensor = torch.tensor(X, dtype=torch.float32)
139
+
140
+ with torch.no_grad():
141
+ predictions = self.forward(X_tensor)
142
+
143
+ return predictions.numpy()
144
+
145
+ def analysis_plot(self, w_0: Optional[float] = None, w_1: Optional[float] = None):
146
+ """
147
+ Create a 2x2 analysis figure showing:
148
+ - Original data and fitted regression line
149
+ - Training loss over epochs
150
+ - Intercept (w_0) trajectory over epochs
151
+ - Slope (w_1) trajectory over epochs
152
+
153
+ Args:
154
+ w_0: Intercept to plot final fit; if None, uses current self.w_0
155
+ w_1: Slope to plot final fit; if None, uses current self.w_1
156
+ """
157
+ if self.X_train is None or self.y_train is None:
158
+ raise ValueError("No training data found. Fit the model before plotting.")
159
+
160
+ # Resolve parameters for plotting
161
+ if w_0 is None:
162
+ w_0 = float(self.w_0.detach().cpu().item())
163
+ if w_1 is None:
164
+ w_1 = float(self.w_1.detach().cpu().item())
165
+
166
+ X_np = self.X_train.detach().cpu().numpy().reshape(-1)
167
+ y_np = self.y_train.detach().cpu().numpy().reshape(-1)
168
+
169
+ # Build line for fit
170
+ x_line = np.linspace(X_np.min(), X_np.max(), 200)
171
+ y_line = w_1 * x_line + w_0
172
+
173
+ fig, axes = plt.subplots(2, 2, figsize=(12, 8))
174
+
175
+ # 1) Data + fit
176
+ ax = axes[0, 0]
177
+ ax.scatter(X_np, y_np, color='tab:blue', alpha=0.7, label='Data')
178
+ ax.plot(x_line, y_line, color='tab:red', label=f'Fit: y={w_1:.3f}x+{w_0:.3f}')
179
+ ax.set_title('Data and Fitted Line')
180
+ ax.set_xlabel('X')
181
+ ax.set_ylabel('y')
182
+ ax.legend()
183
+
184
+ # 2) Loss history
185
+ ax = axes[0, 1]
186
+ if len(self.loss_history) > 0:
187
+ ax.plot(range(1, len(self.loss_history) + 1), self.loss_history, color='tab:green')
188
+ ax.set_title('Training Loss')
189
+ ax.set_xlabel('Epoch')
190
+ ax.set_ylabel('MSE Loss')
191
+ ax.grid(True, linestyle='--', alpha=0.3)
192
+
193
+ # 3) w_0 history
194
+ ax = axes[1, 0]
195
+ if len(self.w0_history) > 0:
196
+ ax.plot(range(1, len(self.w0_history) + 1), self.w0_history, color='tab:purple')
197
+ ax.axhline(w_0, color='gray', linestyle='--', alpha=0.6, label='Final w_0')
198
+ ax.set_title('w_0 (Intercept) over Epochs')
199
+ ax.set_xlabel('Epoch')
200
+ ax.set_ylabel('w_0')
201
+ ax.legend()
202
+ ax.grid(True, linestyle='--', alpha=0.3)
203
+
204
+ # 4) w_1 history
205
+ ax = axes[1, 1]
206
+ if len(self.w1_history) > 0:
207
+ ax.plot(range(1, len(self.w1_history) + 1), self.w1_history, color='tab:orange')
208
+ ax.axhline(w_1, color='gray', linestyle='--', alpha=0.6, label='Final w_1')
209
+ ax.set_title('w_1 (Slope) over Epochs')
210
+ ax.set_xlabel('Epoch')
211
+ ax.set_ylabel('w_1')
212
+ ax.legend()
213
+ ax.grid(True, linestyle='--', alpha=0.3)
214
+
215
+ plt.tight_layout()
216
+ return fig, axes
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"[]","declared_features":"[]","target":6962977057026645649,"profile":1369601567987815722,"path":10429393698282681002,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/autocfg-ec849e49b9b0ef7b/dep-lib-autocfg","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -1 +1 @@
1
- {"rustc":9783247635632824192,"features":"[]","declared_features":"[]","target":16968402954708964823,"profile":4986711158483450461,"path":10763286916239946207,"deps":[[557099714978251243,"pyo3",false,7767483079521494028]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/blindscrambler-515225e0ba74eaea/dep-lib-_core","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
1
+ {"rustc":9783247635632824192,"features":"[]","declared_features":"[]","target":16968402954708964823,"profile":4986711158483450461,"path":10763286916239946207,"deps":[[557099714978251243,"pyo3",false,8231635342978860346]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/blindscrambler-515225e0ba74eaea/dep-lib-_core","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"[]","declared_features":"[\"core\", \"rustc-dep-of-std\"]","target":13840298032947503755,"profile":2040997289075261528,"path":13771520713171376707,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/cfg-if-e2692dabafd67c3a/dep-lib-cfg_if","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"[]","declared_features":"[]","target":17886154901722686619,"profile":1369601567987815722,"path":1382863853483165722,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/heck-db8430659d799391/dep-lib-heck","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"[]","declared_features":"[]","target":8726396592336845528,"profile":1369601567987815722,"path":6351940801494920022,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/indoc-5c3ccbba070a5c21/dep-lib-indoc","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[11887305395906501191,"build_script_build",false,16351081857108787199]],"local":[{"RerunIfChanged":{"output":"release/build/libc-089751abe6465d96/output","paths":["build.rs"]}},{"RerunIfEnvChanged":{"var":"RUST_LIBC_UNSTABLE_FREEBSD_VERSION","val":null}},{"RerunIfEnvChanged":{"var":"RUST_LIBC_UNSTABLE_MUSL_V1_2_3","val":null}},{"RerunIfEnvChanged":{"var":"RUST_LIBC_UNSTABLE_LINUX_TIME_BITS64","val":null}},{"RerunIfEnvChanged":{"var":"RUST_LIBC_UNSTABLE_GNU_FILE_OFFSET_BITS","val":null}},{"RerunIfEnvChanged":{"var":"RUST_LIBC_UNSTABLE_GNU_TIME_BITS","val":null}}],"rustflags":[],"config":0,"compile_kind":0}
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"[\"default\", \"std\"]","declared_features":"[\"align\", \"const-extern-fn\", \"default\", \"extra_traits\", \"rustc-dep-of-std\", \"rustc-std-workspace-core\", \"std\", \"use_std\"]","target":5408242616063297496,"profile":8928907579149787682,"path":15847823940573496519,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/libc-1048a0e1f7b7acb4/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"[\"default\", \"std\"]","declared_features":"[\"align\", \"const-extern-fn\", \"default\", \"extra_traits\", \"rustc-dep-of-std\", \"rustc-std-workspace-core\", \"std\", \"use_std\"]","target":17682796336736096309,"profile":7322064999780386650,"path":9544158003099397824,"deps":[[11887305395906501191,"build_script_build",false,2173791677643068979]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/libc-483d551a2b04c9ed/dep-lib-libc","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"[\"default\"]","declared_features":"[\"default\", \"unstable_const\", \"unstable_offset_of\"]","target":12318548087768197662,"profile":1369601567987815722,"path":12957432155134209601,"deps":[[13927012481677012980,"autocfg",false,1085862656233954794]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/memoffset-28fab8803985747e/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"[\"default\"]","declared_features":"[\"default\", \"unstable_const\", \"unstable_offset_of\"]","target":5262764120681397832,"profile":2040997289075261528,"path":20171027823172397,"deps":[[14643204177830147187,"build_script_build",false,14871956836840254743]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/memoffset-3de0f0a04958d438/dep-lib-memoffset","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[14643204177830147187,"build_script_build",false,12433995410574065056]],"local":[{"Precalculated":"0.9.1"}],"rustflags":[],"config":0,"compile_kind":0}
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"[\"alloc\", \"default\", \"race\", \"std\"]","declared_features":"[\"alloc\", \"atomic-polyfill\", \"critical-section\", \"default\", \"parking_lot\", \"portable-atomic\", \"race\", \"std\", \"unstable\"]","target":17524666916136250164,"profile":2040997289075261528,"path":15515084144644511905,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/once_cell-40215868d9ef2577/dep-lib-once_cell","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"[\"alloc\", \"default\", \"race\", \"std\"]","declared_features":"[\"alloc\", \"atomic-polyfill\", \"critical-section\", \"default\", \"parking_lot\", \"portable-atomic\", \"race\", \"std\", \"unstable\"]","target":17524666916136250164,"profile":1369601567987815722,"path":15515084144644511905,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/once_cell-63c56b003983b4e1/dep-lib-once_cell","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"[\"proc-macro\"]","declared_features":"[\"default\", \"nightly\", \"proc-macro\", \"span-locations\"]","target":5408242616063297496,"profile":1369601567987815722,"path":14595497588500678200,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/proc-macro2-1c915e463d0f02c7/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[373107762698212489,"build_script_build",false,2369747576457895387]],"local":[{"RerunIfChanged":{"output":"release/build/proc-macro2-96f127e3ddb93fe4/output","paths":["src/probe/proc_macro_span.rs","src/probe/proc_macro_span_location.rs","src/probe/proc_macro_span_file.rs"]}},{"RerunIfEnvChanged":{"var":"RUSTC_BOOTSTRAP","val":null}}],"rustflags":[],"config":0,"compile_kind":0}
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"[\"proc-macro\"]","declared_features":"[\"default\", \"nightly\", \"proc-macro\", \"span-locations\"]","target":369203346396300798,"profile":1369601567987815722,"path":2812378891987300211,"deps":[[373107762698212489,"build_script_build",false,4255363678973541093],[1988483478007900009,"unicode_ident",false,5900025063080303961]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/proc-macro2-a237c3a746f321f4/dep-lib-proc_macro2","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py39\", \"default\", \"extension-module\", \"indoc\", \"macros\", \"pyo3-macros\", \"unindent\"]","declared_features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py37\", \"abi3-py38\", \"abi3-py39\", \"anyhow\", \"auto-initialize\", \"chrono\", \"chrono-tz\", \"default\", \"either\", \"experimental-async\", \"experimental-inspect\", \"extension-module\", \"eyre\", \"full\", \"generate-import-lib\", \"gil-refs\", \"hashbrown\", \"indexmap\", \"indoc\", \"inventory\", \"macros\", \"multiple-pymethods\", \"nightly\", \"num-bigint\", \"num-complex\", \"num-rational\", \"py-clone\", \"pyo3-macros\", \"rust_decimal\", \"serde\", \"smallvec\", \"unindent\"]","target":5408242616063297496,"profile":2698605196217230458,"path":1740881551465272660,"deps":[[9343146279897821472,"pyo3_build_config",false,7690068936405649700]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/pyo3-b5406c20eea00644/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py39\", \"default\", \"extension-module\", \"resolve-config\"]","declared_features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py37\", \"abi3-py38\", \"abi3-py39\", \"default\", \"extension-module\", \"python3-dll-a\", \"resolve-config\"]","target":5408242616063297496,"profile":1369601567987815722,"path":9553640418336509776,"deps":[[10296317077653712691,"target_lexicon",false,18061361728307659801]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/pyo3-build-config-19e45e2b12999ce4/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -0,0 +1 @@
1
+ This file has an mtime of when this was started.
@@ -0,0 +1 @@
1
+ This file has an mtime of when this was started.
@@ -0,0 +1 @@
1
+ This file has an mtime of when this was started.
@@ -0,0 +1 @@
1
+ This file has an mtime of when this was started.
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py39\", \"default\", \"extension-module\", \"resolve-config\"]","declared_features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py37\", \"abi3-py38\", \"abi3-py39\", \"default\", \"extension-module\", \"python3-dll-a\", \"resolve-config\"]","target":8254743344416261242,"profile":1369601567987815722,"path":1904922387345736984,"deps":[[3722963349756955755,"once_cell",false,15181595072360769438],[9343146279897821472,"build_script_build",false,343647842405691462],[10296317077653712691,"target_lexicon",false,18061361728307659801]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/pyo3-build-config-a8bde4920a4bfe99/dep-lib-pyo3_build_config","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[9343146279897821472,"build_script_build",false,1494056717172118456]],"local":[{"RerunIfEnvChanged":{"var":"PYO3_CONFIG_FILE","val":null}},{"RerunIfEnvChanged":{"var":"PYO3_NO_PYTHON","val":null}},{"RerunIfEnvChanged":{"var":"PYO3_ENVIRONMENT_SIGNATURE","val":"cpython-3.12-64bit"}},{"RerunIfEnvChanged":{"var":"PYO3_PYTHON","val":"/Users/syedraza/.cache/uv/builds-v0/.tmp9hihpC/bin/python"}}],"rustflags":[],"config":0,"compile_kind":0}
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[557099714978251243,"build_script_build",false,13656521050910247731],[46745629712228035,"build_script_build",false,1702343118843129758]],"local":[{"Precalculated":"0.22.6"}],"rustflags":[],"config":0,"compile_kind":0}
@@ -0,0 +1 @@
1
+ This file has an mtime of when this was started.
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py39\", \"default\", \"extension-module\", \"indoc\", \"macros\", \"pyo3-macros\", \"unindent\"]","declared_features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py37\", \"abi3-py38\", \"abi3-py39\", \"anyhow\", \"auto-initialize\", \"chrono\", \"chrono-tz\", \"default\", \"either\", \"experimental-async\", \"experimental-inspect\", \"extension-module\", \"eyre\", \"full\", \"generate-import-lib\", \"gil-refs\", \"hashbrown\", \"indexmap\", \"indoc\", \"inventory\", \"macros\", \"multiple-pymethods\", \"nightly\", \"num-bigint\", \"num-complex\", \"num-rational\", \"py-clone\", \"pyo3-macros\", \"rust_decimal\", \"serde\", \"smallvec\", \"unindent\"]","target":1859062398649441551,"profile":5688549466542000691,"path":8225971616635483577,"deps":[[46745629712228035,"pyo3_ffi",false,1411593254952839551],[557099714978251243,"build_script_build",false,4284845452606585356],[629381703529241162,"indoc",false,17486296508258565631],[3722963349756955755,"once_cell",false,15168598541345494942],[6110494908772664783,"pyo3_macros",false,11546741754502696276],[7843059260364151289,"cfg_if",false,12904594821397338204],[11887305395906501191,"libc",false,9439657505582787570],[14643204177830147187,"memoffset",false,5048725253622737706],[14748792705540276325,"unindent",false,10999516454298864323]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/pyo3-fe834dd71f882076/dep-lib-pyo3","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -0,0 +1 @@
1
+ This file has an mtime of when this was started.
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py39\", \"default\", \"extension-module\"]","declared_features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py37\", \"abi3-py38\", \"abi3-py39\", \"default\", \"extension-module\", \"generate-import-lib\"]","target":14506753996192664611,"profile":5688549466542000691,"path":7425364177248144962,"deps":[[46745629712228035,"build_script_build",false,1702343118843129758],[11887305395906501191,"libc",false,9439657505582787570]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/pyo3-ffi-3b410603869916e1/dep-lib-pyo3_ffi","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py39\", \"default\", \"extension-module\"]","declared_features":"[\"abi3\", \"abi3-py310\", \"abi3-py311\", \"abi3-py312\", \"abi3-py37\", \"abi3-py38\", \"abi3-py39\", \"default\", \"extension-module\", \"generate-import-lib\"]","target":5408242616063297496,"profile":2698605196217230458,"path":17664981266349336487,"deps":[[9343146279897821472,"pyo3_build_config",false,7690068936405649700]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/pyo3-ffi-4b75fa99b2fd670d/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -0,0 +1 @@
1
+ This file has an mtime of when this was started.
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[46745629712228035,"build_script_build",false,14885851590065799295]],"local":[{"RerunIfEnvChanged":{"var":"PYO3_CROSS","val":null}},{"RerunIfEnvChanged":{"var":"PYO3_CROSS_LIB_DIR","val":null}},{"RerunIfEnvChanged":{"var":"PYO3_CROSS_PYTHON_VERSION","val":null}},{"RerunIfEnvChanged":{"var":"PYO3_CROSS_PYTHON_IMPLEMENTATION","val":null}},{"RerunIfEnvChanged":{"var":"PYO3_PRINT_CONFIG","val":null}}],"rustflags":[],"config":0,"compile_kind":0}
@@ -0,0 +1 @@
1
+ This file has an mtime of when this was started.
@@ -0,0 +1 @@
1
+ This file has an mtime of when this was started.
@@ -0,0 +1 @@
1
+ This file has an mtime of when this was started.
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"[]","declared_features":"[\"experimental-async\", \"gil-refs\", \"multiple-pymethods\"]","target":13917622123232857288,"profile":2698605196217230458,"path":13433847673647424274,"deps":[[373107762698212489,"proc_macro2",false,3545127420592670417],[3771343242488894766,"pyo3_macros_backend",false,8801935179566854054],[17332570067994900305,"syn",false,13220154739366993597],[17990358020177143287,"quote",false,12101753900251786512]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/pyo3-macros-039731653063c94a/dep-lib-pyo3_macros","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -0,0 +1 @@
1
+ This file has an mtime of when this was started.
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"","declared_features":"","target":0,"profile":0,"path":0,"deps":[[3771343242488894766,"build_script_build",false,17451506460545984774]],"local":[{"Precalculated":"0.22.6"}],"rustflags":[],"config":0,"compile_kind":0}
@@ -0,0 +1 @@
1
+ This file has an mtime of when this was started.
@@ -0,0 +1 @@
1
+ {"rustc":9783247635632824192,"features":"[]","declared_features":"[\"experimental-async\", \"gil-refs\"]","target":5408242616063297496,"profile":2698605196217230458,"path":4854413530639178718,"deps":[[9343146279897821472,"pyo3_build_config",false,7690068936405649700]],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/pyo3-macros-backend-a8e6c42699c75a62/dep-build-script-build-script-build","checksum":false}}],"rustflags":[],"config":2069994364910194474,"compile_kind":0}
@@ -0,0 +1 @@
1
+ This file has an mtime of when this was started.