@@ -2,7 +2,7 @@ use ark_ff::PrimeField;
2
2
use ark_r1cs_std:: {
3
3
alloc:: AllocVar ,
4
4
eq:: EqGadget ,
5
- fields:: { nonnative :: NonNativeFieldVar , FieldVar } ,
5
+ fields:: { emulated_fp :: EmulatedFpVar , FieldVar } ,
6
6
} ;
7
7
use ark_relations:: {
8
8
ns,
@@ -26,20 +26,18 @@ fn get_density<BaseField: PrimeField>(cs: &ConstraintSystemRef<BaseField>) -> us
26
26
}
27
27
}
28
28
29
- fn allocation < TargetField : PrimeField , BaseField : PrimeField , R : RngCore > (
29
+ fn allocation < TargetF : PrimeField , BaseField : PrimeField , R : RngCore > (
30
30
cs : ConstraintSystemRef < BaseField > ,
31
31
rng : & mut R ,
32
32
) -> ( usize , usize ) {
33
- let a_native = TargetField :: rand ( rng) ;
33
+ let a_native = TargetF :: rand ( rng) ;
34
34
35
35
let constraints_before = cs. num_constraints ( ) ;
36
36
let nonzeros_before = get_density ( & cs) ;
37
37
38
38
// There will be a check that ensures it has the reasonable number of bits
39
- let _ = NonNativeFieldVar :: < TargetField , BaseField > :: new_witness ( ns ! ( cs, "alloc a" ) , || {
40
- Ok ( a_native)
41
- } )
42
- . unwrap ( ) ;
39
+ let _ = EmulatedFpVar :: < TargetF , BaseField > :: new_witness ( ns ! ( cs, "alloc a" ) , || Ok ( a_native) )
40
+ . unwrap ( ) ;
43
41
44
42
let constraints_after = cs. num_constraints ( ) ;
45
43
let nonzeros_after = get_density ( & cs) ;
@@ -50,21 +48,17 @@ fn allocation<TargetField: PrimeField, BaseField: PrimeField, R: RngCore>(
50
48
) ;
51
49
}
52
50
53
- fn addition < TargetField : PrimeField , BaseField : PrimeField , R : RngCore > (
51
+ fn addition < TargetF : PrimeField , BaseField : PrimeField , R : RngCore > (
54
52
cs : ConstraintSystemRef < BaseField > ,
55
53
rng : & mut R ,
56
54
) -> ( usize , usize ) {
57
- let a_native = TargetField :: rand ( rng) ;
58
- let a = NonNativeFieldVar :: < TargetField , BaseField > :: new_witness ( ns ! ( cs, "alloc a" ) , || {
59
- Ok ( a_native)
60
- } )
61
- . unwrap ( ) ;
62
-
63
- let b_native = TargetField :: rand ( rng) ;
64
- let b = NonNativeFieldVar :: < TargetField , BaseField > :: new_witness ( ns ! ( cs, "alloc b" ) , || {
65
- Ok ( b_native)
66
- } )
67
- . unwrap ( ) ;
55
+ let a_native = TargetF :: rand ( rng) ;
56
+ let a = EmulatedFpVar :: < TargetF , BaseField > :: new_witness ( ns ! ( cs, "alloc a" ) , || Ok ( a_native) )
57
+ . unwrap ( ) ;
58
+
59
+ let b_native = TargetF :: rand ( rng) ;
60
+ let b = EmulatedFpVar :: < TargetF , BaseField > :: new_witness ( ns ! ( cs, "alloc b" ) , || Ok ( b_native) )
61
+ . unwrap ( ) ;
68
62
69
63
let constraints_before = cs. num_constraints ( ) ;
70
64
let nonzeros_before = get_density ( & cs) ;
@@ -80,19 +74,15 @@ fn addition<TargetField: PrimeField, BaseField: PrimeField, R: RngCore>(
80
74
) ;
81
75
}
82
76
83
- fn equality < TargetField : PrimeField , BaseField : PrimeField , R : RngCore > (
77
+ fn equality < TargetF : PrimeField , BaseField : PrimeField , R : RngCore > (
84
78
cs : ConstraintSystemRef < BaseField > ,
85
79
rng : & mut R ,
86
80
) -> ( usize , usize ) {
87
- let a_native = TargetField :: rand ( rng) ;
88
- let a1 = NonNativeFieldVar :: < TargetField , BaseField > :: new_witness ( ns ! ( cs, "alloc a1" ) , || {
89
- Ok ( a_native)
90
- } )
91
- . unwrap ( ) ;
92
- let a2 = NonNativeFieldVar :: < TargetField , BaseField > :: new_witness ( ns ! ( cs, "alloc a2" ) , || {
93
- Ok ( a_native)
94
- } )
95
- . unwrap ( ) ;
81
+ let a_native = TargetF :: rand ( rng) ;
82
+ let a1 = EmulatedFpVar :: < TargetF , BaseField > :: new_witness ( ns ! ( cs, "alloc a1" ) , || Ok ( a_native) )
83
+ . unwrap ( ) ;
84
+ let a2 = EmulatedFpVar :: < TargetF , BaseField > :: new_witness ( ns ! ( cs, "alloc a2" ) , || Ok ( a_native) )
85
+ . unwrap ( ) ;
96
86
97
87
let constraints_before = cs. num_constraints ( ) ;
98
88
let nonzeros_before = get_density ( & cs) ;
@@ -108,21 +98,17 @@ fn equality<TargetField: PrimeField, BaseField: PrimeField, R: RngCore>(
108
98
) ;
109
99
}
110
100
111
- fn multiplication < TargetField : PrimeField , BaseField : PrimeField , R : RngCore > (
101
+ fn multiplication < TargetF : PrimeField , BaseField : PrimeField , R : RngCore > (
112
102
cs : ConstraintSystemRef < BaseField > ,
113
103
rng : & mut R ,
114
104
) -> ( usize , usize ) {
115
- let a_native = TargetField :: rand ( rng) ;
116
- let a = NonNativeFieldVar :: < TargetField , BaseField > :: new_witness ( ns ! ( cs, "initial a" ) , || {
117
- Ok ( a_native)
118
- } )
119
- . unwrap ( ) ;
120
-
121
- let b_native = TargetField :: rand ( rng) ;
122
- let b = NonNativeFieldVar :: < TargetField , BaseField > :: new_witness ( ns ! ( cs, "initial b" ) , || {
123
- Ok ( b_native)
124
- } )
125
- . unwrap ( ) ;
105
+ let a_native = TargetF :: rand ( rng) ;
106
+ let a = EmulatedFpVar :: < TargetF , BaseField > :: new_witness ( ns ! ( cs, "initial a" ) , || Ok ( a_native) )
107
+ . unwrap ( ) ;
108
+
109
+ let b_native = TargetF :: rand ( rng) ;
110
+ let b = EmulatedFpVar :: < TargetF , BaseField > :: new_witness ( ns ! ( cs, "initial b" ) , || Ok ( b_native) )
111
+ . unwrap ( ) ;
126
112
127
113
let constraints_before = cs. num_constraints ( ) ;
128
114
let nonzeros_before = get_density ( & cs) ;
@@ -138,15 +124,13 @@ fn multiplication<TargetField: PrimeField, BaseField: PrimeField, R: RngCore>(
138
124
) ;
139
125
}
140
126
141
- fn inverse < TargetField : PrimeField , BaseField : PrimeField , R : RngCore > (
127
+ fn inverse < TargetF : PrimeField , BaseField : PrimeField , R : RngCore > (
142
128
cs : ConstraintSystemRef < BaseField > ,
143
129
rng : & mut R ,
144
130
) -> ( usize , usize ) {
145
- let num_native = TargetField :: rand ( rng) ;
146
- let num = NonNativeFieldVar :: < TargetField , BaseField > :: new_witness ( ns ! ( cs, "alloc" ) , || {
147
- Ok ( num_native)
148
- } )
149
- . unwrap ( ) ;
131
+ let num_native = TargetF :: rand ( rng) ;
132
+ let num = EmulatedFpVar :: < TargetF , BaseField > :: new_witness ( ns ! ( cs, "alloc" ) , || Ok ( num_native) )
133
+ . unwrap ( ) ;
150
134
151
135
let constraints_before = cs. num_constraints ( ) ;
152
136
let nonzeros_before = get_density ( & cs) ;
0 commit comments