Last active
January 15, 2023 11:35
-
-
Save skleinbo/b25e10ffeef086b88ebb1f1c2c545d5d to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## Defines a plane in three dimensional Euclidean space | |
## given by the origin `p`, and three vectors `u,v` in the plane | |
## and `w` perpendicular to it. | |
## `u,v,w` are not independent, but filled in by the constructors. | |
import Base: ==, isvalid | |
import LinearAlgebra: dot, norm | |
struct Plane{T} | |
p::T | |
u::T | |
v::T | |
w::T | |
end | |
function isvalid(P::Plane) | |
if norm(P.u)≉ 1.0 || norm(P.v)≉ 1.0 || norm(P.w)≉ 1.0 || dot(P.u,P.w)≉ 0 || dot(P.v,P.w)≉ 0 || | |
P.u == P.v || P.u == -P.v | |
return false | |
end | |
return true | |
end | |
function isvalid2(P::Plane) | |
if norm(P.u)≉ 1.0 || norm(P.v)≉ 1.0 || norm(P.w)≉ 1.0 | |
return false | |
end | |
return true | |
end | |
function isvalid3(P::Plane) | |
if norm(P.u)≉ 1.0 || norm(P.w)≉ 1.0 || dot(P.u,P.w)≉ 0.0 | |
return false | |
end | |
return true | |
end | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using Test | |
import LinearAlgebra: cross, dot, normalize | |
import StaticArrays: SVector, @SVector | |
include("Geometry.jl") | |
@testset "Plane" begin | |
# StaticArrays | |
# isvalid, isvalid3 fail with -O2 | |
# but pass with -O1 | |
p = @SVector [0.0,0.0,0.0] | |
u = normalize(@SVector [1,1,1]) | |
v = (@SVector [1,2,1]) | |
v = normalize(v - dot(u,v)*u) | |
w = cross(u,v) | |
P = Plane(p,u,v,w) | |
@test isvalid(P) | |
@test isvalid2(P) | |
@test isvalid3(P) | |
# Normal arrays | |
# all tests pass | |
p = [0.0,0.0,0.0] | |
u = normalize([1,1,1]) | |
v = ([1,2,1]) | |
v = normalize(v - dot(u,v)*u) | |
w = cross(u,v) | |
P = Plane(p,u,v,w) | |
@test isvalid(P) | |
@test isvalid2(P) | |
@test isvalid3(P) | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This file is machine-generated - editing it directly is not advised | |
julia_version = "1.9.0-beta2" | |
manifest_format = "2.0" | |
project_hash = "b418e8fdc671f400dac1e688699d216d1ba0f0a3" | |
[[deps.ArgTools]] | |
uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" | |
version = "1.1.1" | |
[[deps.Artifacts]] | |
uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" | |
[[deps.Base64]] | |
uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" | |
[[deps.CompilerSupportLibraries_jll]] | |
deps = ["Artifacts", "Libdl"] | |
uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" | |
version = "1.0.2+0" | |
[[deps.Dates]] | |
deps = ["Printf"] | |
uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" | |
[[deps.Downloads]] | |
deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] | |
uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" | |
version = "1.6.0" | |
[[deps.FileWatching]] | |
uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" | |
[[deps.InteractiveUtils]] | |
deps = ["Markdown"] | |
uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" | |
[[deps.LibCURL]] | |
deps = ["LibCURL_jll", "MozillaCACerts_jll"] | |
uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" | |
version = "0.6.3" | |
[[deps.LibCURL_jll]] | |
deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] | |
uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" | |
version = "7.84.0+0" | |
[[deps.LibGit2]] | |
deps = ["Base64", "NetworkOptions", "Printf", "SHA"] | |
uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" | |
[[deps.LibSSH2_jll]] | |
deps = ["Artifacts", "Libdl", "MbedTLS_jll"] | |
uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" | |
version = "1.10.2+0" | |
[[deps.Libdl]] | |
uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" | |
[[deps.LinearAlgebra]] | |
deps = ["Libdl", "OpenBLAS_jll", "libblastrampoline_jll"] | |
uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" | |
[[deps.Logging]] | |
uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" | |
[[deps.Markdown]] | |
deps = ["Base64"] | |
uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" | |
[[deps.MbedTLS_jll]] | |
deps = ["Artifacts", "Libdl"] | |
uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" | |
version = "2.28.0+0" | |
[[deps.MozillaCACerts_jll]] | |
uuid = "14a3606d-f60d-562e-9121-12d972cd8159" | |
version = "2022.10.11" | |
[[deps.NetworkOptions]] | |
uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" | |
version = "1.2.0" | |
[[deps.OpenBLAS_jll]] | |
deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] | |
uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" | |
version = "0.3.21+0" | |
[[deps.Pkg]] | |
deps = ["Artifacts", "Dates", "Downloads", "FileWatching", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] | |
uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" | |
version = "1.8.0" | |
[[deps.Printf]] | |
deps = ["Unicode"] | |
uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" | |
[[deps.REPL]] | |
deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] | |
uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" | |
[[deps.Random]] | |
deps = ["SHA", "Serialization"] | |
uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" | |
[[deps.SHA]] | |
uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" | |
version = "0.7.0" | |
[[deps.Serialization]] | |
uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" | |
[[deps.Sockets]] | |
uuid = "6462fe0b-24de-5631-8697-dd941f90decc" | |
[[deps.SparseArrays]] | |
deps = ["Libdl", "LinearAlgebra", "Random", "Serialization", "SuiteSparse_jll"] | |
uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" | |
[[deps.StaticArrays]] | |
deps = ["LinearAlgebra", "Random", "StaticArraysCore", "Statistics"] | |
git-tree-sha1 = "6954a456979f23d05085727adb17c4551c19ecd1" | |
uuid = "90137ffa-7385-5640-81b9-e52037218182" | |
version = "1.5.12" | |
[[deps.StaticArraysCore]] | |
git-tree-sha1 = "6b7ba252635a5eff6a0b0664a41ee140a1c9e72a" | |
uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" | |
version = "1.4.0" | |
[[deps.Statistics]] | |
deps = ["LinearAlgebra", "SparseArrays"] | |
uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" | |
version = "1.9.0" | |
[[deps.SuiteSparse_jll]] | |
deps = ["Artifacts", "Libdl", "Pkg", "libblastrampoline_jll"] | |
uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" | |
version = "5.10.1+0" | |
[[deps.TOML]] | |
deps = ["Dates"] | |
uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" | |
version = "1.0.3" | |
[[deps.Tar]] | |
deps = ["ArgTools", "SHA"] | |
uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" | |
version = "1.10.0" | |
[[deps.Test]] | |
deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] | |
uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" | |
[[deps.UUIDs]] | |
deps = ["Random", "SHA"] | |
uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" | |
[[deps.Unicode]] | |
uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" | |
[[deps.Zlib_jll]] | |
deps = ["Libdl"] | |
uuid = "83775a58-1f1d-513f-b197-d71354ab007a" | |
version = "1.2.13+0" | |
[[deps.libblastrampoline_jll]] | |
deps = ["Artifacts", "Libdl"] | |
uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" | |
version = "5.2.0+0" | |
[[deps.nghttp2_jll]] | |
deps = ["Artifacts", "Libdl"] | |
uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" | |
version = "1.48.0+0" | |
[[deps.p7zip_jll]] | |
deps = ["Artifacts", "Libdl"] | |
uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" | |
version = "17.4.0+0" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[deps] | |
LinearAlgebra = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" | |
StaticArrays = "90137ffa-7385-5640-81b9-e52037218182" | |
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
if [[ -z $1 ]] | |
then | |
JULIA="julia" | |
else | |
JULIA=$1 | |
fi | |
echo 'Running tests with -O1' | |
$JULIA --project=. -O1 geometrytests.jl | |
echo "=============" | |
echo 'Running tests with -O2' | |
$JULIA --project=. -O2 geometrytests.jl |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Julia Version 1.8.5 | |
Commit 17cfb8e65ea (2023-01-08 06:45 UTC) | |
Platform Info: | |
OS: macOS (x86_64-apple-darwin21.4.0) | |
CPU: 4 × Intel(R) Core(TM) i5-4670 CPU @ 3.40GHz | |
WORD_SIZE: 64 | |
LIBM: libopenlibm | |
LLVM: libLLVM-13.0.1 (ORCJIT, haswell) | |
Threads: 4 on 4 virtual cores | |
Environment: | |
JULIA_EDITOR = code | |
JULIA_NUM_THREADS = 4 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment