double asc_Ag_reference(int i) {
  static double asc_Ag[576] = {
      -0.002085687695, -0.002038528244, -0.003385497599, -0.002692240783,
      -0.004538826296, -0.006256935957, -0.004427462623, -0.003425534363,
      -0.005219445681, -0.003263010379, -0.003395946702, -0.005008248255,
      -0.003558712718, -0.002122854689, -0.002963787793, -0.000574041191,
      -0.004442973688, -0.001758110073, -0.005103031982, -0.006578238930,
      -0.004371465134, -0.005630175684, -0.004743123268, -0.003036162925,
      -0.004710940904, -0.003766809935, -0.002673280233, -0.003419105699,
      -0.003972574975, -0.000139297682, -0.001733573296, -0.006375867893,
      -0.005858755974, -0.003944967467, -0.002302196052, -0.001738802028,
      -0.001256552044, -0.001186089073, -0.001509544849, -0.002045416728,
      -0.006489467452, -0.007469535044, -0.005709355473, -0.003486000220,
      -0.001866862181, -0.002888446030, -0.003571046727, -0.002736100446,
      -0.004427310453, -0.004319609953, -0.001591471378, -0.003166193922,
      -0.004049882627, -0.002856209044, -0.003491796907, -0.004382752224,
      -0.002529931148, -0.004101912641, -0.003418039787, -0.004713178801,
      -0.002553583687, -0.001762365922, -0.003467423195, -0.003775482249,
      -0.002733943137, -0.003213103669, -0.005602431233, -0.002231146168,
      -0.003192121862, -0.000865638847, -0.002106560786, -0.000700644487,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000,
      0.000000000000,  0.000000000000,  0.000000000000,  0.000000000000};
  return asc_Ag[i];
}


x86 assembly (clang, -O0):
<asc_Ag_reference>:
push   %rbp
mov    %rsp,%rbp
mov    %edi,-0x4(%rbp)
movslq -0x4(%rbp),%rcx
lea    0x2f1e(%rip),%rax
movsd  (%rax,%rcx,8),%xmm0
pop    %rbp
ret

x86 assembly (clang, -O2):
<asc_Ag_reference>:
movslq %edi,%rax
lea    0xef6(%rip),%rcx
movsd  (%rcx,%rax,8),%xmm0
ret

LLVM IR (-O0):
@asc_Ag_reference.asc_Ag = internal global <{ [72 x double], [504 x double] }> <{ [72 x double] [double 0xBF6116010E11FA75, double 0xBF60B31A847A7D43, double 0xBF6BBBE72EFD1038, double 0xBF660E09C3B5CCE8, double 0xBF72974DE80E8502, double 0xBF79A0DF74EF8A42, double 0xBF722287F2B88399, double 0xBF6C0FDDC1EEDF42, double 0xBF7560FC480CE025, double 0xBF6ABB075BA874EC, double 0xBF6BD1D100C50288, double 0xBF748387677294F0, double 0xBF6D272957AB5EE4, double 0xBF6163F2EED44C38, double 0xBF6847837495400D, double 0xBF42CF681229D753, double 0xBF7232CBAAFDBDB8, double 0xBF5CCE0C510B1C76, double 0xBF74E6EAB791F2EC, double 0xBF7AF1C8911D2E17, double 0xBF71E7D03C940184, double 0xBF770FAAC6EFACD4, double 0xBF736D8675124121, double 0xBF68DF4B8EFB843B, double 0xBF734BC791DB6AD4, double 0xBF6EDB92AF64F2F7, double 0xBF65E646658F976D, double 0xBF6C02626514A97B, double 0xBF70458BF993975C, double 0xBF22420DFA2998C3, double 0xBF5C67222723742C, double 0xBF7A1D950158464F, double 0xBF77FF59D4DB7111, double 0xBF7028992412A1EE, double 0xBF62DC0E1813020E, double 0xBF5C7D10760BEF73, double 0xBF54965C7BD22824, double 0xBF536ED171D5DC11, double 0xBF58BB7D7087FDCE, double 0xBF60C18CBE82AC5C, double 0xBF7A94B32798C42A, double 0xBF7E98600BAF5543, double 0xBF7762B1709AB880, double 0xBF6C8EAC1E0A3AEF, double 0xBF5E963000DDBEB0, double 0xBF67A982A7860794, double 0xBF6D41071CF55FA9, double 0xBF666A04BDE47BB2, double 0xBF72225F19AD904D, double 0xBF71B17077AC7CB0, double 0xBF5A131D61588E70, double 0xBF69EFFD6B210BDC, double 0xBF70969C16F83B72, double 0xBF6765E78DE79548, double 0xBF6C9AD430A2854D, double 0xBF71F3A6177F2F9D, double 0xBF64B9A671565B9F, double 0xBF70CD2ACA4E69ED, double 0xBF6C002623403D76, double 0xBF734E204CF7CA1F, double 0xBF64EB40CD8B6128, double 0xBF5CDFE5FFE8A6A4, double 0xBF6C67B6A72A53A1, double 0xBF6EEDC2992798A5, double 0xBF66657E8B99EAA6, double 0xBF6A525DE5AA1659, double 0xBF76F2932EC7FBA1, double 0xBF62470D7A5F7BD2, double 0xBF6A265D601180D4, double 0xBF4C5D8144DD9502, double 0xBF6141C735DA5DCC, double 0xBF46F56E94326323], [504 x double] zeroinitializer }>
define double @asc_Ag_reference(i32 %0) {
%2 = alloca i32
store i32 %0, i32* %2
%3 = load i32, i32* %2
%4 = sext i32 %3 to i64
%5 = getelementptr inbounds [576 x double], [576 x double]* bitcast (<{ [72 x double], [504 x double] }>* @asc_Ag_reference.asc_Ag to [576 x double]*), i64 0, i64 %4
%6 = load double, double* %5
ret double %6
}

LLVM IR (-O2):
@asc_Ag_reference.asc_Ag = internal unnamed_addr constant <{ [72 x double], [504 x double] }> <{ [72 x double] [double 0xBF6116010E11FA75, double 0xBF60B31A847A7D43, double 0xBF6BBBE72EFD1038, double 0xBF660E09C3B5CCE8, double 0xBF72974DE80E8502, double 0xBF79A0DF74EF8A42, double 0xBF722287F2B88399, double 0xBF6C0FDDC1EEDF42, double 0xBF7560FC480CE025, double 0xBF6ABB075BA874EC, double 0xBF6BD1D100C50288, double 0xBF748387677294F0, double 0xBF6D272957AB5EE4, double 0xBF6163F2EED44C38, double 0xBF6847837495400D, double 0xBF42CF681229D753, double 0xBF7232CBAAFDBDB8, double 0xBF5CCE0C510B1C76, double 0xBF74E6EAB791F2EC, double 0xBF7AF1C8911D2E17, double 0xBF71E7D03C940184, double 0xBF770FAAC6EFACD4, double 0xBF736D8675124121, double 0xBF68DF4B8EFB843B, double 0xBF734BC791DB6AD4, double 0xBF6EDB92AF64F2F7, double 0xBF65E646658F976D, double 0xBF6C02626514A97B, double 0xBF70458BF993975C, double 0xBF22420DFA2998C3, double 0xBF5C67222723742C, double 0xBF7A1D950158464F, double 0xBF77FF59D4DB7111, double 0xBF7028992412A1EE, double 0xBF62DC0E1813020E, double 0xBF5C7D10760BEF73, double 0xBF54965C7BD22824, double 0xBF536ED171D5DC11, double 0xBF58BB7D7087FDCE, double 0xBF60C18CBE82AC5C, double 0xBF7A94B32798C42A, double 0xBF7E98600BAF5543, double 0xBF7762B1709AB880, double 0xBF6C8EAC1E0A3AEF, double 0xBF5E963000DDBEB0, double 0xBF67A982A7860794, double 0xBF6D41071CF55FA9, double 0xBF666A04BDE47BB2, double 0xBF72225F19AD904D, double 0xBF71B17077AC7CB0, double 0xBF5A131D61588E70, double 0xBF69EFFD6B210BDC, double 0xBF70969C16F83B72, double 0xBF6765E78DE79548, double 0xBF6C9AD430A2854D, double 0xBF71F3A6177F2F9D, double 0xBF64B9A671565B9F, double 0xBF70CD2ACA4E69ED, double 0xBF6C002623403D76, double 0xBF734E204CF7CA1F, double 0xBF64EB40CD8B6128, double 0xBF5CDFE5FFE8A6A4, double 0xBF6C67B6A72A53A1, double 0xBF6EEDC2992798A5, double 0xBF66657E8B99EAA6, double 0xBF6A525DE5AA1659, double 0xBF76F2932EC7FBA1, double 0xBF62470D7A5F7BD2, double 0xBF6A265D601180D4, double 0xBF4C5D8144DD9502, double 0xBF6141C735DA5DCC, double 0xBF46F56E94326323], [504 x double] zeroinitializer }>
define double @asc_Ag_reference(i32 %0) {
%2 = sext i32 %0 to i64
%3 = getelementptr inbounds [576 x double], [576 x double]* bitcast (<{ [72 x double], [504 x double] }>* @asc_Ag_reference.asc_Ag to [576 x double]*), i64 0, i64 %2
%4 = load double, double* %3
ret double %4
}