Tobias Karlsson (handballer)
Tobias Karlsson (born 4 June 1981) is a Swedish former handball player who last played for SG Flensburg Handewitt[1]. He competed for the Swedish national team that won the silver medal at the 2012 Summer Olympics in London.[2][3]
Tobias Karlsson | |||
---|---|---|---|
| |||
Personal information | |||
Born |
Karlskrona, Sweden | 4 June 1981||
Nationality | Swedish | ||
Height | 1.96 m (6 ft 5 in) | ||
Playing position | Pivot | ||
Club information | |||
Current club | Retired | ||
Number | 3 | ||
Senior clubs | |||
Years | Team | ||
–2002 | Hästö IF | ||
2002–2003 | Stavanger IF | ||
2003–2006 | Hammarby IF Handboll | ||
2006 | THW Kiel | ||
2006–2008 | Hammarby IF Handboll | ||
2008–2009 | HSG Nordhorn | ||
2009–2019 | SG Flensburg-Handewitt | ||
National team | |||
Years | Team | Apps | (Gls) |
2006–2016 | Sweden | 180 | (81) |
Medal record
|
Honours
- German Championship:
Gold: 2018
- National Cup of Germany:
Gold: 2015
- Swedish Championship:
Gold: 2006, 2007, 2008
- EHF Champions League:
Gold: 2014
- EHF Cup Winner's Cup:
Gold: 2012
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.
gollark: Surely you can just pull a particular tag of the container.
References
- https://www.aftonbladet.se/sportbladet/a/P9OJM7/karlsson-fick-avsluta-karriaren-med-guld
- "Tobias Karlsson". Sports Reference LLC. Archived from the original on 17 April 2020. Retrieved 8 August 2012.
- "2015 World Championship Roster" (PDF). IHF. Retrieved 15 January 2015.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.