Documentation

ArkLib.Data.Domain.FftDomain.Subdomain

Subdomains of smooth FFT domains #

This file develops the subdomain tower for smooth FFT domains and relates it to the corresponding construction for coset FFT domains.

Main definitions #

Main results #

def Domain.FftDomainClass.subdomain {F : Type} [Field F] {n : } {D : Type} [FunLike D (Fin (2 ^ n)) F] [FftDomainClass D (Fin (2 ^ n)) F] (ω : D) (i : ) :

The ith subdomain of a smooth FFT domain, obtained by taking the corresponding coset subdomain and normalizing it back to an FFT domain.

Instances For
    theorem Domain.FftDomainClass.mem_fft_subdomain_iff_mem_coset_subdomain {F : Type} [Field F] {n : } {D : Type} [FunLike D (Fin (2 ^ n)) F] [FftDomainClass D (Fin (2 ^ n)) F] {ω : D} {x : F} {i : } :

    Membership in an FFT subdomain is the same as membership in the corresponding coset subdomain.

    theorem Domain.FftDomainClass.mem_subdomain_of_mem_subdomain_of_le {F : Type} [Field F] {n : } {D : Type} [FunLike D (Fin (2 ^ n)) F] [FftDomainClass D (Fin (2 ^ n)) F] {ω : D} {x : F} {i j : } (h : x subdomain ω i) (hji : j i) :
    x subdomain ω j

    If x is a member of subdomain ω i it is a member of any subdomain ω j with j ≤ i.

    If j ≤ i, then the finset of elements of the ith FFT subdomain is contained in the finset of elements of the jth FFT subdomain.

    If j ≤ i, then the subgroup associated to the ith FFT subdomain is contained in the subgroup associated to the jth FFT subdomain.

    Normalizing the ith coset subdomain agrees with taking the ith FFT subdomain of the normalized domain.

    theorem Domain.CosetFftDomainClass.mem_subdomain_of_mem_subdomain_of_mem_fft_subdomain {F : Type} [Field F] {n : } {D : Type} [FunLike D (Fin (2 ^ n)) F] [CosetFftDomainClass D (Fin (2 ^ n)) F] {ω : D} {i j : } (hji : j i) {a b : F} (ha : a subdomain ω j) (hb : b FftDomainClass.subdomain (toFftDomain ω) i) :
    a * b subdomain ω j

    Multiplying an element of a coset subdomain by an element of a deeper FFT subdomain of the normalized domain stays in the original coset subdomain.

    theorem Domain.CosetFftDomainClass.mem_subdomain_of_mem_fft_subdomain_of_mem_subdomain {F : Type} [Field F] {n : } {D : Type} [FunLike D (Fin (2 ^ n)) F] [CosetFftDomainClass D (Fin (2 ^ n)) F] {ω : D} {i j : } (hji : j i) {a b : F} (ha : a FftDomainClass.subdomain (toFftDomain ω) i) (hb : b subdomain ω j) :
    a * b subdomain ω j

    Multiplying an element of a deeper FFT subdomain of the normalized domain by an element of a coset subdomain stays in the coset subdomain.

    @[reducible, inline]
    abbrev Domain.FftDomain.subdomain {F : Type} [Field F] {n : } (ω : SmoothFftDomain n F) (i : ) :

    Concrete notation for the ith subdomain of a smooth FFT domain.

    Instances For