"""Original fixed-frequency paired cos/sin RFF; no training or performance benchmark."""
import numpy as np,math,json,hashlib

def features(x,omega,ell=1):
 if type(ell) not in [int,float] or not math.isfinite(ell) or not .1<=ell<=10:raise ValueError("bounded positive length scale")
 if not isinstance(x,list) or not 1<=len(x)<=8 or any(type(v) not in [int,float] or not math.isfinite(v) or abs(v)>10 for v in x) or not isinstance(omega,np.ndarray) or omega.ndim!=1 or omega.dtype.kind not in 'if' or not 1<=len(omega)<=64 or not np.isfinite(omega).all() or (np.any(omega < -100) or np.any(omega > 100)):raise ValueError('bounded1D points/fixedfrequency vector')
 angles=np.array(x)[:,None]*omega[None,:]/ell;return np.concatenate([np.cos(angles),np.sin(angles)],axis=1)/math.sqrt(len(omega))
def demo():
 x=[-.7,0.,.4,1.1];omega=np.random.default_rng(1).normal(0,1,64);exact=np.exp(-.5*(np.array(x)[:,None]-np.array(x)[None,:])**2);rows=[]
 for d in [4,16,64]:
  z=features(x,omega[:d]);gram=z@z.T;oracle=np.array([[sum(math.cos(w*(a-b)) for w in omega[:d])/d for b in x] for a in x]);assert np.allclose(gram,oracle) and np.allclose(np.diag(gram),1) and np.allclose(gram,gram.T)
  for v in [[1,0,0,0],[1,-1,2,-2],[1,1,1,1]]:assert np.array(v)@gram@np.array(v)>=-1e-12
  rows.append({'D_frequency_count':d,'feature_dimension':2*d,'Z':z.tolist(),'Gram':gram.tolist(),'max_absolute_error_vs_RBF':float(np.max(abs(gram-exact)))})
 assert rows[1]['max_absolute_error_vs_RBF']>rows[0]['max_absolute_error_vs_RBF'] and rows[2]['max_absolute_error_vs_RBF']<rows[1]['max_absolute_error_vs_RBF']
 # Incorrect omission of normalization gives diagonal D, not unit diagonal.
 bad_gram=(features(x,omega[:4])*2)@(features(x,omega[:4])*2).T;assert np.allclose(np.diag(bad_gram),4)
 query=[.2];qz=features(query,omega[:16]);cross=qz@features(x,omega[:16]).T;queryoracle=np.array([[sum(math.cos(w*(.2-b)) for w in omega[:16])/16 for b in x]]);assert np.allclose(cross,queryoracle)
 rejects=[]
 for label,fn in [('int64_min_frequency',lambda:features(x,np.array([np.iinfo(np.int64).min],dtype=np.int64))),('int64_max_frequency',lambda:features(x,np.array([np.iinfo(np.int64).max],dtype=np.int64))),('lengthscale_zero',lambda:features(x,omega,ell=0)),('lengthscale_nonfinite',lambda:features(x,omega,ell=math.inf)),('bool_frequencies',lambda:features(x,np.array([True]))),('empty',lambda:features([],omega)),('bool',lambda:features([True],omega)),('nonfinite_x',lambda:features([math.inf],omega)),('shape',lambda:features(x,omega.reshape(8,8))),('nonfinite_omega',lambda:features(x,np.array([math.nan]))),('freq_budget',lambda:features(x,np.ones(65)))]:
  try:fn()
  except ValueError:rejects.append(label)
  else:raise AssertionError(label)
 wrong_cross=features(query,np.random.default_rng(2).normal(0,1,16))@features(x,omega[:16]).T;assert not np.allclose(wrong_cross,cross)
 boundary=features([0.,.25],np.array([-100,100],dtype=np.int64));assert boundary.shape==(2,4) and np.isfinite(boundary).all()
 return {'accepted_integer_frequency_boundary':[-100,100],'absolute_value_overflow_avoided_by_direct_signed_comparisons':True,'mapping_profile_sha256':hashlib.sha256(omega.tobytes()+b'ell1-paired-cossin-v1').hexdigest(),'wrong_resampled_query_crossGram':wrong_cross.tolist(),'X':x,'seed':1,'all64_fixed_frequencies':omega.tolist(),'RBF_length_scale':1,'RBF_exact_Gram':exact.tolist(),'same_frequency_prefix_cases':rows,'wrong_no_normalization_diagonal':np.diag(bad_gram).tolist(),'new_query_same_map_crossGram':cross.tolist(),'invalid_cases_rejected':rejects,'numpy_version':np.__version__,'scope':'Pairedcos/sin2D featurecoordinates, not randomphaseD variant. Same64frequencies fixed before all Ds/query. Error on one fixture nonmonotonic, no universal bound/highaccuracy/modeltraining/wholepaper benchmark.'}
if __name__=='__main__':print(json.dumps(demo(),indent=2))
