proof-of-portfolio 0.0.103__tar.gz → 0.0.105__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.
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/PKG-INFO +1 -1
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/_version.py +1 -1
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/circuits/components/src/core/omega.nr +27 -14
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/circuits/target/circuits.json +1 -1
- proof_of_portfolio-0.0.105/proof_of_portfolio/circuits/vk/vk +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio.egg-info/PKG-INFO +1 -1
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/pyproject.toml +1 -1
- proof_of_portfolio-0.0.103/proof_of_portfolio/circuits/vk/vk +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/README.md +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/__init__.py +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/analyze_data.py +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/circuits/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/circuits/components/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/circuits/components/src/core/calmar.nr +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/circuits/components/src/core/drawdown.nr +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/circuits/components/src/core/merkle.nr +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/circuits/components/src/core/mod.nr +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/circuits/components/src/core/pnl_score.nr +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/circuits/components/src/core/position.nr +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/circuits/components/src/core/sharpe.nr +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/circuits/components/src/core/sortino.nr +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/circuits/components/src/core/tstat.nr +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/circuits/components/src/lib.nr +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/circuits/components/src/utils/ann_excess_return.nr +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/circuits/components/src/utils/ann_volatility.nr +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/circuits/components/src/utils/average.nr +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/circuits/components/src/utils/constants.nr +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/circuits/components/src/utils/mod.nr +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/circuits/components/src/utils/risk_normalization.nr +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/circuits/components/src/utils/sqrt.nr +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/circuits/components/src/utils/variance.nr +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/circuits/components/src/utils/weighting_distribution.nr +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/circuits/generate_inputs.py +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/circuits/src/main.nr +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demo/just_calmar/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demo/just_calmar/src/main.nr +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demo/just_calmar/target/just_calmar.json +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demo/just_cps_to_log_return/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demo/just_cps_to_log_return/src/main.nr +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demo/just_cps_to_log_return/target/just_cps_to_log_return.json +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demo/just_drawdown/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demo/just_drawdown/src/main.nr +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demo/just_drawdown/target/just_drawdown.json +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demo/just_omega/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demo/just_omega/src/main.nr +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demo/just_omega/target/just_omega.json +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demo/just_pnl/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demo/just_pnl/src/main.nr +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demo/just_sharpe/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demo/just_sharpe/src/main.nr +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demo/just_sharpe/target/just_sharpe.json +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demo/just_sortino/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demo/just_sortino/src/main.nr +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demo/just_sortino/target/just_sortino.json +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demo/just_tstat/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demo/just_tstat/src/main.nr +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demo/just_tstat/target/just_tstat.json +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demo/merkle_generator/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demo/merkle_generator/src/main.nr +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demos/all.py +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demos/calmar.py +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demos/drawdown.py +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demos/generate_input_data.py +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demos/log_returns.py +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demos/main.py +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demos/omega.py +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demos/sharpe.py +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demos/sortino.py +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demos/tstat.py +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/demos/utils.py +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/main.py +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/min_metrics.py +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/miner.py +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/parsing_utils.py +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/post_install.py +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/proof_generator.py +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/returns_generator/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/returns_generator/src/main.nr +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/returns_generator/target/returns_generator.json +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/signal_processor.py +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/tree_generator/Nargo.toml +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/tree_generator/src/main.nr +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/tree_generator/target/tree_generator.json +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/tree_generator/target.gz +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio/validator.py +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio.egg-info/SOURCES.txt +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio.egg-info/dependency_links.txt +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio.egg-info/entry_points.txt +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio.egg-info/requires.txt +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/proof_of_portfolio.egg-info/top_level.txt +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/setup.cfg +0 -0
- {proof_of_portfolio-0.0.103 → proof_of_portfolio-0.0.105}/setup.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: proof-of-portfolio
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.105
|
4
4
|
Summary: Zero-Knowledge Proof framework for verifiable, private portfolio performance metrics
|
5
5
|
Author-email: "Inference Labs, Inc." <info@inferencelabs.com>
|
6
6
|
Requires-Python: >=3.10
|
@@ -1,2 +1,2 @@
|
|
1
1
|
# This file is auto-generated during build
|
2
|
-
__version__ = "0.0.
|
2
|
+
__version__ = "0.0.105"
|
@@ -18,8 +18,8 @@ pub fn omega(
|
|
18
18
|
if use_weighting {
|
19
19
|
let mut product_sum_positive: i64 = 0;
|
20
20
|
let mut product_sum_negative: i64 = 0;
|
21
|
-
let mut
|
22
|
-
let mut
|
21
|
+
let mut sum_weights_positive_raw: i64 = 0;
|
22
|
+
let mut sum_weights_negative_raw: i64 = 0;
|
23
23
|
|
24
24
|
for i in 0..ARRAY_SIZE {
|
25
25
|
if (i as u32) < actual_len {
|
@@ -27,31 +27,44 @@ pub fn omega(
|
|
27
27
|
let log_return = log_returns[i];
|
28
28
|
if log_return > 0 {
|
29
29
|
product_sum_positive += log_return * weight;
|
30
|
-
|
30
|
+
sum_weights_positive_raw += weight;
|
31
31
|
} else {
|
32
32
|
product_sum_negative += log_return * weight;
|
33
|
-
|
33
|
+
sum_weights_negative_raw += weight;
|
34
34
|
}
|
35
35
|
}
|
36
36
|
}
|
37
37
|
|
38
|
-
|
39
|
-
|
38
|
+
// Apply max with omega_loss_min like in Python reference
|
39
|
+
let sum_weights_positive = if sum_weights_positive_raw >= omega_loss_min {
|
40
|
+
sum_weights_positive_raw
|
40
41
|
} else {
|
41
|
-
|
42
|
+
omega_loss_min
|
42
43
|
};
|
43
|
-
let
|
44
|
-
|
44
|
+
let sum_weights_negative = if sum_weights_negative_raw >= omega_loss_min {
|
45
|
+
sum_weights_negative_raw
|
45
46
|
} else {
|
46
|
-
|
47
|
+
omega_loss_min
|
47
48
|
};
|
48
49
|
|
49
|
-
|
50
|
-
|
50
|
+
// Apply cross-multiplication with scaling to prevent overflow
|
51
|
+
// Scale down both factors before multiplication, then scale back up
|
52
|
+
let scale_down = SCALE / 1000; // Scale down by 1000 to prevent overflow
|
53
|
+
let product_sum_positive_scaled = product_sum_positive / scale_down;
|
54
|
+
let product_sum_negative_scaled = product_sum_negative / scale_down;
|
55
|
+
|
56
|
+
let positive_sum_weighted = product_sum_positive_scaled * sum_weights_negative;
|
57
|
+
let negative_sum_weighted = product_sum_negative_scaled * sum_weights_positive;
|
58
|
+
|
59
|
+
let effective_denominator = if (-negative_sum_weighted) >= (omega_loss_min / scale_down) {
|
60
|
+
-negative_sum_weighted
|
51
61
|
} else {
|
52
|
-
omega_loss_min
|
62
|
+
omega_loss_min / scale_down
|
53
63
|
};
|
54
|
-
|
64
|
+
|
65
|
+
// Apply scale_down correction to RATIO_SCALE_FACTOR
|
66
|
+
let adjusted_ratio_scale = RATIO_SCALE_FACTOR * scale_down;
|
67
|
+
(positive_sum_weighted * adjusted_ratio_scale) / effective_denominator
|
55
68
|
} else {
|
56
69
|
let mut positive_sum: i64 = 0;
|
57
70
|
let mut negative_sum: i64 = 0;
|