Borommatrailokkanat

Borommatrailokkanat (Thai: บรมไตรโลกนาถ,[1][2][3][4] pronounced [bɔ̄ː.rōm.mā.trāj.lôːk.kā.nâːt]) or Trailok (1431–1488) was the king of the Ayutthaya Kingdom from 1448 to 1488. He was one of many monarchs who gained the epithet King of White Elephants (Thai: พระเจ้าช้างเผือก). He was the first Thai king to possess a "noble" or white elephant, which, according to Hindu belief, was a "glorious and happy sign".[5] His reign was also known for a massive reforms of Thai bureaucracy and a successful campaign against Lan Na. He was also revered as one of the greatest monarchs of Thailand.

Borommatrailokkanat
บรมไตรโลกนาถ
King of Ayutthaya
Statue of King Borommatrailokkanat at the Old Ayothaya townhall (ศาลากลางจังหวัดพระนครศรีอยุธยาหลังเก่า)
King of Siam
Reign1448–1488
PredecessorBorommarachathirat II
SuccessorBorommaracha III
Born1431
Ayutthaya Kingdom
Died1488
Ayutthaya Kingdom
IssueBorommaracha III
Ramathibodi II
Intharacha
Full name
Ramesuan Boromma Borommatrailokkanat Bophit
HouseSuphannaphum Dynasty
FatherBorommarachathirat II

King of Sukhothai

Prince Ramesuan (not to be confused with King Ramesuan r. 1369–1370) was born in 1431 to King Borommarachathirat II or Chao Sam Phraya. Some authors claim that his mother was a princess of the Sukhothai Kingdom, daughter of Sai Lue Thai. According to historian Michael Vickery, however, this is not verifiable in historic sources and may be due to a misreading or misinterpretation of a chronicle.[6]

Be that as it may, Ramesuan was born at a time when the Kingdom of Sukhothai was increasingly tied to Ayutthaya, being under its suzerainty since 1412. When King Maha Thammaracha IV (Borommapan) of Sukhothai died in 1438, Borommaracha II of Ayutthaya annexed Sukhothai and installed his own son, then seven year old Prince Ramesuan, as viceroy (uparaja) of Sukhothai.[7] When Ramesuan was 15 years old, the king sent him to Phitsanulok (which had replaced the city of Sukhothai as capital around 1430) to rule the former territories of Sukhothai which were now known as the "northern cities" (Mueang Nuea) and increase the control of the ruling family over them.

Borommaracha II died in 1448, Prince Ramesuan was then crowned King Borommatrailokkanat of Ayutthaya, making a personal union between Sukhothai and Ayutthaya.[8]

Reforms

Bureaucracy

Borommatrailokkanat reformed the Thai bureaucracy – the system lasted well into the 20th century. He separated civil and military officials, giving them titular ranks and feudal ranks to create the hierarchy of nobility, or life-nobles.[9] He also established the mandalas: Inner Cities, Outer Cities, and Tributaries. He also stopped the tradition of appointing royal princes to govern cities, as they had always clashed with each other in times of succession. Borommatrailokkanat promulgated Ayutthayan Law in 1458.

The traditional ministries of Thailand—the Kalahom (predecessor of today's ministry of defence) and the Mahatthai (precursor of the ministry of interior)—were introduced by Borommatrailokkanat. Originally they were meant to serve as simultaneous military and civil Greater Officers of State for the north and south, respectively.[10]

Feudal rank

Also in his reign in 1454, the Thai royal and noble titles were first codified under the hierarchy system called sakdina. Each subject was given a numerical ranking corresponding to the number of rai of land he was entitled to.[11]

Royal rank

Borommatrailokkanat adopted the position of Uparaja, translated as "Deputy-King", "viceroy" or "underking", usually held by the king's senior son, or full brother, or the sons of their queens, in an attempt to regularize the succession to the throne — a particularly difficult feat for a polygamous dynasty. In practice, there was inherent conflict between king and uparaja and frequent disputed successions. He appointed his eldest son Uparaja of Ayutthaya while he lived in Phitsanulok for twenty-five years, keeping Chiang Mai under control. Eventually, a younger son was made the Uparaja of Phitsanulok, junior to the Uparaja of Ayutthaya.[12]

Tributary relationships of Cities

In 1468, Borommatrailokkanat adopted a mandala tributary system, and ranked the cities recognizing him as overlord. Phitsanulok and Nakhon Sri Thamarat were listed among the eight great first-rank cities (Phraya maha nakhon). The mueangs Sing, In and Phrom were downgraded to be the level of four cities (เมืองจัตวา) under Lopburi. Governors of first class towns were chao phraya, second class were phraya, third class were phra, fourth class were luang, fifth class were khun, and sixth class were muen.[9]

Foreign relations

In 1455, Borommatrailokkanat sent envoys to the Malacca Sultanate. The Thai had been suspicious of the sultanate since its conversion to Islam. The expedition was mentioned in Portuguese chronicles, written several years later, as not of great significance.[13]

Wars with Lan Na

Yutthitthira, a Sukhothai royal and Boromtrailokkanat’s relative, was the king's close childhood friend. He himself had promised Yuttittira the title of uparaja. However, after Borommatrailokkanat’s reforms, Yuttittira ended up with the title of the Governor of Phichit. Yutthitthira then claimed to be the rightful king of Sukhothai.

Lan Na under Tilokkarat was so powerful that he led armies down south to subjugate Ayutthaya. In 1456, Yutthitthira sought Tilokkarat’s support and led the Lan Na armies to capture Sukhothai and proceeded further towards Ayutthaya. Borommatrailokkanat, however, led armies to successfully defeat Lan Na.

Tilokarat of mueang Chiang Mai, and Yutthitthira, governor of mueang Sawankhalok led the Lan Na armies to invade Ayutthaya but without achieving fruitful results and retreated. Trailokkanat then took this opportunity to retake Sukhothai. Borommatrailokkanat, upon seeing the seriousness of the wars, made Phitsanulok his base, moving the capital from Ayutthaya.[14]:69–70

Borommatrailokkanat, accompanied by more than 2000 followers, was the first Thai king to be ordained as a Buddhist monk. The ordination took place at Wat Chulamani, Phitsanulok, in 1461.

In 1463, Lan Na invaded again. Borommatrailokkanat sent his son, Prince Intharacha, to crush the invading armies. Indraracha defeated Yutthitthira but was killed during battles against Nagara, Tilokkarat’s uncle. However, Lan Na was plunged by her own internal princely conflicts. In 1474, Borommatrailokkanat finally expelled Lan Na out of Ayutthaya territories. The next year, Tilokarat sought peace settlements.

In Phitsanulok, Borommatrailokkanat ordered the establishment of new temples as well as the restoration of existing older ones. He ordered the construction of a cetiya and other buildings at Wat Ratchaburana, Phitsanulok, for example.

Legacy

In 1485, Borommatrailokkanat appointed his son Prince Chaiyachettha (later Ramathibodi II) as the Uparaja and King of Sukhothai. The title "King of Sukhothai" then became a title for Ayutthayan Crown Prince. However, upon Borommatrailokkanat's death in 1488, his two sons inherited the two kingdoms, thus separating the union once again.

Among the institutions named for Borommatrailokkanat include:

Ancestors

gollark: > `x = _(int(0, e), int(e, е))`You may note that this would produce slices of 0 size. However, one of the `e`s is a homoglyph; it contains `2 * e`.`return Result[0][0], x, m@set({int(e, 0), int(е, e)}), w`From this, it's fairly obvious what `strassen` *really* does - partition `m1` into 4 block matrices of half (rounded up to the nearest power of 2) size.> `E = typing(lookup[2])`I forgot what this is meant to contain. It probably isn't important.> `def exponentiate(m1, m2):`This is the actual multiplication bit.> `if m1.n == 1: return Mаtrix([[m1.bigData[0] * m2.bigData[0]]])`Recursion base case. 1-sized matrices are merely multiplied scalarly.> `aa, ab, ac, ad = strassen(m1)`> `аa, аb, аc, аd = strassen(m2)`More use of homoglyph confusion here. The matrices are quartered.> `m = m1.subtract(exponentiate(aa, аa) ** exponentiate(ab, аc), exponentiate(aa, аb) ** exponentiate(ab, аd), exponentiate(ac, аa) ** exponentiate(ad, аc), exponentiate(ac, аb) ** exponentiate(ad, аd)) @ [-0j, int.abs(m2.n * 3, m1.n)]`This does matrix multiplication in an inefficient *recursive* way; the Strassen algorithm could save one of eight multiplications here, which is more efficient (on big matrices). It also removes the zero padding.> `m = exponentiate(Mаtrix(m1), Mаtrix(m2)) @ (0j * math.sin(math.asin(math.sin(math.asin(math.sin(math.e))))), int(len(m1), len(m1)))`This multiples them and I think also removes the zero padding again, as we want it to be really very removed.> `i += 1`This was added as a counter used to ensure that it was usably performant during development.> `math.factorial = math.sinh`Unfortunately, Python's factorial function has really rather restrictive size limits.> `for row in range(m.n):`This converts back into the 2D array format.> `for performance in sorted(dir(gc)): getattr(gc, performance)()`Do random fun things to the GC.
gollark: > `globals()[Row + Row] = random.randint(*sys.version_info[:2])`Never actually got used anywhere.> `ε = sys.float_info.epsilon`Also not used. I just like epsilons.> `def __exit__(self, _, _________, _______):`This is also empty, because cleaning up the `_` global would be silly. It'll be overwritten anyway. This does serve a purpose, however, and not just in making it usable as a context manager. This actually swallows all errors, which is used in some places.> `def __pow__(self, m2):`As ever, this is not actual exponentiation. `for i, (ι, 𐌉) in enumerate(zip(self.bigData, m2.bigData)): e.bigData[i] = ι + 𐌉` is in fact just plain and simple addition of two matrices.> `def subtract(forth, 𝕒, polynomial, c, vector_space):`This just merges 4 submatrices back into one matrix.> `with out as out, out, forth:`Apart from capturing the exceptions, this doesn't really do much either. The `_` provided by the context manager is not used.> `_(0j, int(0, 𝕒.n))`Yes, it's used in this line. However, this doesn't actually have any effect whatsoever on the execution of this. So I ignore it. It was merely a distraction.> `with Mаtrix(ℤ(ℤ(4))):`It is used again to swallow exceptions. After this is just some fluff again.> `def strassen(m, x= 3.1415935258989):`This is an interesting part. Despite being called `strassen`, it does not actually implement the Strassen algorithm, which is a somewhat more efficient way to multiply matrices than the naive way used in - as far as I can tell - every entry.> `e = 2 ** (math.ceil(math.log2(m.n)) - 1)`This gets the next power of two in a fairly obvious way. It is used to pad out the matrix to the next power of 2 size.> `with m:`The context manager is used again for nicer lookups.> `Result[0] += [_(0j, int(e, e))]`Weird pythonoquirkiness again. You can append to lists in tuples with `+=`, but it throws an exception as they're sort of immutable.> `typing(lookup[4])(input())`It's entirely possible that this does things.
gollark: > `def __eq__(self, xy): return self.bigData[math.floor(xy.real * self.n + xy.imag)]`This actually gets indices into the matrix. I named it badly for accursedness. It uses complex number coordinates.> `def __matmul__(self, ǫ):`*This* function gets a 2D "slice" of the matrix between the specified coordinates. > `for (fοr, k), (b, р), (whіle, namedtuple) in itertools.product(I(*int.ℝ(start, end)), enumerate(range(ℤ(start.imag), math.floor(end.imag))), (ǫ, ǫ)):`This is really just bizarre obfuscation for the basic "go through every X/Y in the slice" thing.> `out[b * 1j + fοr] = 0`In case the matrix is too big, just pad it with zeros.> `except ZeroDivisionError:`In case of zero divisions, which cannot actually *happen*, we replace 0 with 1 except this doesn't actually work.> `import hashlib`As ever, we need hashlib.> `memmove(id(0), id(1), 27)`It *particularly* doesn't work because we never imported this name.> `def __setitem__(octonion, self, v):`This sets either slices or single items of the matrix. I would have made it use a cool™️ operator, but this has three parameters, unlike the other ones. It's possible that I could have created a temporary "thing setting handle" or something like that and used two operators, but I didn't.> `octonion[sedenion(malloc, entry, 20290, 15356, 44155, 30815, 37242, 61770, 64291, 20834, 47111, 326, 11094, 37556, 28513, 11322)] = v == int(bool, b)`Set each element in the slice. The sharp-eyed may wonder where `sedenion` comes from.> `"""`> `for testing`> `def __repr__(m):`This was genuinely for testing, although the implementation here was more advanced.> `def __enter__(The_Matrix: 2):`This allows use of `Matrix` objects as context managers.> `globals()[f"""_"""] = lambda h, Ĥ: The_Matrix@(h,Ĥ)`This puts the matrix slicing thing into a convenient function accessible globally (as long as the context manager is running). This is used a bit below.
gollark: * desired
gollark: I can write some code for this if desisred.

References

  1. Becker & Thongkaew 2008, p. 166.
  2. "An Overview of Government and Politics in Thailand". Royal Thai Embassy, Seoul. 2014. Retrieved 2015-05-06.
  3. Schober 2002, p. 196.
  4. Chirapravati & McGill 2005, pp. 54, 65, 119.
  5. Chunlachakkraphong 1967, p. 39.
  6. Michael Vickery (1978). "A Guide through some Recent Sukhothai Historiography". Journal of the Siam Society. 66 (2): 182–246, at pp. 189–190.
  7. David K. Wyatt (2004). Thailand: A Short History (Second ed.). Silkworm Book. pp. 58–59.
  8. Chunlachakkraphong 1967, p. 31.
  9. Chunlachakkraphong 1967, p. 34.
  10. Chunlachakkraphong 1967, p. 33.
  11. Chunlachakkraphong 1967, p. 35.
  12. Chunlachakkraphong 1967, p. 32-33.
  13. http://www.bloggang.com/mainblog.php?id=rattanakosin225&month=17-03-2007&group=2&gblog=16
  14. Rajanubhab, D., 2001, Our Wars With the Burmese, Bangkok: White Lotus Co. Ltd., ISBN 9747534584

Bibliography

Borommatrailokkanat
Born: 1431 Died: 1488
Regnal titles
Preceded by
Borommarachathirat II
King of Ayutthaya
1448–1488
Succeeded by
Borommaracha III
Preceded by
Establishment of a new position
Viceroy of Ayutthaya
1438–1448
Succeeded by
Chetta
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.