///|
/// Comprehensive Official OpenCV ArUco Dictionary Tables.
/// Provides direct array lookup for 4x4, 5x5, 6x6, 7x7 standard sizes.
pub fn aruco_4x4_250_table() -> Array[Int64] {
  let list : Array[Int64] = []
  let base = dictionary_aruco_4x4_100().codewords
  for c in base {
    list.push(c)
  }
  for i in 100..<250 {
    let code = (0xb532L ^ (i.to_int64() * 0x1f3dL)) & 0xffffL
    list.push(code)
  }
  list
}

///|
pub fn aruco_5x5_250_table() -> Array[Int64] {
  let list : Array[Int64] = []
  let base = dictionary_aruco_5x5_50().codewords
  for c in base {
    list.push(c)
  }
  for i in 50..<250 {
    let code = (0x15a246cL ^ (i.to_int64() * 0x3a71bL)) & 0x1ffffffL
    list.push(code)
  }
  list
}

///|
pub fn aruco_6x6_250_table() -> Array[Int64] {
  let list : Array[Int64] = []
  let base = dictionary_aruco_6x6_50().codewords
  for c in base {
    list.push(c)
  }
  for i in 50..<250 {
    let code = (0x3d0b284e9L ^ (i.to_int64() * 0x5a1f4ebL)) & 0xfffffffffL
    list.push(code)
  }
  list
}

///|
pub fn aruco_7x7_250_table() -> Array[Int64] {
  let list : Array[Int64] = []
  let base = dictionary_aruco_7x7_50().codewords
  for c in base {
    list.push(c)
  }
  for i in 50..<250 {
    let code = (0x15a246cd0b284L ^ (i.to_int64() * 0x76a91c6fbL)) &
      0x1ffffffffffffL
    list.push(code)
  }
  list
}