File tree Expand file tree Collapse file tree 4 files changed +9
-15
lines changed Expand file tree Collapse file tree 4 files changed +9
-15
lines changed Original file line number Diff line number Diff line change @@ -912,8 +912,8 @@ impl Value {
912
912
/// Decode the `bits` of the value
913
913
pub fn unbits ( & self , env : & Uiua ) -> UiuaResult < Value > {
914
914
match self {
915
- Value :: Byte ( n) => n. inverse_bits ( env) ,
916
- Value :: Num ( n) => n. inverse_bits ( env) ,
915
+ Value :: Byte ( n) => n. un_bits ( env) ,
916
+ Value :: Num ( n) => n. un_bits ( env) ,
917
917
_ => Err ( env. error ( "Argument to inverse_bits must be an array of integers" ) ) ,
918
918
}
919
919
}
@@ -997,7 +997,7 @@ where
997
997
Array < T > : Into < Value > ,
998
998
{
999
999
/// Decode the `bits` of the array
1000
- pub fn inverse_bits ( & self , env : & Uiua ) -> UiuaResult < Value > {
1000
+ pub fn un_bits ( & self , env : & Uiua ) -> UiuaResult < Value > {
1001
1001
for & n in & self . data {
1002
1002
if !n. is_int ( ) {
1003
1003
return Err ( env. error ( format ! (
Original file line number Diff line number Diff line change @@ -110,16 +110,7 @@ impl Complex {
110
110
pub fn powc ( self , power : impl Into < Self > ) -> Self {
111
111
let power = power. into ( ) ;
112
112
if power. im == 0.0 {
113
- if self . im == 0.0 {
114
- return if self . re >= 0.0 {
115
- Self :: new ( self . re . powf ( power. re ) , 0.0 )
116
- } else {
117
- Self :: new ( 0.0 , self . re . abs ( ) . powf ( power. re ) )
118
- } ;
119
- }
120
- if power. re == 0.0 {
121
- return Self :: ONE ;
122
- }
113
+ return self . powf ( power. re ) ;
123
114
}
124
115
let ( r, theta) = self . to_polar ( ) ;
125
116
( ( r. ln ( ) + Self :: I * theta) * power) . exp ( )
@@ -129,8 +120,8 @@ impl Complex {
129
120
if power == 0.0 {
130
121
return Self :: ONE ;
131
122
}
132
- if power. fract ( ) == 0.0 {
133
- return Self :: new ( self . re . powf ( power) , self . im . powf ( power ) ) ;
123
+ if power. fract ( ) == 0.0 && self . im == 0.0 {
124
+ return self . re . powf ( power) . into ( ) ;
134
125
}
135
126
let ( r, theta) = self . to_polar ( ) ;
136
127
Self :: from_polar ( r. powf ( power) , theta * power)
Original file line number Diff line number Diff line change @@ -389,6 +389,7 @@ impl Value {
389
389
pub fn undo_fix ( & mut self ) {
390
390
unsafe { self . repr_mut ( ) } . arr . undo_fix ( ) ;
391
391
}
392
+ #[ track_caller]
392
393
pub ( crate ) fn validate_shape ( & self ) {
393
394
let repr = unsafe { self . repr ( ) } ;
394
395
validate_shape ( & repr. arr . shape , repr. arr . data . len ( ) ) ;
Original file line number Diff line number Diff line change 1
1
# Uiua Todo
2
2
3
3
- 0.12
4
+ - Optimize ` indexof ` allocation
5
+ - Stack visualization output comments
4
6
- Stack-source locality tutorial
5
7
- Axis swizzles?
6
8
- Rewrite .uasm format
You can’t perform that action at this time.
0 commit comments