A repository to keep track of random little things I learned or thought about each day.

The Cosmic Dipole Problem (2023/11/29)

CMB features a dipole anisotropy which is interpreted as our motion relative to the cosmic rest frame. If this interpretation is correct, one expects other probe of this relative motion to feature the same cosmic dipole. However measurements from radio galaxies and quasars have presented some discrepancies in the magnitude of the cosmic dipole (see, e.g., (Peebles 2022; Kumar Aluri et al. 2023) for reviews).

A new analysis by (Mittal, Oayda, and Lewis 2023) has argued otherwise. They used 1.3 million quasars from the recently-released Quaia quasar catalogue and found that the previous discrepancies are likely due to contaminations near the Galactic Plane, and as they exclude the contaminated samples, they arrive at a result consistent both in direction and magnitude with the CMB dipole.

Observation matrix (2023/11/13)

Observation matrix, \(M\), is defined as

\begin{equation} m_{\rm out} = M m_{\rm in}. \end{equation}

The sky signal observed by detectors, \(s\), is given by

\begin{equation} s = Pm_{\rm in}, \end{equation}

where \(P\) is the pointing matrix. It can be solved by

\begin{equation} m = (P^{T}N^{-1}P)^{-1}P^TN^{-1}s \equiv Bs, \end{equation}

where \(N\) is the noise covariance matrix. One may want to apply additional filtering to deproject a set of time-domain templates, given as columns in \(F\) with

\begin{equation} Z = 1 - F(F^TN^{-1}F)F^TN^{-1}, \end{equation}

which represents deprojecting best-fit match to given set of templates. As a result,

\begin{equation} m_{\rm out} = BZs = BZPm_{\rm in}. \end{equation}

Therefore, the observation matrix is given by

\begin{equation} M = BZP = (P^{T}N^{-1}P)^{-1}P^TN^{-1}(1 - F(F^TN^{-1}F)F^TN^{-1})P. \end{equation}

Blackhole Superradiance (2023/11/13)

Superradiance is a phenomenon occurring when a wave interacts with a rotating object that has dissipative or absorptive properties. This interaction can cause the incoming wave to gain energy. For example, in a classical scenario, if a ball strikes a rotating cylinder, the ball can gain energy if the cylinder’s rotation speed exceeds the ball’s speed. Conversely, the ball loses energy if the cylinder rotates more slowly.

In astrophysics, blackhole is a perfect absorber, and a rotating blackhole, i.e., Kerr blackhole, will exhibit superradiance. If the incoming wave comes from a massless scalar field, it will have its energy boosted similar to the example of the ball. If the incoming wave comes from a massive scalar field, on the other hand, the massive field will be bound by the gravitational potential of the blackhole and form a bound state very much like a hydrogen atom. When a wave gets amplified by the blackhole through superradiance, it remains trapped in the bounded state and will keep getting amplified; this leads to a runaway growth of a cloud of particles around the blackhole, and as a result, the blackhole spin gets slowed down. As the dynamical time for the superradiance is much shorter than the lifetime of the blackhole, it will have significant impact on the evolution of the blackhole. Superradiance with massive particles therefore predicts a specific population of blackhole spins (with more low spin than high spin blackholes); this can be tested with observations from gravitational wave observatories such as LIGO.

Source: https://youtu.be/DJPFPs2kDxM?si=vgtjAIvb8EhHC6HP

Symbolic Tracing (2023/01/25)

After spending several hours reading jax’s documentation. I have finally grasped the basic idea of it. I will try to summarize it in words. It is built upon an elegant concept which I call function reinterpretation. The idea is that, given an unknown implementation of a function, one can define a transformation that reinterprets the implementation of the function without knowing its details as long as the underlying function is composable of a well-defined set of primitive functions that we have provided. It sounds like magic, but it is indeed feasible and lies at the heart of jax.

jax implements this by passing in a special object known as the Tracer to the function to obtain a specific functional Trace of our target. Intuitively, this is like attaching a mini camera to our input variable so it can observe the system and trace out its inner workings.

To achieve this, first we need to design our primitives such that their evaluation can be intercepted and routed to our target Trace object which encapsulates the specific function reinterpretation that we want to do. We then define a corresponding Tracer object that can be used to perform (or realize) the Trace transformation. Tracer also carries important data relevant to the specific tracing analysis. When we pass these tracers into the function we are probing, our tracers will trigger a series of primitive function calls which are then routed to our Trace object, which defines how to reinterpret each specific primitive function in terms of custom operations on the “payload” of our Tracer. To give a specific example, suppose our function contains an addition of two variables, such as

def target(a, b):
    c = a + b
    d = c + a
    return d

and that we want to map all additions inside our target function to multiplications, we can define two Tracer objects that carry payload of a, b, respectively. When our Trace intercepts the calls from “addition” primitives, it then takes the two tracer arguments, multiplies their payload and promotes it to another Tracer object with a payload of a*b to proceed to the subsequent computations. At the end of the function call, we will get a tracer object as the return. We can then simply read off its payload which represents the result of an reinterpretation of our target function that turns addition into multiplication. If we redefine the entire process as a new function, such as the following pseudocode,

def add2mul(func):
    def f(a, b):
        return func(Tracer(payload=a), Tracer(payload=b)).payload
    return f

transformed_target = add2mul(target)

We have effectively transformed our target function into a different function by modifying its inner computation without actually knowing its implementation details!

References

Kumar Aluri, Pavan, Paolo Cea, Pravabati Chingangbam, Ming-Chung Chu, Roger G. Clowes, Damien Hutsemékers, Joby P. Kochappan, et al. 2023. “Is the observable Universe consistent with the cosmological principle?” Classical and Quantum Gravity 40 (9): 094001. https://doi.org/10.1088/1361-6382/acbefc.
Mittal, Vasudev, Oliver T. Oayda, and Geraint F. Lewis. 2023. “The Cosmic Dipole in the Quaia Sample of Quasars: A Bayesian Analysis.” Arxiv E-Prints, November, arXiv:2311.14938. https://doi.org/10.48550/arXiv.2311.14938.
Peebles, P. J. E. 2022. “Anomalies in physical cosmology.” Annals of Physics 447 (December): 169159. https://doi.org/10.1016/j.aop.2022.169159.