From cd116399ef120a035549aa3f3a1dba73ffbb1539 Mon Sep 17 00:00:00 2001 From: ThomasBreuer Date: Fri, 28 Jul 2023 10:53:16 +0200 Subject: [PATCH] moved two functions from Oscar to Nemo This is not yet satisfactory: - Should `embed` return something? The `embed(k::T, K::T) where T <: FinField` method returns a mapping, but the documentation does not state what is returned, and the code that calls `embed` seems to ignore the return value. - Tests and documentation are missing. --- src/embedding/embedding.jl | 4 ++++ src/flint/fmpq.jl | 2 ++ test/flint/fmpq-test.jl | 3 +++ 3 files changed, 9 insertions(+) diff --git a/src/embedding/embedding.jl b/src/embedding/embedding.jl index 5a7b41d5e..4f9c5b48d 100644 --- a/src/embedding/embedding.jl +++ b/src/embedding/embedding.jl @@ -429,6 +429,10 @@ function embed(k::T, K::T) where T <: FinField end end +function embed(k::Nemo.fpField, K::fqPolyRepField) + @assert characteristic(K) == characteristic(k) +end + ################################################################################ # # Preimage map diff --git a/src/flint/fmpq.jl b/src/flint/fmpq.jl index 49a081f24..4a77c5562 100644 --- a/src/flint/fmpq.jl +++ b/src/flint/fmpq.jl @@ -169,6 +169,8 @@ returned as a rational with denominator $1$. """ Base.ceil(a::QQFieldElem) = QQFieldElem(cdiv(numerator(a), denominator(a)), 1) +nbits(a::QQFieldElem) = nbits(numerator(a)) + nbits(denominator(a)) + ############################################################################### # # Canonicalisation diff --git a/test/flint/fmpq-test.jl b/test/flint/fmpq-test.jl index 035f15f0e..3938b6c4b 100644 --- a/test/flint/fmpq-test.jl +++ b/test/flint/fmpq-test.jl @@ -155,6 +155,9 @@ end @test ceil(QQFieldElem(2, 3)) == 1 @test ceil(QQFieldElem(-1, 3)) == 0 @test ceil(QQFieldElem(2, 1)) == 2 + + @test nbits(QQFieldElem(12, 1)) == 5 + @test nbits(QQFieldElem(1, 3)) == 3 end @testset "QQFieldElem.unary_ops" begin