Sandy Pearson

Major General Cedric Maudsley Ingram "Sandy" Pearson, AO, DSO, OBE, MC (24 August 1918[3] – 7 November 2012) was an Australian Army officer. He was a Commander of Australian Forces during the Vietnam War, Commandant of the Royal Military College, Duntroon and Director of the Royal Agricultural Society of New South Wales.[4]

Cedric Maudsley Ingram Pearson
Nickname(s)"Sandy"
Born(1918-08-24)24 August 1918
Kurri Kurri, New South Wales
Died7 November 2012(2012-11-07) (aged 94)
Narrabeen, New South Wales
AllegianceAustralia
Service/branchAustralian Army
Years of service1937–1975
RankMajor General
Commands heldRoyal Military College, Duntroon (1970–73)
1st Division (1969–70)
1st Australian Task Force (1968–69)
1st Battalion, Royal Australian Regiment (1962–64)
Battles/warsSecond World War
Indonesia–Malaysia confrontation
Vietnam War
AwardsOfficer of the Order of Australia
Distinguished Service Order
Officer of the Order of the British Empire
Military Cross
Legion of Merit (United States)[1]
Knight of the National Order of Vietnam[2]
Cross of Gallantry with Palm (Vietnam)[2]

Early life and family

CMI Pearson (known as Sandy) was born in Kurri Kurri, New South Wales,[3] the son of Margaret and the Rev. George Ingram Pearson, a Methodist minister.[5] He was the younger brother of Dr H. H. Pearson.[6] Pearson attended Newington College (1932–1936)[7] before graduating from the Royal Military College, Duntroon, in 1940.

Army career

  • Served Second World War, (1942–1945)[3]
  • Served Singapore, (1966–1968)
  • Commander 1st Australian Task Force, Vietnam, (1968–1969)[8][9]
  • Commandant, Royal Military College, Duntroon, (1970–1973)[9]
  • Chief of Personnel, Australian Army, (1973–1975)

Post army career

  • Exexcutive Director, Royal Agricultural Society of NSW, (1976–1983)
  • Director, Brickworks Ltd, (1983–1998)

Committees

  • RSL Committees, (1977–2002)
  • Newington College Council, (1978–1998)
  • NSW Homeless Children, (1981–1990)

Death

Aged 94, Pearson died on 7 November 2012 at the RSL Village in Narrabeen, New South Wales.[10] His funeral was held eight days later at the Newington College Chapel, Stanmore.

Notes

  1. Barnes 1974, p. 80.
  2. Barnes 1974, p. 84.
  3. PEARSON, Cedric Mandsley Ingram, memorial.act.gov.au
  4. Crown Content Who's Who in Australia 2007 p. 1622
  5. "LATE REV. G. INGRAM PEARSON". The Methodist (Sydney, NSW : 1892 – 1954). Sydney, NSW: National Library of Australia. 7 September 1940. p. 4. Retrieved 17 January 2015.
  6. Herbert Hilary (Hugh) Ingram Pearson
  7. Newington College Register of Past Students 1863–1998 (Syd, 1999) p. 154
  8. Commander 1st Australian Task Force at the time of the Battle of Binh Ba (image)
  9. Vietnam vets honoured – Local News – News – The Manly Daily. Manly-daily.whereilive.com.au. Retrieved on 2011-04-06.
  10. "Vale: Major General 'Sandy' Pearson". 7th Battalion, The Royal Australian Regiment Association website. 7 November 2012. Retrieved 9 November 2012.
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.
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.

References

  • Barnes, I.L. (1974). Australian Gallant and Distinguished Service, Vietnam 1962–1973: Being a Record of British and Foreign Decorations Awarded to Australian Servicemen. Canberra, Australia: Military Historical Society of Australia. ISBN 0909859108.CS1 maint: ref=harv (link)
Military offices
Preceded by
Major General Colin Fraser
Commandant of the Royal Military College, Duntroon
1970–1973
Succeeded by
Major General Robert Hay
Preceded by
Brigadier Stuart Weir
(Acting)
Commander 1st Division
1969–1970
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.