18
18
Integer ,
19
19
UnsignedInteger ,
20
20
)
21
+ from nada_algebra .types import Rational , SecretRational
22
+
23
+ _NadaOperand = Union [
24
+ "NadaArray" ,
25
+ np .ndarray ,
26
+ int ,
27
+ Integer ,
28
+ UnsignedInteger ,
29
+ SecretInteger ,
30
+ SecretUnsignedInteger ,
31
+ PublicInteger ,
32
+ PublicUnsignedInteger ,
33
+ Rational ,
34
+ SecretRational ,
35
+ ]
21
36
22
37
23
38
@dataclass
@@ -100,26 +115,12 @@ def __setitem__(self, key, value):
100
115
else :
101
116
self .inner [key ] = value
102
117
103
- def __add__ (
104
- self ,
105
- other : Union [
106
- "NadaArray" ,
107
- np .ndarray ,
108
- int ,
109
- Integer ,
110
- UnsignedInteger ,
111
- SecretInteger ,
112
- SecretUnsignedInteger ,
113
- PublicInteger ,
114
- PublicUnsignedInteger ,
115
- ],
116
- ) -> "NadaArray" :
118
+ def __add__ (self , other : _NadaOperand ) -> "NadaArray" :
117
119
"""
118
120
Perform element-wise addition with broadcasting.
119
121
120
122
Args:
121
- other (Union[NadaArray, np.ndarray, int, Integer, UnsignedInteger, SecretInteger,
122
- SecretUnsignedInteger, PublicInteger, PublicUnsignedInteger]): The object to add.
123
+ other (_NadaOperand): The object to add.
123
124
124
125
Returns:
125
126
NadaArray: A new NadaArray representing the element-wise addition result.
@@ -130,28 +131,12 @@ def __add__(
130
131
return NadaArray (self .inner + Integer (other ))
131
132
return NadaArray (self .inner + other )
132
133
133
- def __sub__ (
134
- self ,
135
- other : Union [
136
- "NadaArray" ,
137
- np .ndarray ,
138
- int ,
139
- Integer ,
140
- UnsignedInteger ,
141
- SecretInteger ,
142
- SecretUnsignedInteger ,
143
- PublicInteger ,
144
- PublicUnsignedInteger ,
145
- ],
146
- ) -> "NadaArray" :
134
+ def __sub__ (self , other : _NadaOperand ) -> "NadaArray" :
147
135
"""
148
136
Perform element-wise subtraction with broadcasting.
149
137
150
138
Args:
151
- other (Union[NadaArray, np.ndarray, int,
152
- Integer, UnsignedInteger, SecretInteger,
153
- SecretUnsignedInteger, PublicInteger,
154
- PublicUnsignedInteger]): The object to subtract.
139
+ other (_NadaOperand): The object to subtract.
155
140
156
141
Returns:
157
142
NadaArray: A new NadaArray representing the element-wise subtraction result.
@@ -162,28 +147,12 @@ def __sub__(
162
147
return NadaArray (self .inner - Integer (other ))
163
148
return NadaArray (self .inner - other )
164
149
165
- def __mul__ (
166
- self ,
167
- other : Union [
168
- "NadaArray" ,
169
- np .ndarray ,
170
- int ,
171
- Integer ,
172
- UnsignedInteger ,
173
- SecretInteger ,
174
- SecretUnsignedInteger ,
175
- PublicInteger ,
176
- PublicUnsignedInteger ,
177
- ],
178
- ) -> "NadaArray" :
150
+ def __mul__ (self , other : _NadaOperand ) -> "NadaArray" :
179
151
"""
180
152
Perform element-wise multiplication with broadcasting.
181
153
182
154
Args:
183
- other (Union[NadaArray, np.ndarray, int,
184
- Integer, UnsignedInteger, SecretInteger,
185
- SecretUnsignedInteger, PublicInteger,
186
- PublicUnsignedInteger]): The object to multiply.
155
+ other (_NadaOperand): The object to multiply.
187
156
188
157
Returns:
189
158
NadaArray: A new NadaArray representing the element-wise multiplication result.
@@ -194,26 +163,12 @@ def __mul__(
194
163
return NadaArray (self .inner * Integer (other ))
195
164
return NadaArray (self .inner * other )
196
165
197
- def __truediv__ (
198
- self ,
199
- other : Union [
200
- "NadaArray" ,
201
- np .ndarray ,
202
- int ,
203
- Integer ,
204
- UnsignedInteger ,
205
- SecretInteger ,
206
- SecretUnsignedInteger ,
207
- PublicInteger ,
208
- PublicUnsignedInteger ,
209
- ],
210
- ) -> "NadaArray" :
166
+ def __truediv__ (self , other : _NadaOperand ) -> "NadaArray" :
211
167
"""
212
168
Perform element-wise division with broadcasting.
213
169
214
170
Args:
215
- other (Union[NadaArray, np.ndarray, int, Integer, UnsignedInteger, SecretInteger,
216
- SecretUnsignedInteger, PublicInteger, PublicUnsignedInteger]): The object to divide.
171
+ other (_NadaOperand): The object to divide.
217
172
218
173
Returns:
219
174
NadaArray: A new NadaArray representing the element-wise division result.
0 commit comments