1
0
mirror of https://github.com/kalmarek/SmallHyperbolic synced 2024-07-27 21:10:31 +02:00

formatter

This commit is contained in:
kalmarek 2020-05-15 15:02:28 +02:00
parent d9bb982c84
commit b0941d17a8
No known key found for this signature in database
GPG Key ID: 8BF1A3855328FC15

View File

@ -1,13 +1,13 @@
Base.hash(a::acb, h::UInt) = h const libarb = Nemo.libarb
import Base.reim Base.hash(a::acb, h::UInt) = h
reim(x::Nemo.acb) = reim(convert(ComplexF64, x)) Base.reim(x::acb) = reim(convert(ComplexF64, x))
function root_of_unity(CC::AcbField, p, k = 1) function root_of_unity(CC::AcbField, p, k = 1)
@assert p > 0 @assert p > 0
res = zero(CC) res = zero(CC)
ccall( ccall(
(:acb_unit_root, Nemo.libarb), (:acb_unit_root, libarb),
Cvoid, Cvoid,
(Ref{acb}, Culong, Clong), (Ref{acb}, Culong, Clong),
res, res,
@ -21,7 +21,7 @@ import Base.adjoint
function Base.adjoint(m::acb_mat) function Base.adjoint(m::acb_mat)
res = zero(m) res = zero(m)
ccall( ccall(
(:acb_mat_conjugate_transpose, Nemo.libarb), (:acb_mat_conjugate_transpose, libarb),
Cvoid, Cvoid,
(Ref{acb_mat}, Ref{acb_mat}), (Ref{acb_mat}, Ref{acb_mat}),
res, res,
@ -38,7 +38,6 @@ rand(rng::AbstractRNG, rs::Random.SamplerTrivial{AcbField}) =
import Nemo.acb_struct import Nemo.acb_struct
const libarb = Nemo.libarb
mutable struct AcbVector <: AbstractVector{acb_struct} mutable struct AcbVector <: AbstractVector{acb_struct}
ptr::Ptr{acb_struct} ptr::Ptr{acb_struct}
@ -49,7 +48,7 @@ mutable struct AcbVector <: AbstractVector{acb_struct}
v = new( v = new(
ccall((:_acb_vec_init, libarb), Ptr{acb_struct}, (Clong,), n), ccall((:_acb_vec_init, libarb), Ptr{acb_struct}, (Clong,), n),
n, n,
precision precision,
) )
finalizer(clear!, v) finalizer(clear!, v)
return v return v
@ -78,13 +77,13 @@ end
_get_ptr(acb_v::AcbVector, i::Int = 1) = _get_ptr(acb_v::AcbVector, i::Int = 1) =
acb_v.ptr + (i - 1) * sizeof(acb_struct) acb_v.ptr + (i - 1) * sizeof(acb_struct)
function AcbVector(v::AbstractVector{Nemo.acb}, p = prec(parent(first(v)))) function AcbVector(v::AbstractVector{acb}, p = prec(parent(first(v))))
acb_v = AcbVector(length(v), p) acb_v = AcbVector(length(v), p)
for (i, val) in zip(eachindex(acb_v), v) for (i, val) in zip(eachindex(acb_v), v)
ccall( ccall(
(:acb_set, libarb), (:acb_set, libarb),
Cvoid, Cvoid,
(Ptr{acb_struct}, Ref{Nemo.acb}), (Ptr{acb_struct}, Ref{acb}),
_get_ptr(acb_v, i), _get_ptr(acb_v, i),
val, val,
) )
@ -94,7 +93,7 @@ end
function approx_eig_qr!(v::AcbVector, R::acb_mat, A::acb_mat) function approx_eig_qr!(v::AcbVector, R::acb_mat, A::acb_mat)
ccall( ccall(
(:acb_mat_approx_eig_qr, Nemo.libarb), (:acb_mat_approx_eig_qr, libarb),
Cint, Cint,
( (
Ptr{acb_struct}, Ptr{acb_struct},
@ -122,7 +121,7 @@ function (C::AcbField)(z::acb_struct)
return res return res
end end
function LinearAlgebra.eigvals(A::Nemo.acb_mat) function LinearAlgebra.eigvals(A::acb_mat)
n = nrows(A) n = nrows(A)
CC = base_ring(A) CC = base_ring(A)
p = prec(CC) p = prec(CC)
@ -132,7 +131,7 @@ function LinearAlgebra.eigvals(A::Nemo.acb_mat)
λ = AcbVector(n, p) λ = AcbVector(n, p)
b = ccall( b = ccall(
(:acb_mat_eig_multiple, Nemo.libarb), (:acb_mat_eig_multiple, libarb),
Cint, Cint,
(Ptr{acb_struct}, Ref{acb_mat}, Ptr{acb_struct}, Ref{acb_mat}, Int), (Ptr{acb_struct}, Ref{acb_mat}, Ptr{acb_struct}, Ref{acb_mat}, Int),
λ, λ,
@ -158,5 +157,9 @@ function _count_multiplicites(evs)
push!(λ_m, (evs[i], m)) push!(λ_m, (evs[i], m))
i += m i += m
end end
return sort(λ_m, lt=(a,b)->(real(first(a))<real(first(b))), rev=true) return sort(
λ_m,
lt = (a, b) -> (real(first(a)) < real(first(b))),
rev = true,
)
end end