Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
clean-platform
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
17
Issues
17
List
Boards
Labels
Service Desk
Milestones
Merge Requests
3
Merge Requests
3
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
clean-and-itasks
clean-platform
Commits
d0a38784
Commit
d0a38784
authored
Oct 23, 2019
by
Mart Lubbers
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
adapt ^ instance for Integer
parent
4f75fdde
Pipeline
#31795
failed with stage
in 2 minutes and 13 seconds
Changes
1
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
29 additions
and
7 deletions
+29
-7
src/libraries/OS-Independent/Data/Integer.icl
src/libraries/OS-Independent/Data/Integer.icl
+29
-7
No files found.
src/libraries/OS-Independent/Data/Integer.icl
View file @
d0a38784
...
...
@@ -42,16 +42,40 @@ where
instance
^
Integer
where
(^)
::
!
Integer
!
Integer
->
Integer
(^)
x
n
|
n
<
zero
=
abort
"^ (Integer) called with negative power argument"
=
pow
x
n
|
size
n
.
integer_a
==
0
|
n
.
integer_s
<=
0
|
n
.
integer_s
==
0
=
one
=
negative_power_error
=
pow
x
n
.
integer_s
|
n
.
integer_s
<
0
=
negative_power_error
|
size
x
.
integer_a
<>
0
||
x
.
integer_s
<
-1
||
x
.
integer_s
>
1
=
abort
"^ (Integer) overflow"
|
x
.
integer_s
==
1
=
one
|
x
.
integer_s
==
-1
|
n
.
integer_a
.[
0
]
bitand
1
==
0
=
one
=
~
one
=
zero
where
pow
::
!
Integer
!
Int
->
Integer
pow
a
b
|
b
==
zero
=
one
#
x
=
pow
a
(
b
/
toInteger
2
)
|
isEven
b
=
x
*
x
|
b
<=
2
|
b
==
2
=
a
*
a
=
a
#
x
=
pow
x
(
b
>>
1
)
|
b
bitand
1
==
0
=
x
*
x
=
a
*
x
*
x
negative_power_error
=
abort
"^ (Integer) called with negative power argument"
instance
isEven
Integer
where
isEven
{
integer_s
=
s
,
integer_a
=
a
}
...
...
@@ -102,8 +126,6 @@ instance rem Integer
where
(
rem
)
a
b
=
rem_integer
a
b
//instance ^ Integer
instance
==
Integer
where
(==)
{
integer_s
=
s1
,
integer_a
=
a1
}
{
integer_s
=
s2
,
integer_a
=
a2
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment