"""Original extremal conformal blocks and their maximal-extension gluing. Python 3.14; Matplotlib and NumPy. Fixed PNG basename to caller CWD. """ from pathlib import Path import numpy as np import matplotlib matplotlib.use('Agg') import matplotlib.pyplot as plt from matplotlib.patches import Polygon fig,axes=plt.subplots(1,2,figsize=(9.0,5.4),facecolor='white') future='#175b91';past='#77438e';red='#ab2538';dark='#333333' def line(ax,a,b,color,lw=2):ax.plot([a[0],b[0]],[a[1],b[1]],color=color,lw=lw) for ax in axes: ax.axis('off');ax.set_aspect('equal');ax.set_facecolor('white');ax.set_xlim(-1.6,1.6);ax.set_ylim(-1.35,1.45) ax=axes[0] ax.add_patch(Polygon([(-1,0),(0,1),(1,0),(0,-1)],facecolor='#edf4ea',edgecolor='none')) line(ax,(-1,0),(0,1),future);line(ax,(-1,0),(0,-1),past) line(ax,(0,1),(1,0),dark);line(ax,(0,-1),(1,0),dark) ax.text(0,0,'Exterior E\n'+r'$r>r_h$',ha='center',va='center',fontsize=12) ax.text(-.77,.60,r'$H^+$',color=future,fontsize=12);ax.text(-.77,-.74,r'$H^-$',color=past,fontsize=12) ax.text(.65,.64,r'$\mathcal{I}^+$',fontsize=12);ax.text(.65,-.77,r'$\mathcal{I}^-$',fontsize=12) ax.text(1.11,0,r'$i^0$',fontsize=11);ax.text(0,1.12,r'$i^+$',ha='center',fontsize=11);ax.text(0,-1.24,r'$i^-$',ha='center',fontsize=11) ax.set_title('Static exterior block',fontsize=12) ax=axes[1] ax.add_patch(Polygon([(-1,0),(0,-1),(0,1)],facecolor='#fae9ec',edgecolor='none')) line(ax,(-1,0),(0,1),future);line(ax,(-1,0),(0,-1),past) y=np.linspace(-1,1,121);x=.019*np.sin(np.arange(121)*np.pi/2) ax.plot(x,y,color=red,lw=2.5) ax.text(-.34,0,'Interior I\n'+r'$0