Skip to content

Commit a282f9e

Browse files
committed
add get_native_int
1 parent bc86941 commit a282f9e

8 files changed

+40
-11
lines changed

.github/workflows/ci.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,15 @@ jobs:
5454
- run: julia -e 'using InteractiveUtils; versioninfo(verbose=true)'
5555
- uses: julia-actions/cache@v2
5656
- uses: julia-actions/julia-buildpkg@v1
57-
- name: Run tests for NATIVEINT=64 (default)
57+
- name: Run tests for native_int=64 (default)
5858
uses: julia-actions/julia-runtest@v1
59-
- name: Set NATIVEINT=128
59+
- name: Set native_int=128
6060
run: |
6161
using Preferences: set_preferences!
6262
using UUIDs: UUID
6363
set_preferences!(UUID("77ce9b8e-ecf5-45d1-bd8a-d31f384f2f95"), "native_int" => 128; force=true)
6464
shell: julia --project=. --color=yes {0}
65-
- name: Run tests for NATIVEINT=128
65+
- name: Run tests for native_int=128
6666
uses: julia-actions/julia-runtest@v1
6767
- uses: julia-actions/julia-processcoverage@v1
6868
with:

Project.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,6 @@ openfhe_julia_jll = "e5e97983-1b8c-50fe-92b7-0e05c8c202e2"
1414
CxxWrap = "0.16"
1515
Preferences = "1.4"
1616
UUIDs = "1"
17-
openfhe_julia_jll = "0.3.8"
18-
openfhe_julia_int128_jll = "0.3.8"
17+
openfhe_julia_jll = "0.3.9"
18+
openfhe_julia_int128_jll = "0.3.9"
1919
julia = "1.10"

examples/simple_ckks_bootstrapping.jl

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ rescale_technique = FLEXIBLEAUTO
1212
dcrt_bits = 59;
1313
first_modulus = 60;
1414

15-
if NATIVEINT == 128
15+
if get_native_int() == 128
1616
rescale_technique = FIXEDAUTO;
1717
dcrt_bits = 78;
1818
first_modulus = 89;

src/OpenFHE.jl

+2-3
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ else
2424
else
2525
throw(ErrorException("Unsupported value `native_int` = '$native_int' loaded from LocalPreferences.toml (must be `64` or `128`)"))
2626
end
27-
const NATIVEINT = native_int
2827
const libopenfhe_julia_path = libopenfhe_julia
2928
end
3029
@wrapmodule(() -> libopenfhe_julia_path)
@@ -115,8 +114,8 @@ export SecretKeyDist, GAUSSIAN, UNIFORM_TERNARY, SPARSE_TERNARY
115114
export SecurityLevel, HEStd_128_classic, HEStd_192_classic, HEStd_256_classic,
116115
HEStd_128_quantum, HEStd_192_quantum, HEStd_256_quantum, HEStd_NotSet
117116

118-
# NATIVEINT
119-
export NATIVEINT
117+
# native_int
118+
export get_native_int
120119

121120

122121
include("auxiliary.jl")

src/auxiliary.jl

+2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ end
2424
2525
Set the native integer size for an OpenFHE-julia installation, it can be `64` or `128` bits.
2626
Restart the Julia session after executing this function such that the changes take effect.
27+
28+
See also: [`get_native_int`](@ref)
2729
"""
2830
function set_native_int!(native_int::Integer = 64; force = true)
2931
if native_int != 64 && native_int != 128

src/documentation.jl

+9
Original file line numberDiff line numberDiff line change
@@ -1155,3 +1155,12 @@ Return the private key from a `key_pair`.
11551155
See also: [`KeyPair`](@ref), [`public_key`](@ref)
11561156
"""
11571157
private_key
1158+
1159+
"""
1160+
get_native_int()
1161+
1162+
Return the native integer size for an OpenFHE-julia installation, it can be `64` or `128` bits.
1163+
1164+
See also: [` OpenFHE.set_native_int!`](@ref)
1165+
"""
1166+
get_native_int

test/test_auxiliary.jl

+5-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ module TestAuxiliary
33
using Test
44
using OpenFHE
55

6-
println("Tests for NATIVEINT = $NATIVEINT")
6+
println("Tests for native_int = $(get_native_int())")
77

88
@testset verbose=true showtiming=true "test_auxiliary.jl" begin
99

@@ -19,9 +19,13 @@ end
1919

2020
@testset verbose=true showtiming=true "set_native_int!" begin
2121
msg = "[ Info: Please restart Julia and reload OpenFHE.jl for the library changes to take effect\n"
22+
# remember initial native integer size
23+
native_int = get_native_int()
2224
@test_warn msg OpenFHE.set_native_int!()
2325
@test_warn msg OpenFHE.set_native_int!(128)
2426
@test_throws ArgumentError OpenFHE.set_native_int!(129)
27+
# return to initial native integer size
28+
@test_warn msg OpenFHE.set_native_int!(native_int)
2529
end
2630

2731
end # @testset "test_auxiliary.jl"

test/test_ckks.jl

+16-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ using OpenFHE
77

88
multDepth = 1
99
scaleModSize = 50
10+
scaleModSize_int128 = 71
1011
batchSize = 8
1112

1213
@testset verbose=true showtiming=true "CCParams" begin
@@ -18,9 +19,23 @@ batchSize = 8
1819
@test_nowarn SetBatchSize(parameters, batchSize)
1920
end
2021

22+
@testset verbose=true showtiming=true "get_native_int" begin
23+
parameters = CCParams{CryptoContextCKKSRNS}()
24+
@test_nowarn SetScalingModSize(parameters, scaleModSize_int128)
25+
if get_native_int() == 128
26+
@test_nowarn GenCryptoContext(parameters)
27+
elseif get_native_int() == 64
28+
@test_throws "" GenCryptoContext(parameters)
29+
end
30+
end
31+
2132
parameters = CCParams{CryptoContextCKKSRNS}()
2233
SetMultiplicativeDepth(parameters, multDepth)
23-
SetScalingModSize(parameters, scaleModSize)
34+
if get_native_int() == 128
35+
SetScalingModSize(parameters, scaleModSize_int128)
36+
elseif get_native_int() == 64
37+
SetScalingModSize(parameters, scaleModSize)
38+
end
2439
SetBatchSize(parameters, batchSize)
2540

2641
@testset verbose=true showtiming=true "CryptoContext" begin

0 commit comments

Comments
 (0)