Suhma Kingdom

Suhma Kingdom was an ancient state during the Late Vedic period on the eastern part of the Indian Subcontinent, which originated in the region of Bengal. This kingdom was mentioned in the epic Mahabharata along with its neighbouring kingdom Prasuhma.

Part of a series on the
History of Bengal

References in Mahabharata

The founders of Angas, Vangas, Kalingas, Pundras and Suhmas shared a common ancestry. They were all adopted sons of a king named Vali (Bali), born by a sage named Gautama Dirghatamas, who lived in Magadha close to the city of Girivraja.[1][2]

Military expeditions to Suhma

Pandu (the father of Pandavas) after defeating the Magadhas and the Videhas of Mithila, led his army against Kasi, Suhma, and Pundra, as well as by the strength and prowess of his arms spread the fame of the Kurus.

Arjuna, that bull amongst the son of Pandu, at the head of all his troops, fiercely attacked the regions called Suhma and Sumala during his military campaign to collect tribute to Yudhishthira's Rajasuya.

Bhima vanquished in battle the Suhmas and the Prasuhmas. The Pandava Bhima subjugated in battle those strong and brave heroes of fierce prowess. The heroic and mighty Vasudeva, the king of Pundra and king Mahaujah who reigned in Kausika-Kachchha, and then attacked the king of Vanga. Having vanquished Samudrasena and king Chandrasena and Tamralipta, and also the king of the Kaivartas and the ruler of the Suhmas, as also the kings that dwelt on the sea-shore, that bull among the Bharatas then conquered all Mleccha tribes. Karna also subjugated the Pundras and Suhmas.

The fourth canto of the epic poem Raghuvamsa, written by Kalidasa mentions that King Raghu of Ikshavaku Dynasty during his conquest in the East, he had defeated the Suhmas.In order to save their lives, they begged for his mercy. The then king (whose name is not mentioned in the Raghuvamsa) was ousted from his throne by King Raghu, but was later rethroned by him, when the king pleaded him and offered him with innumerable riches.[3]

gollark: I didn't do any horrible homoglyph hacks with THAT.
gollark: It uses the function, yes.
gollark: So, I finished that to highly dubious demand. I'd like to know how #11 and such work.
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.

See also

Notes

  • Mahabharata of Krishna Dwaipayana Vyasa, translated to English by Kisari Mohan Ganguli

References

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.