Skip to content

Commit 2ddf861

Browse files
authored
Add MKL 2025 compat, test with new Julia 1.10 LTS (#74)
* Add new MKL version, add Julia LTS for testing * Update tests to new LTS, increase compat to match * Add regular nightly test * Mild refactor
1 parent a7f9dfb commit 2ddf861

File tree

5 files changed

+129
-90
lines changed

5 files changed

+129
-90
lines changed

.github/workflows/main.yml

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,17 @@
11
name: julia
22
on:
3-
push:
4-
branches:
5-
- master
63
pull_request:
74

85
jobs:
9-
testMKLjl:
6+
test:
107
name: ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }}
118
runs-on: ${{ matrix.os }}
129
strategy:
1310
fail-fast: false
1411
matrix:
1512
version:
16-
- "1.6"
17-
- "1"
13+
- "1.11"
14+
- "1.10"
1815
os:
1916
- ubuntu-latest
2017
- macOS-latest
@@ -40,8 +37,9 @@ jobs:
4037
${{ runner.os }}-
4138
- uses: julia-actions/julia-buildpkg@latest
4239
- uses: julia-actions/julia-runtest@latest
43-
- uses: julia-actions/julia-processcoverage@v1
44-
- if: matrix.version == '1.8' && matrix.os == 'ubuntu-latest'
40+
- if: matrix.version == '1.10' && matrix.os == 'ubuntu-latest'
41+
uses: julia-actions/julia-processcoverage@v1
42+
- if: matrix.version == '1.10' && matrix.os == 'ubuntu-latest'
4543
uses: coverallsapp/github-action@master
4644
with:
4745
github-token: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/nightly.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: julia
2+
on:
3+
pull_request:
4+
schedule:
5+
- cron: "0 0 * * *" # Runs daily at midnight UTC
6+
7+
jobs:
8+
test:
9+
name: ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }}
10+
runs-on: ${{ matrix.os }}
11+
strategy:
12+
fail-fast: false
13+
matrix:
14+
version:
15+
- "nightly"
16+
os:
17+
- ubuntu-latest
18+
- macOS-latest
19+
- windows-latest
20+
arch:
21+
- x64
22+
steps:
23+
- uses: actions/checkout@v4
24+
- uses: julia-actions/setup-julia@latest
25+
with:
26+
version: ${{ matrix.version }}
27+
arch: ${{ matrix.arch }}
28+
- name: Cache artifacts
29+
uses: actions/cache@v4
30+
env:
31+
cache-name: cache-artifacts
32+
with:
33+
path: ~/.julia/artifacts
34+
key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}
35+
restore-keys: |
36+
${{ runner.os }}-test-${{ env.cache-name }}-
37+
${{ runner.os }}-test-
38+
${{ runner.os }}-
39+
- uses: julia-actions/julia-buildpkg@latest
40+
- uses: julia-actions/julia-runtest@latest

Project.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
name = "IntelVectorMath"
22
uuid = "c8ce9da6-5d36-5c03-b118-5a70151be7bc"
3-
version = "0.5.3"
3+
version = "0.5.4"
44

55
[deps]
66
MKL_jll = "856f044c-d86e-5d09-b602-aeab76dc8ba7"
77

88
[compat]
9-
julia = "1.6"
10-
MKL_jll = "2022, 2023.2, 2024"
9+
julia = "1.10"
10+
MKL_jll = "2022, 2023.2, 2024, 2025"
1111

1212
[extras]
1313
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

src/IntelVectorMath.jl

Lines changed: 1 addition & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -15,85 +15,7 @@ function __init__()
1515
end
1616
end
1717

18-
## list all functions
19-
# all functions that work for Floats and ComplexFloats
20-
unary_real_complex = (
21-
(:acos, :acos!, :Acos),
22-
(:asin, :asin!, :Asin),
23-
(:acosh, :acosh!, :Acosh),
24-
(:asinh, :asinh!, :Asinh),
25-
(:sqrt, :sqrt!, :Sqrt),
26-
(:exp, :exp!, :Exp),
27-
(:log, :log!, :Ln),
28-
)
29-
30-
binary_real_complex = (
31-
(:pow, :pow!, :Pow, true),
32-
(:divide, :divide!, :Div, true),
33-
)
34-
35-
# all functions that work for Floats only
36-
unary_real = (
37-
(:cbrt, :cbrt!, :Cbrt),
38-
(:expm1, :expm1!, :Expm1),
39-
(:log1p, :log1p!, :Log1p),
40-
(:log2, :log2!, :Log2),
41-
(:abs, :abs!, :Abs),
42-
(:abs2, :abs2!, :Sqr),
43-
(:ceil, :ceil!, :Ceil),
44-
(:floor, :floor!, :Floor),
45-
(:round, :round!, :Round),
46-
(:trunc, :trunc!, :Trunc),
47-
(:cospi, :cospi!, :Cospi),
48-
(:sinpi, :sinpi!, :Sinpi),
49-
(:tanpi, :tanpi!, :Tanpi),
50-
(:acospi, :acospi!, :Acospi),
51-
(:asinpi, :asinpi!, :Asinpi),
52-
(:atanpi, :atanpi!, :Atanpi),
53-
(:cosd, :cosd!, :Cosd),
54-
(:sind, :sind!, :Sind),
55-
(:tand, :tand!, :Tand),
56-
# Enabled only for Real. MKL guarantees higher accuracy, but at a
57-
# substantial performance cost.
58-
(:atan, :atan!, :Atan),
59-
(:cos, :cos!, :Cos),
60-
(:sin, :sin!, :Sin),
61-
(:tan, :tan!, :Tan),
62-
(:atanh, :atanh!, :Atanh),
63-
(:cosh, :cosh!, :Cosh),
64-
(:sinh, :sinh!, :Sinh),
65-
(:tanh, :tanh!, :Tanh),
66-
(:log10, :log10!, :Log10),
67-
# now in SpecialFunctions (make smart, maybe?)
68-
(:erf, :erf!, :Erf),
69-
(:erfc, :erfc!, :Erfc),
70-
(:erfinv, :erfinv!, :ErfInv),
71-
(:erfcinv, :erfcinv!, :ErfcInv),
72-
(:lgamma, :lgamma!, :LGamma),
73-
(:gamma, :gamma!, :TGamma),
74-
# Not in Base
75-
(:inv_cbrt, :inv_cbrt!, :InvCbrt),
76-
(:inv_sqrt, :inv_sqrt!, :InvSqrt),
77-
(:pow2o3, :pow2o3!, :Pow2o3),
78-
(:pow3o2, :pow3o2!, :Pow3o2),
79-
(:cdfnorm, :cdfnorm!, :CdfNorm),
80-
)
81-
82-
binary_real = (
83-
(:atan, :atan!, :Atan2, false),
84-
(:hypot, :hypot!, :Hypot, false),
85-
# Not in Base
86-
(:atanpi, :atanpi!, :Atan2pi, false),
87-
)
88-
89-
unary_complex_in = (
90-
(:abs, :abs!, :Abs),
91-
(:angle, :angle!, :Arg),
92-
)
93-
94-
unary_complex_inout = (
95-
(:conj, :conj!, :Conj),
96-
)
18+
include("function_list.jl")
9719

9820
## define functions from previous list for all eligible input types
9921

src/function_list.jl

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
## list all functions
2+
# all functions that work for Floats and ComplexFloats
3+
unary_real_complex = (
4+
(:acos, :acos!, :Acos),
5+
(:asin, :asin!, :Asin),
6+
(:acosh, :acosh!, :Acosh),
7+
(:asinh, :asinh!, :Asinh),
8+
(:sqrt, :sqrt!, :Sqrt),
9+
(:exp, :exp!, :Exp),
10+
(:log, :log!, :Ln),
11+
)
12+
13+
binary_real_complex = (
14+
(:pow, :pow!, :Pow, true),
15+
(:divide, :divide!, :Div, true),
16+
)
17+
18+
# all functions that work for Floats only
19+
unary_real = (
20+
(:cbrt, :cbrt!, :Cbrt),
21+
(:expm1, :expm1!, :Expm1),
22+
(:log1p, :log1p!, :Log1p),
23+
(:log2, :log2!, :Log2),
24+
(:abs, :abs!, :Abs),
25+
(:abs2, :abs2!, :Sqr),
26+
(:ceil, :ceil!, :Ceil),
27+
(:floor, :floor!, :Floor),
28+
(:round, :round!, :Round),
29+
(:trunc, :trunc!, :Trunc),
30+
(:cospi, :cospi!, :Cospi),
31+
(:sinpi, :sinpi!, :Sinpi),
32+
(:tanpi, :tanpi!, :Tanpi),
33+
(:acospi, :acospi!, :Acospi),
34+
(:asinpi, :asinpi!, :Asinpi),
35+
(:atanpi, :atanpi!, :Atanpi),
36+
(:cosd, :cosd!, :Cosd),
37+
(:sind, :sind!, :Sind),
38+
(:tand, :tand!, :Tand),
39+
# Enabled only for Real. MKL guarantees higher accuracy, but at a
40+
# substantial performance cost.
41+
(:atan, :atan!, :Atan),
42+
(:cos, :cos!, :Cos),
43+
(:sin, :sin!, :Sin),
44+
(:tan, :tan!, :Tan),
45+
(:atanh, :atanh!, :Atanh),
46+
(:cosh, :cosh!, :Cosh),
47+
(:sinh, :sinh!, :Sinh),
48+
(:tanh, :tanh!, :Tanh),
49+
(:log10, :log10!, :Log10),
50+
# now in SpecialFunctions (make smart, maybe?)
51+
(:erf, :erf!, :Erf),
52+
(:erfc, :erfc!, :Erfc),
53+
(:erfinv, :erfinv!, :ErfInv),
54+
(:erfcinv, :erfcinv!, :ErfcInv),
55+
(:lgamma, :lgamma!, :LGamma),
56+
(:gamma, :gamma!, :TGamma),
57+
# Not in Base
58+
(:inv_cbrt, :inv_cbrt!, :InvCbrt),
59+
(:inv_sqrt, :inv_sqrt!, :InvSqrt),
60+
(:pow2o3, :pow2o3!, :Pow2o3),
61+
(:pow3o2, :pow3o2!, :Pow3o2),
62+
(:cdfnorm, :cdfnorm!, :CdfNorm),
63+
)
64+
65+
binary_real = (
66+
(:atan, :atan!, :Atan2, false),
67+
(:hypot, :hypot!, :Hypot, false),
68+
# Not in Base
69+
(:atanpi, :atanpi!, :Atan2pi, false),
70+
)
71+
72+
unary_complex_in = (
73+
(:abs, :abs!, :Abs),
74+
(:angle, :angle!, :Arg),
75+
)
76+
77+
unary_complex_inout = (
78+
(:conj, :conj!, :Conj),
79+
)

0 commit comments

Comments
 (0)