Paul Daimler

Paul Daimler (September 13, 1869 – December 15, 1945) was a German mechanical engineer who designed automobiles. He was the eldest child of Gottlieb Daimler who founded Daimler-Motoren-Gesellschaft and (with Wilhelm Maybach) invented the petrol engine.

The Austro-Daimler armoured car

After studying at the Technische Hochschule Stuttgart, he worked in his father's factory in Cannstatt. On November 10, 1885 he travelled with his father in the "riding car"—the world's first motorcycle—from Cannstatt to Untertürkheim. In 1902, Paul was sent to the general partners of Austro-Daimler, where he became the technical director. In 1903, he designed an armoured car. From 1907 to 1922 he was Technical Director of Daimler-Motoren-Gesellschaft Untertürkheim, Sindelfingen and Berlin-Marienfelde. On July 1, 1923, he joined Horch, part of Argus Motoren Gesellschaft and made a name for himself there as a developer in the department of motor aircraft engines, remaining until 1928.

Examples of his work include the hydraulic valve lifters, which he introduced in 1931.

Publications

  • Daimler, Paul (December 1901). "The Development Of The Petroleum Automobile". Engineering Magazine. XXII (3): 350. Retrieved 2009-08-15.
gollark: It allocates memory and doesn't consider it a side effect.
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.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.