Loading [MathJax]/jax/output/HTML-CSS/jax.js

Polarzonoid User Guide

Glenn Davis

2025-06-10



1 Introduction

The mail goal of this vignette is to show that there are homeomorphisms An    Zn    S2n Where An is a space of arcs and Zn is the boundary of a polar zonoid. Both of these spaces are defined below.

In this User Guide we start with very general zonoids, and after two sections specialize to the polar zonoid.



2 Zonoids with Generating Functions

For this package we only consider zonoids defined by generating functions in L1(S1), where the unit circle S1 has the usual Lesbesgue measure. I do not know whether more exotic zonoids exist. For a very good survey of the theory of zonoids, see [1].

Let w1,w2,...,wm be absolutely integrable functions from S1 to R, i.e. each wiL1(S1). For θS1, let w(θ):=(w1(θ),...,wm(θ))Rn. The letter w denotes “weight”.

Define the zonoid Zw by Zw:={Vw(θ)dθ | VS1}   =   {S11V(θ)w(θ)dθ | VS1}

where V varies over all measurable subsets of S1. The function 1V is the indicator function of V. The functions w1(θ),...,wm(θ) are the generating functions of Zw, and w(θ) is the generating function.

The function w(θ) induces a vector measure on the circle: μw(V):=Vw(θ)dθ. This measure is atom free. The measure viewpoint gives a simpler alternative definition: Zw:={μw(V) | VS1}

This is the classical definition of a general zonoid, except with μw replaced by an arbitrary atom free vector measure μ. Given a zonoid Zμ which is the range of μ, the measure μ is not unique. It was shown in [6] that two zonoids are equal if and only if the total measures of the corresponding spaces are equal, and certain induced measures on the projective space RPn1 are equal. This was reproved in [1]. By a classical theorem of Lyapunov, a zonoid is convex and closed, see Theorem 5.5 of [7].

The generating function w is far from unique; for most w, with very few exceptions, it is easy to find many ww for which Zw=Zw.

Now let Q be the set of measurable functions on S1 whose essential range is in [0,1]. In fancier terms, Q is the non-negative part of the unit ball in L(S1). The indicator functions 1V are in Q; in fact Q is like a cube and the indicator functions 1V are the vertices of that cube. It is an amazing fact that, in equation (1), if the vertices 1V are replaced by arbitrary fQ the resulting set does not get any larger ! Therefore we also have: Zw={S1f(θ)w(θ)dθ | fQ}

This is another classic theorem of Lyapunov; for the proof, see Theorem 5.5 in [7]. In control theory this amazing fact is related to the “bang-bang principle”.

SIDE NOTE: The previous concepts actually have a physical application in colorimetry. The variable θ is wavelength. The function f is reflectance, which must be between 0 and 1. The functions w1(θ),w2(θ),w3(θ) are responsivities for short, medium, and long wavelength bands. Zw is the object color solid. In reference [5], which is a scientific book on colorimetry, the theorem of Lyapunov and the “bang-bang principle” are mentioned in Chapter 7 Notes 4 and 5, page 321. The first bang is 0, and the second bang is 1.



3 The Boundary of Zonoids with Generating Functions

We want to derive an expression similar to (2), but for Zw instead of Zw.

Let c=(c1,...,cm) be a fixed non-zero vector and consider maximizing the inner product of c,z over all zZw. By (2) any such z is μw(V) for some VS1 and we have: c,μw(V) = c,Vw(θ)dθ = Vc,w(θ)dθ = Vc1w1(θ)+...+cmwm(θ)dθ This expression is clearly maximized when V is the set of θ where the combination c1w1(θ)+...+cmwm(θ) is non-negative. Denote this set by: Vc:={θ | c1w1(θ)+...+cmwm(θ)0} Since the maximum of the inner product must be taken on Zw, choosing this Vc means that μw(Vc)Zw. Note that Vc might be empty, and it might be the entire circle.

To proceed further, we require from now on that w has this simplifying property:

Property S. Every non-trivial linear combination c1w1(θ)+...+cmwm(θ) is non-zero for almost all θ.

Think of this property as a very strong form of linear independence. Not only is the linear combination non-zero on a set of positive measure, it is non-zero at almost every point.

As a consequence of Property S, the inner product with c is uniquely maximized by μw(Vc). In other words, if VVc then c,μw(V)<c,μw(Vc). In the terminology of convex bodies, every face of Zw is single point.

Now define Vw := {Vc | c0} = {Vc | cS2n} Vw is a family of subsets of S1 that depends only on w. The last equality is true because multiplying c by a positive scalar does not change Vc. We make Vw into a topological space by identify Vc with its indicator function 1VcL1(S1). So we can think of Vw as a subset of L1(S1) and let Vw inherit the topology from the bigger space.

Theorem A: If w has Property S, then the map VwZw given by Vcμw(Vc), is a homeomorphism.

Proof: The map Vcμw(Vc)=Vcwdθ is clearly continuous. Recall that by Property S, if VVc, then c,μw(V)<c,μw(Vc).

First the surjective part. Let bZw. Since bZw, b=μw(V) for some VS1. Since Zw is convex, there is a supporting hyperplane of Zw at b with non-zero outward-pointing normal c. if VVc, then c,b = c,μw(V)<c,μw(Vc). But point b maximizes the inner product with c. This is a contradiction and so V=Vc and b=μw(Vc).

Now the injective part. Let Vc,VcVw. If VcVc, then c,μ(Vc)<c,μ(Vc) and so μ(Vc)μ(Vc).

Without Property S, the conclusion of the theorem is definitely false. For example, if the range of w is finite, i.e. if w is a simple function, then Vw is finite too. But Zw is obviously not. In this case the zonoid is a zonotope - a zonoid which is also a polytope. Many equivalent conditions for zonotopes are discussed by Bolker in Theorem 3.3 of [1]. The image of the map in the theorem is simply the vertices of Zw. We hope to discuss polar zonotopes in a future version of this package.

We summarize with an expression for Zw. If w has Property S, then Zw={Vcw(θ)dθ | c0} = {μw(Vc) | VcVw} Compare this expression with (2). In that expression for Zw, V ranges over all VS1, but for Zw only the sets Vc are used.

Given a particular generating function w, the first step in describing Zw is to describe the family Vw of subsets of S1. In the next section we do this for a particularly simple and special w.



4 Trigonometric Polynomials and The Polar Zonoid

We are finally ready to define the polar zonoid. Fix n1 and let w(θ) be given by the m=2n+1 functions: w(θ):=(cosθ,sinθ,cos2θ,sin2θ,...,cosnθ,sinnθ,1) These m functions are a basis for the trigonometric polynomials of order n. From now on in this vignette, w means this particular function.

We call the generated zonoid the polar zonoid of order n in R2n+1 and denote it by Zn. To describe Zn, by (5) and (8) we must describe the sets Va,b:={θ | a1cosθ+b1sinθ +... +ancosnθ+bnsinnθ+a00} where not all ai and bi are 0. Note we have switched from ci to ai and bi because this is the classical notation for trigonometric polynomials. We also put the constant term last instead of first, because we think of the last coordinate as “vertical” and the others as “horizontal”.

For later use, we state without proof that the product of two trigonometric polynomials of order n1 and n2 is a trigonometric polynomial of order n1+n2.

NOTE: The term polar zonoid was chosen because it is a generalization of the polar zonohedron, see [3]. Warning: In other contexts, i.e. the theory of convex bodies, the term “polar zonoid” is short for “polar of a zonoid”, which is an entirely different concept.

It is well-known that the trignometric polynomials have most 2n roots, see Chapter X, Theorem 1.7 in [8]. Thus Property S is trivially true, and the previous Theorem applies. Since the trigonometric polynomials are continuous, we can conclude that each set Va,b is the union of n or fewer arcs (possibly no arcs at all) in the circle, or the entire circle.

Conversely, given any n disjoint closed arcs, there is a trigonometric polynomial of order n whose roots are the 2n endpoints of those arcs, and is non-negative on those arcs.

We conclude that for the above w of trigonometric functions: Vw= the space of n or fewer pairwise disjoint closed arcs in the circle S1

We investigate families of arcs in the next section.



5 Spaces of Arcs An

Definition: An is the space of n or fewer pairwise disjoint closed arcs in the circle S1.

An is the same as Vw in the previous section, and from now on we use this new notation.

For example, here are 2 plots of arcs on the circle, the left with 1 arc and the right with 3 arcs.

oldpar = par( mfrow=c(1,2)  , omi=c(0.1,0.1,0.1,0.1), mai=c(0.45,0.5,0.1,0) )
arcmat = matrix( c(1.5,2.9), nrow=1, ncol=2, byrow=TRUE )
plotarcs( arcmat, main=NA )

arcmat = matrix( c(1.5,2, pi,0.5, 5,pi/4 ), nrow=3, ncol=2, byrow=TRUE )
plotarcs( arcmat, main=NA ) ;  par( oldpar )
Figure 3.0 examples of collections of pairwise disjoint arcs

Figure 3.0 examples of collections of pairwise disjoint arcs

Both of these represent points in A3. The left plot also represents a point in A1. We define A0 to be the set of 2 improper arcs: the empty arc, and the full circle.

We have proper inclusions: A0A1A2A3A4   ...

We make An into a topological space by identify a set of disjoint arcs V with its indicator function 1VL1(S1). We think of An as a subset of this L1 and let An inherit the topology from the bigger space.

In more detail, An is a metric space with metric defined as follows. Let V and W be sets of arcs in An, so V,WS1. Define the metric d(V,W):=S1|1V1W|dθ.

The metric can be viewed in another way; the symmetric difference of V and W is also a collection of arcs, and d(V,W) is the total length of the arcs in this symmetric difference. The corresponding functions in the package are arcsdistance() and arcssymmdiff(). With this choice of metric, an arc of length 0 is considered to be the same as the empty arc, but it is allowed in the software.

There is a useful relationship between the uniqueness of supporting hyperplanes and the number of arcs.

Theorem: For VAn, V has exactly n arcs if and only if the supporting hyperplane of Zn at μw(V) is unique.

Proof: Suppose VAn has exactly n arcs, i.e. that VAnAn1. Let T(θ) be the trigonometric polynomial of order n with roots at the 2n endpoints, and orientation that matches V. Then all the roots of T(θ) of simple which means that T(θ) is unique up to a positive multiple. The coefficients of T(θ) are the normal to supporting hyperplane and this implies that the hyperplane is unique.

Suppose that VAn has exactly n arcs with n<n. The corresponding polynomial T(θ) has order n with 2n roots. Take a trignometric polynomial Tδ(θ) of order nn that is everywhere positive and not constant. This is easy - just take all ai and bi small and non-zero for i>0, and a0 sufficiently large. Then the product of T(θ) and Tδ(θ) is order n and has exactly the same arcs. The coefficients of the product are a normal vector in a different direction and thus there is another supporting hyperplane. .

The theorem says that if a point in Zn is the image of a point in AnAn1, then Zn is smooth at that point. But if it is the image of a point in An1, then Zn has a “crease” there.

For example, when n=1, Z1 is homeomorphic to S2 and it has cusps at 2 “poles” corresponding to the 2 points in A0. An approximation of it is illustrated in this figure:

plot( zonohedra::polarzonohedron( 25, height=2*pi ), type='f', falpha=1  )
rgl::arc3d( 1.005*c(2,0,pi), 1.005*c(0,2,pi), center=c(0,0,pi), base=c(0,1), color='red', lwd=3 )
rgl::rglwidget( webgl=TRUE )

polar zonohedron with 25 generators    [this is an interactive WebGL widget, try it !]

From Theorem A there is a homeomorphism AnZn. For n=1, the description of it is fairly easy. For n=1 there is a single arc in the circle. The center of the arc maps to the “longitude” of the boundary Z1, and the length of the arc maps to the “latitude”. Length=0 (the empty arc) goes to the black cusp (0,0,0) at the “south pole” and Length=2π (the full circle) goes to the white cusp (0,0,2π) at the “north pole”. Semicircles, where Length=π, go to the red “equator”. This is a plot of a polar zonohedron, with M=25 generators, that approximates the true polar zonoid. As M, the polar zonohedron converges to the polar zonoid, in the Hausdorff metric. This is shown at the end of [3]. The surface is the surface of revolution of the curve 2sin(z/2).

SIDE NOTE: These investigations were largely inspired by a colorimetry paper by P. Centore [2], which started me thinking about the space A2.



6 The Homeomorphism AnZn

From Theorem A we have a homemomorphism: AnZn given by VVw(θ)dθ and w(θ) is given by (9). The goal of this section is to compute simple expressions for this mapping.

Let all arcs be oriented in the counter-clockwise direction. Take a single arc starting at θ0 and with length L, and denote it by [θ0,θ0+L]. For simplicity, compute the map for only 3 coordinate functions of w(θ): (coskθ,sinkθ,1). [θ0,θ0+L](θ0+Lθ0coskθdθ,θ0+Lθ0sinkθdθ,θ0+Lθ01dθ)((sin(k(θ0+L))sin(kθ0))/k),(cos(k(θ0+L))+cos(kθ0))/k),L) Expressions like these are used in the function boundaryfromarcs().

It is far simpler to change the first 2 coordinates to complex numbers: [θ0,θ0+L](θ0+Lθ0eikθdθ,θ0+Lθ01dθ)((eik(θ0+L)eikθ0)/(ik),L) We leave it to the reader to check that the real and complex expressions are equivalent.

Now take the complex number representation a little further. Let the same arc start at u and go counterclockwise to v with length L, where u and v are complex points on the unit circle. So that u=eiθ0 and v=ei(θ0+L)=eiθ0eiL. Now denote the same arc by [u,v]. Making these substitutions gives: [u,v](vkukik,L) If we have a disjoint union of 2 arcs V=[u1,v1][u2,v2] with lengths l1 and l2, then we take the sum. [u1,v1][u2,v2]((vk1uk1)+(vk2uk2)ik,l1+l2)

If we denote the other coordinates on the right side by zk as in: [u1,v1][u2,v2](z1,...,zn,l1+l2) then we identify points on the right side with points in R2n+1, and we have: zk=(vk1uk1)+(vk2uk2)ikk=1,...,n The generalization to more than 2 disjoint arcs is straightforward. These equations are used extensively in the functions boundaryfromsphere() and arcsfromboundary(), see the Implicitization vignette.



7 The Homeomorphism ZnS2n

Zn is a convex body so it is homeomorphic to the ball B2n+1, and its boundary is homeomorphic to S2n. An explict map is trivial to construct. The center of Zn is c=(0,...0,π) in the interior of Zn. For bZn use the projection onto the unit sphere centered at c: b(bc)/||bc||S2n. This is computed in the function spherefromboundary().

The inverse S2nZn is much harder since now we are given a ray based at c and must compute where that ray intersects Zn. This is computed iteratively in boundaryfromsphere() and depends on an implicit function for Zn, for details see the Implicitization vignette. This function is only implemented for n = 1, 2, and 3.

The space of arcs An has a natural involution γ, which is the complementation operation, given by γ(V)=Cl(S1V). The closure Cl is only necessary to create closed arcs. Note that if V has k disjoint closed arcs, then so does γ(V). This involution is conjugate to the antipodal map on S2n under the composition AnZnS2n. These properties are discussed further in the Real Projective Spaces and 3x3 Rotation Matrices vignette.



8 References

[1]
BOLKER, Ethan D. A class of convex bodies. Transactions of the American Mathematical Society [online]. 1969, 145, 323–345 [accessed. 2023-02-25]. ISSN 00029947. Available at: https://www.jstor.org/stable/1995073
[2]
CENTORE, Paul. Four-transition 0-1 functions for reflectance spectra. Color Research & Application [online]. 2018, 43(4), 612–618. Available at: doi:https://doi.org/10.1002/col.22229
[3]
CHILTON, B. L. and COXETER, H. S. M. Polar zonohedra. The American Mathematical Monthly [online]. 1963, 70(9), 946–951 [accessed. 2022-05-27]. ISSN 00029890, 19300972. Available at: https://doi.org/10.2307/2313051
[4]
DARÓCZI, Gergely. Logger: A lightweight, modern and flexible logging utility [online]. 2021. Available at: https://cran.r-project.org/package=logger
[5]
KOENDERINK, J. J. Color for the Sciences. B.m.: MIT Press, 2010. ISBN 9780262014281.
[6]
RICKERT, Neil W. The range of a measure. Bulletin of the American Mathematical Society. 1967, 73, 560–563.
[7]
RUDIN, Walter. Functional analysis. B.m.: Tata McGraw-Hill, 1974. International series in pure and applied mathematics. ISBN 9780070995581.
[8]
ZYGMUND, Antoni. Trigonometric series. B.m.: Cambridge University Press, 2002. Cambridge mathematical library, v. 2. ISBN 9780521890533.



9 Appendix - Logging

Logging is performed using the package logger, see [4]. This is a powerful package that allows a separate configuration for logging from within polarzonoid, and that is what I have done. During package loading, the logging threshold is changed from INFO to WARN. To change it back again, one can execute:
log_threshold( INFO, namespace="polarzonoid" )

The layout callback functions is customized; it adds the name of the calling function to the message. To install your own layout function, you can execute:
log_layout( <your function>, namespace="polarzonoid" )

The appender callback functions is also customized; it comes to an immediate stop if the message level is ERROR or FATAL. To return to the default behavior, you can execute:
log_appender( appender_console, namespace="polarzonoid" )

The formatter callback function is forced to be formatter_sprintf(); this should not be changed.



10 Session Information

This document was prepared Tue Jun 10, 2025 with the following configuration:
R version 4.5.0 (2025-04-11 ucrt)
Platform: x86_64-w64-mingw32/x64
Running under: Windows 11 x64 (build 26100)

Matrix products: default
  LAPACK version 3.12.1

locale:
[1] LC_COLLATE=C                          
[2] LC_CTYPE=English_United States.utf8   
[3] LC_MONETARY=English_United States.utf8
[4] LC_NUMERIC=C                          
[5] LC_TIME=English_United States.utf8    

time zone: America/Los_Angeles
tzcode source: internal

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] zonohedra_0.4-0   rgl_1.3.18        gifski_1.32.0-2   flextable_0.9.7  
[5] polarzonoid_0.1-2

loaded via a namespace (and not attached):
 [1] katex_1.5.0             jsonlite_2.0.0          compiler_4.5.0         
 [4] equatags_0.2.1          Rcpp_1.0.14             zip_2.3.3              
 [7] xml2_1.3.8              jquerylib_0.1.4         fontquiver_0.2.1       
[10] systemfonts_1.2.3       textshaping_1.0.1       uuid_1.2-1             
[13] yaml_2.3.10             fastmap_1.2.0           R6_2.6.1               
[16] microbenchmark_1.5.0    gdtools_0.4.2           curl_6.2.2             
[19] knitr_1.50              htmlwidgets_1.6.4       logger_0.4.0           
[22] openssl_2.3.2           bslib_0.9.0             rlang_1.1.6            
[25] V8_6.0.3                cachem_1.1.0            xfun_0.52              
[28] sass_0.4.10             cli_3.6.5               magrittr_2.0.3         
[31] digest_0.6.37           grid_4.5.0              base64enc_0.1-3        
[34] askpass_1.2.1           lifecycle_1.0.4         evaluate_1.0.3         
[37] glue_1.8.0              data.table_1.17.2       fontLiberation_0.1.0   
[40] officer_0.6.8           ragg_1.4.0              xslt_1.5.1             
[43] fontBitstreamVera_0.1.1 rmarkdown_2.29          tools_4.5.0            
[46] htmltools_0.5.8.1