text:
Get Started
Reference
Forum & Help
Gallery

## √-1

ROOT enables statistically sound scientific analyses and visualization of large amounts of data: today, more than 1 exabyte (1,000,000,000 gigabyte) are stored in ROOT files. The Higgs was found with ROOT!

As high-performance software, ROOT is written mainly in C++. You can use it on Linux, macOS, or Windows; it works out of the box. ROOT is open source: use it freely, modify it, contribute to it!

## \$ _

ROOT comes with an incredible C++ interpreter, ideal for fast prototyping. Don’t like C++? ROOT integrates super-smoothly with Python thanks to its unique dynamic and powerful Python ⇄ C++ binding. Or what about using ROOT in a Jupyter notebook?

Issues? GitHub! (09 Sep 2020)

First of all: a big THANK YOU for submitting bugs for ROOT. We appreciate the effort: finding the issue-submission web page, explaining what the problem is, and sometimes even providing a reproducer.

Living at ROOT's bleeding edge, with Conda (19 Aug 2020)

Sometimes ROOT users get bitten by nasty bugs, and we ROOT developers try our best to squash them as quickly as possible. New features and improvements are also constantly merged in ROOT’s main development branch, either coming from ROOT developers or as contributions from the community. Be it bug fixes or new features, however, users typically have to wait for a ROOT release that includes them to try them out. Or, you know, compile the very latest ROOT from source code – but nobody has time for that!

Building ROOT fast - distributed compilation with distcc (12 Aug 2020)

Hello there, here is Stefan with a short guide on how you can distribute ROOT compilation with distcc!

ROOT Docker images reloaded (29 Jul 2020)

Hello, Enrico here with an update on the ROOT Docker images!

New ROOT Web Site! (22 Jun 2020)

If you are reading this blog post it means you are surfing on the New ROOT Web Site!

More ...


text:
# Basic normalmap material does not render smooth in Blender 2.93.1 eevee

I have this normalmap material that renders smooth in eevee in Blender 2.92.0 but doesn't in Blender 2.93.1

What is needed to do in order to make the material render smooth in Blender 2.93.1?

The .blend file (Saved in Blender2.93.1) is provided below, and some screenshots as well.

Google drive link for the .blend file (Saved in Blender2.93.1): https://drive.google.com/file/d/1AfRX1_uSktKyhhep-o5AGKZ2eTi44gqn/view?usp=sharing

• First thing I would try, is changing the Normal Map image texture's Color Space from sRGB to Non-Color. (This is proper convention for normal maps). Dec 7 '21 at 16:18

Any image texture that is not used as a color data should have its Color Space set to Non-Color:

This is required for its data to be interpreted correctly.

format: plain


text:
# Ingesting the secondary index into Qserv from local files

XMLWordPrintable

#### Details

• Type: Improvement
• Status: Done
• Resolution: Done
• Fix Version/s: None
• Component/s:
• Labels:
None
• Story Points:
4
• Epic Link:
• Sprint:
DB_F20_09
• Team:
Data Access and Database

# Objectives

An implementation of the "secondary index" builder in the current version of the Replication/Ingest system requires that intermediate files (index contributions into the index table) were placed at a folder that would be directly seen by the MySQL server of Qserv czar. Once a file is placed into that folder the Master Controller of the Replication system would issue MySQL statement to load the file in the table:

 LOAD DATA INFILE ...

As a direct consequence of that, both the MySQL server's container and the Replication Controller containers are required to share a folder where the contributions get stored. A problem is that in the Kubernetes environment, this is not always possible. It also makes the implementation of such distributed applications more complex and error-prone.

Hence, the goal of this effort is to extend the implementation of the system to allow an option for loading contributions using MySQL statements of the following kind:

 LOAD DATA LOCAL INFILE ...

## Notes

According to the MySQL documentation of this table ingest technique https://dev.mysql.com/doc/refman/8.0/en/load-data.html one should be aware of the following caveats of the technique:

• error handlings gets more complex:
• incorrect data and duplicate keys may be ignored during the ingest
• any problems are reported by MySQL at the WARNING level rather than be reported as errors
• the overall performance of the index builder may be affected

The last complication should be taken with care due to a scale of the index (in terms of the number of rows to be ingested into the index table). In some past tests, it took up to 24 hours to load a table comprising 18 billion rows.

Additional considerations for using the proposed mechanism in the Qserv deplotements:

## Documentation

Update the following documents due to changes in the REST API and behavior of the new implementation:

#### Activity

Hide
Igor Gaponenko added a comment - - edited

# Large scale tests of the extended protocol

Using catalog sdss_stripe82_01 and director table RunDeepSource for the tests. The table is large enough to study effects of the new protocol.

Record the current number of objects in the "secondary index" of the catalog for the quality control of the tests:

 % mysql --protocol=tcp -hlocalhost -P3306 -uroot -p***** qservMeta \  -e "SELECT COUNT(*) FROM qservMeta.sdss_stripe82_01__RunDeepSource"

 +-----------+ | COUNT(*) | +-----------+ | 186671762 | +-----------+

Rebuild the catalog using the original non-local version of the builder (by default, if option local is not specified, it's assumed to be 0):

 % time curl http://localhost:25080/ingest/index/secondary -X POST \  -H 'Content-Type: application/json' \  -d'{"auth_key":"kukara4a","database":"sdss_stripe82_01","allow_for_published":1,"rebuild":1}'   real 19m6.626s user 0m0.029s sys 0m0.039s

Check the numbe of objects in the updated index:

 SELECT COUNT(*) FROM qservMeta.sdss_stripe82_01__RunDeepSource; +-----------+ | COUNT(*) | +-----------+ | 186671762 | +-----------+

NOw, rebuild the index using the local option:

 % time curl http://localhost:25080/ingest/index/secondary -X POST \  -H 'Content-Type: application/json' \  -d'{"auth_key":"kukara4a","database":"sdss_stripe82_01","allow_for_published":1,"rebuild":1,"local":1}'   real 19m9.016s user 0m0.028s sys 0m0.047s

Check the number of entries in the index table to ensure it's the same as before:

 SELECT COUNT(*) FROM qservMeta.sdss_stripe82_01__RunDeepSource; +-----------+ | COUNT(*) | +-----------+ | 186671762 | +-----------+

## Conclusions:

• the new version of the builder produces similar results as the older one ( a simple method of counting rows is still sufficient to demonstrate the "similarity" due to UNIQUE constraint on the primary key of the table).
• performance degradation of the non-local build mode versus the local one is negligible, thereforo it's no longer a point of concern.
Show
Igor Gaponenko added a comment - - edited Large scale tests of the extended protocol Using catalog sdss_stripe82_01 and director table RunDeepSource for the tests. The table is large enough to study effects of the new protocol. Record the current number of objects in the "secondary index" of the catalog for the quality control of the tests: % mysql --protocol=tcp -hlocalhost -P3306 -uroot -p***** qservMeta \ -e "SELECT COUNT(*) FROM qservMeta.sdss_stripe82_01__RunDeepSource" + -----------+ | COUNT (*) | + -----------+ | 186671762 | + -----------+ Rebuild the catalog using the original non-local version of the builder (by default, if option local is not specified, it's assumed to be 0 ): % time curl http: //localhost :25080 /ingest/index/secondary -X POST \ -H 'Content-Type: application/json' \ -d '{"auth_key":"kukara4a","database":"sdss_stripe82_01","allow_for_published":1,"rebuild":1}'   real 19m6.626s user 0m0.029s sys 0m0.039s Check the numbe of objects in the updated index: SELECT COUNT (*) FROM qservMeta.sdss_stripe82_01__RunDeepSource; + -----------+ | COUNT (*) | + -----------+ | 186671762 | + -----------+ NOw, rebuild the index using the local option: % time curl http: //localhost :25080 /ingest/index/secondary -X POST \ -H 'Content-Type: application/json' \ -d '{"auth_key":"kukara4a","database":"sdss_stripe82_01","allow_for_published":1,"rebuild":1,"local":1}'   real 19m9.016s user 0m0.028s sys 0m0.047s Check the number of entries in the index table to ensure it's the same as before: SELECT COUNT (*) FROM qservMeta.sdss_stripe82_01__RunDeepSource; + -----------+ | COUNT (*) | + -----------+ | 186671762 | + -----------+ Conclusions: the new version of the builder produces similar results as the older one ( a simple method of counting rows is still sufficient to demonstrate the "similarity" due to UNIQUE constraint on the primary key of the table). performance degradation of the non-local build mode versus the local one is negligible, thereforo it's no longer a point of concern.
Hide
Nate Pease added a comment -

I had one very minor comment, but otherwise looks fine.

Show
Nate Pease added a comment - I had one very minor comment, but otherwise looks fine.

#### People

Assignee:
Igor Gaponenko
Reporter:
Igor Gaponenko
Reviewers:
Nate Pease
Watchers:
Fabrice Jammes, Fritz Mueller, Igor Gaponenko, Nate Pease
Votes:
0 Vote for this issue
Watchers:
4 Start watching this issue

#### Dates

Created:
Updated:
Resolved:


text:
# Older blog entries for cvr (starting at number 5)

Write registers in TeX

Prolog The io registers in TeX are often a matter of severe limitation. When we try to typeset a document that loads a lot of packages, it becomes a non-trivial task to satisfy register requirements of various packages that compete each other. It is further complicated, if refining the typeset copy involves usage of more [...]

Syndicated 2010-08-26 07:07:05 from Blue Danube

Plain TeX and TeX4ht

If you try to generate html version of your plain TeX document using a combination of pdfTeX and TeX4ht, you will find terrible mismatches and html version will not be generated. The reason for the problem is TeX4ht needs a dvi output from which it extracts the html while pdfTeX generates a pdf by default. [...]

Syndicated 2010-08-21 10:38:54 from Blue Danube

My Dreams

I have two dreams — one is the sustainable community and the other is an autobiographical manual of TeX programming. Ever since I got a job in the federal shipping ministry at Delhi in 1973, I have been aggressively campaigning for the formation of a commune (similar to a Kibbutz in Israel) among my friends, [...]

Syndicated 2010-08-01 15:40:29 from Blue Danube

Ten Years in River Valley

On July 17, 2010, we had a small function in the afternoon to honour twenty six of our staff members who have put in more than ten years of service in this company. They were presented with mementos, granted extra increments to their salaries and several staff members felicitated them. The occasion was graced by [...]

Syndicated 2010-07-31 14:36:14 from Blue Danube

Plans for a Sustainable Community

The core objective The most important aim of our sustainable community is to recreate the human support network, the great advantage of our old joint family system which faded away with the advent of nuclear family. We want to bring it back to suit modern day living where freedom and execution of one’s freewill assume [...]

Syndicated 2010-07-31 10:34:08 from Blue Danube

How to fill the rest of the page with horizontal rules?

This was a posting in the texhax mailing list of TeX Users Group. Among all, Phil Taylor s solution seemed to be the best. I have extended to fill arbitrary vertical remaining space in a page in the following manner: \newdimen\spaceleft \def\pagespace{% \ifdim\pagetotal=0pt \spaceleft=\vsize \else \spaceleft=\pagegoal \advance\spaceleft by-\pagetotal \fi} \def\fillWithLines{\null{}\pagespace\vbox to \spaceleft {\xleaders \vbox to [...]

Syndicated 2010-01-11 14:38:14 from Blue Danube


text:
# $\Diamond$ is equivalent to $\clubsuit$ and continuum hypothesis

If $S$ is a stationary subset of $\kappa$ and $\lambda<\kappa$ implies $2^{\lambda}\leq\kappa$ then

 $\Diamond_{S}\leftrightarrow\clubsuit_{S}$

Moreover, this is best possible: $\neg\Diamond_{S}$ is consistent with $\clubsuit_{S}$.

Title $\Diamond$ is equivalent to $\clubsuit$ and continuum hypothesis DiamondIsEquivalentToclubsuitAndContinuumHypothesis 2013-03-22 12:53:55 2013-03-22 12:53:55 Henry (455) Henry (455) 6 Henry (455) Theorem msc 03E45 diamond is equivalent to club and continuum hypothesis Diamond Clubsuit


text:
## Rainbows

###### When the Sir Isaac Newton explained the colours of the rainbow with refraction the poet John Keats was horrified. Keats complained (through poetry of course) that a mathematical explanation robbed these marvels of nature of their magic.

Whether you, dear reader, agree with Keats’ view or not, it is time to deep dive into the mathematical explanation, requiring just basic geometry of lines and circles. As we will see, the explanation is just as elegant as the rainbows themselves.
When sunlight enters a droplet from any angle some light is reflected and some is refracted into the raindrop. We most commonly encounter refraction when we look at a straw in a glass, it seems distorted and cut off. How much light is refracted is determined by the refraction index $Latex formula$ which is simply $Latex formula$; the speed of light in vacuum divided by the speed of light in the new medium which makes n a number between one and (usually) two.
Due to this underlying mechanism, the angle of the light beam changes according to Snell’s law $Latex formula$ , where $Latex formula$ is the refractive index of the first medium (air, $Latex formula$ = 1) and $Latex formula$ is the incidental angle. The secondary angle is a bit smaller because the refractive index of water is around 1,34.  From here some of the sunlight reflects off the back side of the raindrop and then leaves the raindrop through the “bottom” where the light is refracted again, same as when it entered the raindrop.

Now, depending on where the light enters the raindrop it will exit the raindrop at different angles. We can calculate the total deflection D by adding up all grey angles $Latex formula$. We then calculate the derivative for the incidental angle to find the minimum. This minimum angle has the most intense light and creates what we can see as a rainbow. Remember that we are plotting the total deflection, the angle between the sunlight and you looking up will be 180°-D. This ends up to be around 42° and does not depend on the size of the water droplet.

Supposedly Descartes (mostly known for his philosophy) figured all this out graphically, but he did not understand why the rainbow showed different colors. He didn’t know that every medium has a different refractive index for each color which is a wavelength in the electro-magnetic spectrum, Blue’s refractive index is around 1,342 while red’s is around 1,331 resulting in different deflection angles.

There are so many further interesting facts to point out but I will try to keep the list short:

In theory there are many more orders of the rainbow, each one reflects light once more inside of the rain trop. The second order rainbow which has its colors reversed is the only one you can frequently see with bare eyes and is located about 10° above the first order rainbow.

Rainbows seen from the ground can only occur in the morning or the evening due to the 42°-degree angle between you and the sun. If the sun is higher than 42° -degrees, the rainbow will be below the horizon (unless you are up high and looking down). Seen from an airplane, rainbows are full circles directly opposite of the sun!

Last but not least, seawater has a higher refractive index than rain water, so the radius of the seabow is a bit smaller, making for some crazy photos!

So next time you see one of these colorful arcs appear in the sky, try to remember the elegant math behind what you’re seeing!

And as always, stay curious!


text:
7

# $\inline \fn_jvn {\color{Black} \frac{3+\sqrt{6}}{5\sqrt{3}-2\sqrt{12}-\sqrt{32}+\sqrt{50}}=?}$

 A) 3 B) 3sqrt{2} C) 6 D) None of these

Explanation:

$\inline \fn_jvn {\color{Blue}Given\; exp.= \frac{3+\sqrt{6}}{5\sqrt{3}-4\sqrt{3}-4\sqrt{2}+5\sqrt{2}}=\frac{3+\sqrt{6}}{\sqrt{3}+\sqrt{2}}}$

$\inline \fn_jvn {\color{Blue}= \frac{3+\sqrt{6}}{\sqrt{3}+\sqrt{2}}\times \frac{\sqrt{3}-\sqrt{2}}{\sqrt{3}-\sqrt{2}}=\frac{3\sqrt{3}-3\sqrt{2}+3\sqrt{2}-2\sqrt{3}}{3-2}=\sqrt{3}}$

Tags:

• Related Questions

$\inline \fn_jvn {\color{Black}If\; a= \frac{\sqrt{5}+1}{\sqrt{5}-1}\; and\; b=\frac{\sqrt{5}-1}{\sqrt{5}+1},the\; value\; of\; \left [ \frac{a^{2}+ab+b^{2}}{a^{2}-ab+b^{2}} \right ]is:}$

 A) 3/4 B) 4/3 C) 3/5 D) 5/3

Explanation:

$\inline \fn_jvn {\color{Blue}a=\frac{(\sqrt{5}+1)}{(\sqrt{5}-1)}\times \frac{(\sqrt{5}+1)}{(\sqrt{5}+1)}=\frac{(\sqrt{5}+1)^2}{(5-1)}=\frac{5+1+2\sqrt{5}}{4}=\frac{3+\sqrt{5}}{2}}$

$\inline \fn_jvn {\color{Blue}b=\frac{(\sqrt{5}-1)}{(\sqrt{5}+1)}\times \frac{(\sqrt{5}-1)}{(\sqrt{5}-1)}=\frac{(\sqrt{5}-1)^2}{(5-1)}=\frac{5+1-2\sqrt{5}}{4}=\frac{3-\sqrt{5}}{2}}$

$\inline \fn_jvn {\color{Blue}\therefore\; \; a^{2}+b^{2}=\frac{(3+\sqrt{5})^2}{4}+\frac{(3-\sqrt{5})^2}{4}=\frac{(3+\sqrt{5})^2+(3-\sqrt{5})^2}{4}=\frac{2(9+5)}{4}=7}$

$\inline \fn_jvn {\color{Blue}Also,ab=\frac{(3+\sqrt{2})}{2}\times \frac{(3-\sqrt{2})}{2}=\frac{9-5}{4}=1}$

$\inline \fn_jvn {\color{Blue}\therefore \; \; \frac{a^{2}+ab+b^{2}}{a^{2}-ab+b^{2}}=\frac{(a^{2}+b^{2})+ab}{(a^{2}+b^{2})-ab}=\frac{7+1}{7-1}=\frac{8}{6}=\frac{4}{3}}$

Subject: Square Roots and Cube Roots - Quantitative Aptitude - Arithmetic Ability

3

$\inline \fn_jvn {\color{Black}If \; x=(7-4\sqrt{3}),then\; the \; value\; of\; \left ( x+\frac{1}{x} \right )is:}$

 A) 3sqrt{3} B) 8sqrt{3} C) 14 D) 14+8sqrt{3}

Explanation:

$\inline \fn_jvn {\color{Blue} x+\frac{1}{x} =(7-4\sqrt{3})+\frac{1}{(7-4\sqrt{3})}\times \frac{(7+4\sqrt{3})}{(7+4\sqrt{3})}=(7-4\sqrt{3})+\frac{(7+4\sqrt{3})}{(49-48)}}$

$\inline \fn_jvn {\color{Blue} =(7-4\sqrt{3})+(7+4\sqrt{3})=14}$

Subject: Square Roots and Cube Roots - Quantitative Aptitude - Arithmetic Ability

22

$\inline \fn_jvn {\color{Black}If\; \frac{5+2\sqrt{3}}{7+4\sqrt{3}}=a+b\sqrt{3},then:}$

 A) a=-11,b=-6 B) a=-11,b=6 C) a=11,b=-6 D) a=11,b=6

Explanation:

$\inline \fn_jvn {\color{Blue} a+b\sqrt{3}=\frac{(5+2\sqrt{3})}{(7+4\sqrt{3})}\times \frac{(7-4\sqrt{3})}{(7-4\sqrt{3})}=\frac{35-20\sqrt{3}+14\sqrt{3}-24}{(7)^{2}-(4\sqrt{3})^{2}}=\frac{11-6\sqrt{3}}{49-48}=11-6\sqrt{3}}$

$\inline \fn_jvn {\color{Blue} \therefore a=11,b=-6}$

Subject: Square Roots and Cube Roots - Quantitative Aptitude - Arithmetic Ability

3

$\inline \fn_jvn {\color{Black}\left [ \frac{3\sqrt{2}}{\sqrt{6}-\sqrt{3}}-\frac{4\sqrt{3}}{\sqrt{6}-\sqrt{2}} -\frac{6}{\sqrt{8}-\sqrt{12}}\right ]=?}$

 A) sqtr{3}-sqrt{2} B) sqtr{3}+sqrt{2} C) 5sqrt{3} D) 1

Explanation:

$\inline \fn_jvn {\color{Blue}Given \; exp.= \frac{3\sqrt{2}}{\sqrt{6}-\sqrt{3}}\times \frac{\sqrt{6}+\sqrt{3}}{\sqrt{6}+\sqrt{3}}-\frac{4\sqrt{3}}{\sqrt{6}-\sqrt{2}}\times \frac{\sqrt{6}+\sqrt{2}}{\sqrt{6}+\sqrt{2}}-\frac{6}{2(\sqrt{2}-\sqrt{3})}}$

$\inline \fn_jvn {\color{Blue}= \frac{3\sqrt{2}(\sqrt{6}+\sqrt{3})}{6-3}-\frac{4\sqrt{3}(\sqrt{6}+\sqrt{2})}{6-2}+\frac{3}{(\sqrt{3}-\sqrt{2})}\times \frac{(\sqrt{3}+\sqrt{2})}{(\sqrt{3}+\sqrt{2})}}$

$\inline \fn_jvn {\color{Blue}=\sqrt{2}(\sqrt{6}+\sqrt{3})-\sqrt{3}(\sqrt{6}+\sqrt{2})+3(\sqrt{3}+\sqrt{2}) }$

$\inline \fn_jvn {\color{Blue}=\sqrt{12}+\sqrt{6} -\sqrt{18}-\sqrt{6}+3\sqrt{3}+3\sqrt{2}}$

$\inline \fn_jvn {\color{Blue}=2\sqrt{3}-3\sqrt{2}+3\sqrt{3}+3\sqrt{2}=5\sqrt{3}}$

Subject: Square Roots and Cube Roots - Quantitative Aptitude - Arithmetic Ability

1

$\inline \fn_jvn {\color{Black} If\; 3a=4b=6c\; and\; a+b+c=27\sqrt{29},then\sqrt{a^{2}+b^{2}+c^{2}}\; is:}$

 A) 81 B) 83 C) 87 D) None of these

Explanation:

$\inline \fn_jvn {\color{Blue} 4b=6c \Rightarrow b=\frac{3}{2}c \; \; and\; \; 3a=4b\Rightarrow a=\frac{4}{3}b=\frac{4}{3}\left ( \frac{3}{2}c \right )=2c}$

$\inline \fn_jvn {\color{Blue} a+b+c=27\sqrt{29}\Rightarrow 2c+\frac{3}{2}c+c=27\sqrt{29}\Rightarrow \frac{9}{2}c=27\sqrt{29}\Rightarrow c=6\sqrt{29}}$

$\inline \fn_jvn {\color{Blue} \therefore \sqrt{a^{2}+b^{2}+c^{2}}=\sqrt{(a+b+c)^{2}-2(ab+bc+ca)}}$

$\inline \fn_jvn {\color{Blue} =\sqrt{(27\sqrt{29})^{2}-2\left ( 2c\times \frac{3}{2} c+\frac{3}{2}c\times c+c\times 2c\right )}}$

$\inline \fn_jvn {\color{Blue} =\sqrt{(729\times 29)-2\left ( 3c^{2}+\frac{3}{2}c^{2} +2c^{2}\right )}=\sqrt{(729\times 29)-2\times \frac{13}{2}c^{2}}}$

$\inline \fn_jvn {\color{Blue} =\sqrt{(729\times 29)-13\times (6\sqrt{29})^2}=\sqrt{29(729-468)}}$

$\inline \fn_jvn {\color{Blue} =\sqrt{(29\times 261)}=\sqrt{29\times 29\times 9}=29\times 3=87}$


text:
# Map multiprocessing Issue

I’m getting this issue when I am trying to map-tokenize a large custom data set. Looks like a multiprocessing issue. Running it with one proc or with a smaller set it seems work. I’ve tried different batch_size and still get the same errors. I also tried sharding it into smaller data sets, but that didn’t help. Thoughts? Thanks!

dataset[‘test’].map(lambda e: tokenizer(e[‘texts’]), batched = True, batch_size = 1000, num_proc = 8)

error Traceback (most recent call last)
in
----> 1 dataset[‘test’].map(lambda e: tokenizer(e[‘texts’]), batched = True, batch_size = 1000, num_proc = 8)

/home/venv/lib/python3.6/site-packages/datasets/arrow_dataset.py in map(self, function, with_indices, input_columns, batched, batch_size, drop_last_batch, remove_columns, keep_in_memory, load_from_cache_file, cache_file_name, writer_batch_size, features, disable_nullable, fn_kwargs, num_proc, suffix_template, new_fingerprint)
1316 logger.info(“Spawning {} processes”.format(num_proc))
1317 results = [pool.apply_async(self.class._map_single, kwds=kwds) for kwds in kwds_per_shard]
→ 1318 transformed_shards = [r.get() for r in results]
1319 logger.info(“Concatenating {} shards from multiprocessing”.format(num_proc))
1320 result = concatenate_datasets(transformed_shards)

/home/venv/lib/python3.6/site-packages/datasets/arrow_dataset.py in (.0)
1316 logger.info(“Spawning {} processes”.format(num_proc))
1317 results = [pool.apply_async(self.class._map_single, kwds=kwds) for kwds in kwds_per_shard]
→ 1318 transformed_shards = [r.get() for r in results]
1319 logger.info(“Concatenating {} shards from multiprocessing”.format(num_proc))
1320 result = concatenate_datasets(transformed_shards)

/home/venv/lib/python3.6/site-packages/multiprocess/pool.py in get(self, timeout)
642 return self._value
643 else:
→ 644 raise self._value
645
646 def _set(self, i, obj):

422 break
423 try:
425 except Exception as e:

/home/venv/lib/python3.6/site-packages/multiprocess/connection.py in send(self, obj)
207 self._check_closed()
208 self._check_writable()
→ 209 self._send_bytes(_ForkingPickler.dumps(obj))
210
211 def recv_bytes(self, maxlength=None):

/home/venv/lib/python3.6/site-packages/multiprocess/connection.py in _send_bytes(self, buf)
394 n = len(buf)
395 # For wire compatibility with 3.2 and lower
→ 396 header = struct.pack("!i", n)
397 if n > 16384:
398 # The payload is large so Nagle’s algorithm won’t be triggered

error: ‘i’ format requires -2147483648 <= number <= 2147483647

Hi there, I got a (maybe) similar issue caused by the multiprocessing in map. Instead of opening a new thread, I thought I would use this one. Note that the error occurs only if I specify num_proc > 1, i.e. use multi-processing:

Code:

tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME, use_fast=True)

datasets = datasets.map(
batched=True,
batch_size=1000,
num_proc=2, #psutil.cpu_count()
remove_columns=['text'],
)

datasets

Error:

Token indices sequence length is longer than the specified maximum sequence length for this model (8395 > 512). Running this sequence through the model will result in indexing errors
---------------------------------------------------------------------------
RemoteTraceback                           Traceback (most recent call last)
RemoteTraceback:
"""
Traceback (most recent call last):
File "c:\Users\s_scho53\Desktop\L09_Desktop\_FiLMo\.venv\lib\site-packages\multiprocess\pool.py", line 125, in worker
result = (True, func(*args, **kwds))
File "c:\Users\s_scho53\Desktop\L09_Desktop\_FiLMo\.venv\lib\site-packages\datasets\arrow_dataset.py", line 203, in wrapper
out: Union["Dataset", "DatasetDict"] = func(self, *args, **kwargs)
File "c:\Users\s_scho53\Desktop\L09_Desktop\_FiLMo\.venv\lib\site-packages\datasets\fingerprint.py", line 337, in wrapper
out = func(self, *args, **kwargs)
File "c:\Users\s_scho53\Desktop\L09_Desktop\_FiLMo\.venv\lib\site-packages\datasets\arrow_dataset.py", line 1695, in _map_single
batch = apply_function_on_filtered_inputs(
File "c:\Users\s_scho53\Desktop\L09_Desktop\_FiLMo\.venv\lib\site-packages\datasets\arrow_dataset.py", line 1608, in apply_function_on_filtered_inputs
function(*fn_args, effective_indices, **fn_kwargs) if with_indices else function(*fn_args, **fn_kwargs)
File "<ipython-input-18-25a1ecec1896>", line 9, in <lambda>
NameError: name 'tokenizer' is not defined
"""

The above exception was the direct cause of the following exception:

NameError                                 Traceback (most recent call last)
<ipython-input-18-25a1ecec1896> in <module>
6 tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME, use_fast=True)
7
----> 8 datasets = datasets.map(
10     batched=True,

c:\Users\s_scho53\Desktop\L09_Desktop\_FiLMo\.venv\lib\site-packages\datasets\dataset_dict.py in map(self, function, with_indices, input_columns, batched, batch_size, remove_columns, keep_in_memory, load_from_cache_file, cache_file_names, writer_batch_size, features, disable_nullable, fn_kwargs, num_proc)
430             cache_file_names = {k: None for k in self}
431         return DatasetDict(
--> 432             {
433                 k: dataset.map(
434                     function=function,

c:\Users\s_scho53\Desktop\L09_Desktop\_FiLMo\.venv\lib\site-packages\datasets\dataset_dict.py in <dictcomp>(.0)
431         return DatasetDict(
432             {
--> 433                 k: dataset.map(
434                     function=function,
435                     with_indices=with_indices,

c:\Users\s_scho53\Desktop\L09_Desktop\_FiLMo\.venv\lib\site-packages\datasets\arrow_dataset.py in map(self, function, with_indices, input_columns, batched, batch_size, drop_last_batch, remove_columns, keep_in_memory, load_from_cache_file, cache_file_name, writer_batch_size, features, disable_nullable, fn_kwargs, num_proc, suffix_template, new_fingerprint)
1483                 logger.info("Spawning {} processes".format(num_proc))
1484                 results = [pool.apply_async(self.__class__._map_single, kwds=kwds) for kwds in kwds_per_shard]
-> 1485                 transformed_shards = [r.get() for r in results]
1486                 logger.info("Concatenating {} shards from multiprocessing".format(num_proc))
1487                 result = concatenate_datasets(transformed_shards)

c:\Users\s_scho53\Desktop\L09_Desktop\_FiLMo\.venv\lib\site-packages\datasets\arrow_dataset.py in <listcomp>(.0)
1483                 logger.info("Spawning {} processes".format(num_proc))
1484                 results = [pool.apply_async(self.__class__._map_single, kwds=kwds) for kwds in kwds_per_shard]
-> 1485                 transformed_shards = [r.get() for r in results]
1486                 logger.info("Concatenating {} shards from multiprocessing".format(num_proc))
1487                 result = concatenate_datasets(transformed_shards)

c:\Users\s_scho53\Desktop\L09_Desktop\_FiLMo\.venv\lib\site-packages\multiprocess\pool.py in get(self, timeout)
769             return self._value
770         else:
--> 771             raise self._value
772
773     def _set(self, i, obj):

NameError: name 'tokenizer' is not defined

I am grateful for any help!

Best solution I have found so far for my issue is to make it explicitly load the data set into RAM to avoid pickling. This does the trick, but does require a lot of RAM.

dataset = dataset.flatten_indices()

Not sure if it will solve your problem!

Hi, thanks for the reply! Unfortunately, this will not be an option as the dataset is indeed very large…

Can you shard it and load each shard individually into ram then multiprocess just that batch?

Hi ! It looks like something is not correctly pickled for multiprocessing.
Can you try to update dill and multiprocess ?
Can you try to use dill.dumps on your tokenizer or your dataset and see if it raises an error ?

Are you sure your tokenizer is defined ?
Can you re-run your notebook and try again ?

If the issues persist, I’d be happy to help you figure what’s wrong. In this case feel free to share a script or a google colab that reproduces this issue

Tried to re-run, cleaned the .cache folder, all to the same end. The error remains. When I start the script the CPU peaks for a brief moment, until the error occurs. Let me try to provide you some more context:

txt_files = [str(i) for i in PATH_DATA.glob('all_*')]

path='text',
data_files=txt_files[0],
split=None,
)

#datasets['train'] = datasets['train'].select(range(1000))
datasets['train'], datasets['test'] = datasets['train'].train_test_split(test_size=0.02, shuffle=True, seed=1234).values()
datasets['train'], datasets['val']  = datasets['train'].train_test_split(test_size=0.02, shuffle=True, seed=1234).values()

tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME, use_fast=True)

datasets = datasets.map(
batched=True,
batch_size=1000,
num_proc=psutil.cpu_count(),
remove_columns=['text'],
)

Output of the dataset after splitting:

DatasetDict({
train: Dataset({
features: ['text'],
num_rows: 210759
})
test: Dataset({
features: ['text'],
num_rows: 4390
})
val: Dataset({
features: ['text'],
num_rows: 4302
})
})

Note that I only load text files from txt_files . MODEL_NAME equals 'roberta-base'. I am note quite sure what you refer to in terms of dill.dumps tho. Sorry, I am still relatively new to the ecosystem …

EDIT1: As indicated, if I set num_proc=1 the code runs fluently.

EDIT2: By the way, I run into the same issue if I use other lambda functions that involve anything that is external to the mapping procedure. For example, I tried to debug it by simply returning a dict with a np.ndarray() as required without acutally performing any pre-processing on the initial text. However, then it told me that name 'numpy' is not defined

EDIT3: Uninstalling and installing dill and multiprocess did not help. Also, dill.dumps() works fine on both, the tokenizer and dataset - or least it does not throw and error but returns a lot of cryptic stuff.

EDIT4: I can’t reproduce this error in a colab environment. Likely something local?

This looks like an issue with the environment.
Does this work if you run the code from the command line instead of jupyter/ipython ?

Thanks for the reply! When running it in the command line within the .venv the same error occurs… Should I try to run it outside the virtual env as well?

EDIT: It returns the same error if I run it in cli outside the virtual env:

>>> tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME, use_fast=True)
>>> tokenizer

>>> datasets = datasets.map(
...     batched=True,
...     batch_size=10,
...     num_proc=2,#psutil.cpu_count(),
...     remove_columns=['text'],
... )
Token indices sequence length is longer than the specified maximum sequence length for this model (4078 > 512). Running this sequence through the model will result in indexing errors
#1:   0%|                                                                                | 0/50 [00:00<?, ?ba/s]
#0:   0%|                                                                                | 0/50 [00:00<?, ?ba/s]
multiprocess.pool.RemoteTraceback:
"""
Traceback (most recent call last):
File "C:\Python\lib\site-packages\multiprocess\pool.py", line 125, in worker
result = (True, func(*args, **kwds))
File "C:\Python\lib\site-packages\datasets\arrow_dataset.py", line 203, in wrapper
out: Union["Dataset", "DatasetDict"] = func(self, *args, **kwargs)
File "C:\Python\lib\site-packages\datasets\fingerprint.py", line 337, in wrapper
out = func(self, *args, **kwargs)
File "C:\Python\lib\site-packages\datasets\arrow_dataset.py", line 1695, in _map_single
batch = apply_function_on_filtered_inputs(
File "C:\Python\lib\site-packages\datasets\arrow_dataset.py", line 1608, in apply_function_on_filtered_inputs
function(*fn_args, effective_indices, **fn_kwargs) if with_indices else function(*fn_args, **fn_kwargs)
File "<stdin>", line 2, in <lambda>
NameError: name 'tokenizer' is not defined
"""

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python\lib\site-packages\datasets\dataset_dict.py", line 432, in map
{
File "C:\Python\lib\site-packages\datasets\dataset_dict.py", line 433, in <dictcomp>
k: dataset.map(
File "C:\Python\lib\site-packages\datasets\arrow_dataset.py", line 1485, in map
transformed_shards = [r.get() for r in results]
File "C:\Python\lib\site-packages\datasets\arrow_dataset.py", line 1485, in <listcomp>
transformed_shards = [r.get() for r in results]
File "C:\Python\lib\site-packages\multiprocess\pool.py", line 771, in get
raise self._value
NameError: name 'tokenizer' is not defined

Could you try by defining an actual function instead of using a lambda ?

Also tried this as well, and again I ran into the very same error…

EDIT: So I transfered all the code from the Jupyter Notebook into a plain .py script and let the relevant part run again, now actually receiving a different error message. Not sure tho, if this may help to come closer to the issue

Using custom data configuration default-8f1dcd17d8b8834c
Reusing dataset text (C:\Users\s_scho53\.cache\huggingface\datasets\text\default-8f1dcd17d8b8834c\0.0.0\e16f44aa1b321ece1f87b07977cc5d70be93d69b20486d6dacd62e12cf25c9a5)
Token indices sequence length is longer than the specified maximum sequence length for this model (4078 > 512). Running this sequence through the model will result in indexing errors
Using custom data configuration default-8f1dcd17d8b8834c
Reusing dataset text (C:\Users\s_scho53\.cache\huggingface\datasets\text\default-8f1dcd17d8b8834c\0.0.0\e16f44aa1b321ece1f87b07977cc5d70be93d69b20486d6dacd62e12cf25c9a5)
Using custom data configuration default-8f1dcd17d8b8834c
Reusing dataset text (C:\Users\s_scho53\.cache\huggingface\datasets\text\default-8f1dcd17d8b8834c\0.0.0\e16f44aa1b321ece1f87b07977cc5d70be93d69b20486d6dacd62e12cf25c9a5)
Token indices sequence length is longer than the specified maximum sequence length for this model (4078 > 512). Running this sequence through the model will result in indexing errors
Token indices sequence length is longer than the specified maximum sequence length for this model (4078 > 512). Running this sequence through the model will result in indexing errors
Traceback (most recent call last):
File "<string>", line 1, in <module>
Traceback (most recent call last):
File "C:\Python\lib\site-packages\multiprocess\spawn.py", line 116, in spawn_main
File "<string>", line 1, in <module>
File "C:\Python\lib\site-packages\multiprocess\spawn.py", line 116, in spawn_main
exitcode = _main(fd, parent_sentinel)
exitcode = _main(fd, parent_sentinel)
File "C:\Python\lib\site-packages\multiprocess\spawn.py", line 125, in _main
File "C:\Python\lib\site-packages\multiprocess\spawn.py", line 125, in _main
prepare(preparation_data)
File "C:\Python\lib\site-packages\multiprocess\spawn.py", line 236, in prepare
prepare(preparation_data)
File "C:\Python\lib\site-packages\multiprocess\spawn.py", line 236, in prepare
_fixup_main_from_path(data['init_main_from_path'])
File "C:\Python\lib\site-packages\multiprocess\spawn.py", line 287, in _fixup_main_from_path
_fixup_main_from_path(data['init_main_from_path'])
main_content = runpy.run_path(main_path,  File "C:\Python\lib\site-packages\multiprocess\spawn.py", line 287, in _fixup_main_from_path

File "C:\Python\lib\runpy.py", line 265, in run_path
main_content = runpy.run_path(main_path,
File "C:\Python\lib\runpy.py", line 265, in run_path
return _run_module_code(code, init_globals, run_name,    return _run_module_code(code, init_globals, run_name,

File "C:\Python\lib\runpy.py", line 97, in _run_module_code
File "C:\Python\lib\runpy.py", line 97, in _run_module_code
_run_code(code, mod_globals, init_globals,_run_code(code, mod_globals, init_globals,

File "C:\Python\lib\runpy.py", line 87, in _run_code
File "C:\Python\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)exec(code, run_globals)

File "c:\Users\s_scho53\Desktop\L09_Desktop\_FiLMo\Untitled-1.py", line 41, in <module>
File "c:\Users\s_scho53\Desktop\L09_Desktop\_FiLMo\Untitled-1.py", line 41, in <module>
datasets = datasets.map(datasets = datasets.map(

File "C:\Python\lib\site-packages\datasets\dataset_dict.py", line 432, in map
File "C:\Python\lib\site-packages\datasets\dataset_dict.py", line 432, in map
{{

File "C:\Python\lib\site-packages\datasets\dataset_dict.py", line 433, in <dictcomp>
File "C:\Python\lib\site-packages\datasets\dataset_dict.py", line 433, in <dictcomp>
k: dataset.map(
File "C:\Python\lib\site-packages\datasets\arrow_dataset.py", line 1452, in map
k: dataset.map(
File "C:\Python\lib\site-packages\datasets\arrow_dataset.py", line 1452, in map
with Pool(num_proc, initargs=(RLock(),), initializer=tqdm.set_lock) as pool:with Pool(num_proc, initargs=(RLock(),), initializer=tqdm.set_lock) as pool:

File "C:\Python\lib\site-packages\multiprocess\context.py", line 119, in Pool
File "C:\Python\lib\site-packages\multiprocess\context.py", line 119, in Pool

File "C:\Python\lib\site-packages\multiprocess\pool.py", line 212, in __init__
File "C:\Python\lib\site-packages\multiprocess\pool.py", line 212, in __init__
self._repopulate_pool()self._repopulate_pool()

File "C:\Python\lib\site-packages\multiprocess\pool.py", line 303, in _repopulate_pool
File "C:\Python\lib\site-packages\multiprocess\pool.py", line 303, in _repopulate_pool
return self._repopulate_pool_static(self._ctx, self.Process,
return self._repopulate_pool_static(self._ctx, self.Process,  File "C:\Python\lib\site-packages\multiprocess\pool.py", line 326, in _repopulate_pool_static

File "C:\Python\lib\site-packages\multiprocess\pool.py", line 326, in _repopulate_pool_static
w.start()
File "C:\Python\lib\site-packages\multiprocess\process.py", line 121, in start
w.start()
File "C:\Python\lib\site-packages\multiprocess\process.py", line 121, in start
self._popen = self._Popen(self)
File "C:\Python\lib\site-packages\multiprocess\context.py", line 327, in _Popen
self._popen = self._Popen(self)
File "C:\Python\lib\site-packages\multiprocess\context.py", line 327, in _Popen
return Popen(process_obj)
File "C:\Python\lib\site-packages\multiprocess\popen_spawn_win32.py", line 45, in __init__
return Popen(process_obj)
File "C:\Python\lib\site-packages\multiprocess\popen_spawn_win32.py", line 45, in __init__
prep_data = spawn.get_preparation_data(process_obj._name)
File "C:\Python\lib\site-packages\multiprocess\spawn.py", line 154, in get_preparation_data
prep_data = spawn.get_preparation_data(process_obj._name)
File "C:\Python\lib\site-packages\multiprocess\spawn.py", line 154, in get_preparation_data
_check_not_importing_main()
File "C:\Python\lib\site-packages\multiprocess\spawn.py", line 134, in _check_not_importing_main
_check_not_importing_main()
File "C:\Python\lib\site-packages\multiprocess\spawn.py", line 134, in _check_not_importing_main
raise RuntimeError('''
RuntimeError: raise RuntimeError('''
An attempt has been made to start a new process before the
current process has finished its bootstrapping phase.

This probably means that you are not using fork to start your
child processes and you have forgotten to use the proper idiom
in the main module:

if __name__ == '__main__':
freeze_support()
...

The "freeze_support()" line can be omitted if the program
is not going to be frozen to produce an executable.

RuntimeError:
An attempt has been made to start a new process before the
current process has finished its bootstrapping phase.

This probably means that you are not using fork to start your
child processes and you have forgotten to use the proper idiom
in the main module:

if __name__ == '__main__':
freeze_support()
...

The "freeze_support()" line can be omitted if the program
is not going to be frozen to produce an executable.

This usually happens if you use a script without using

if __name__ == "__main__":
...

This is because you don’t want your processes to be created when your module is imported.
Can you try again using this ?

from datasets import load_dataset

if __name__ == "__main__":
...

@lhoestq thanks for the reply! Indeed, this fixes the RuntimeError in the previous reply. However, again it results in the all so familiar error from before…

Using custom data configuration default-8f1dcd17d8b8834c
Reusing dataset text (C:\Users\s_scho53\.cache\huggingface\datasets\text\default-8f1dcd17d8b8834c\0.0.0\e16f44aa1b321ece1f87b07977cc5d70be93d69b20486d6dacd62e12cf25c9a5)
Token indices sequence length is longer than the specified maximum sequence length for this model (4078 > 512). Running this sequence through the model will result in indexing errors
#1:   0%|                                                                                | 0/50 [00:00<?, ?ba/s]
#0:   0%|                                                                                | 0/50 [00:00<?, ?ba/s]
multiprocess.pool.RemoteTraceback:
"""
Traceback (most recent call last):
File "C:\Python\lib\site-packages\multiprocess\pool.py", line 125, in worker
result = (True, func(*args, **kwds))
File "C:\Python\lib\site-packages\datasets\arrow_dataset.py", line 203, in wrapper
out: Union["Dataset", "DatasetDict"] = func(self, *args, **kwargs)
File "C:\Python\lib\site-packages\datasets\fingerprint.py", line 337, in wrapper
out = func(self, *args, **kwargs)
File "C:\Python\lib\site-packages\datasets\arrow_dataset.py", line 1695, in _map_single
batch = apply_function_on_filtered_inputs(
File "C:\Python\lib\site-packages\datasets\arrow_dataset.py", line 1608, in apply_function_on_filtered_inputs
function(*fn_args, effective_indices, **fn_kwargs) if with_indices else function(*fn_args, **fn_kwargs)
File "c:/Users/s_scho53/Desktop/L09_Desktop/_FiLMo/Untitled-1.py", line 40, in encode
NameError: name 'tokenizer' is not defined
"""

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "c:/Users/s_scho53/Desktop/L09_Desktop/_FiLMo/Untitled-1.py", line 42, in <module>
datasets = datasets.map(
File "C:\Python\lib\site-packages\datasets\dataset_dict.py", line 432, in map
{
File "C:\Python\lib\site-packages\datasets\dataset_dict.py", line 433, in <dictcomp>
k: dataset.map(
File "C:\Python\lib\site-packages\datasets\arrow_dataset.py", line 1485, in map
transformed_shards = [r.get() for r in results]
File "C:\Python\lib\site-packages\datasets\arrow_dataset.py", line 1485, in <listcomp>
transformed_shards = [r.get() for r in results]
File "C:\Python\lib\site-packages\multiprocess\pool.py", line 771, in get
raise self._value
NameError: name 'tokenizer' is not defined

Can you share the script that you used ? I’ll try to reproduce on my side

Wrote you a DM

1 Like

In case anyone ever encounters a similar or related issue in the future: What eventually helped me solve the issue was to shift the definition of the tokenizer outside of __name__ == '__main__':. This enabled the proper serialization and unpickling of the tokenizer in every sub-process. Thanks to @lhoestq for proposing the fix!

Do you all know of a good demo that explains how this all works? I have about 7 mil tweets I’m classifying that I uploaded onto datasets as csv’s. I’m not sure exactly how incorporate the uploaded datasets with my classifier or pipeline. Thanks!

If you are using a pipeline from transformers you can just pass the text column to the pipeline

results = my_classification_pipeline(my_dataset["text_column"])

Hi, could you please elaborate on how you fixed the issue? I have the exact same problem now and I cannot fix


text:
Hidden Symmetries and Black Holes

# Hidden Symmetries and Black Holes

Valeri P. Frolov Theoretical Physics Institute, University of Alberta, Edmonton, Alberta, Canada T6G 2G7 frolov@phys.ualberta.ca
###### Abstract

The paper contains a brief review of recent results on hidden symmetries in higher dimensional black hole spacetimes. We show how the existence of a principal CKY tensor (that is a closed conformal Killing-Yano 2-form) allows one to generate a ‘tower’ of Killing-Yano and Killing tensors responsible for hidden symmetries. These symmetries imply complete integrability of geodesic equations and the complete separation of variables in the Hamilton-Jacobi, Klein-Gordon, Dirac and gravitational perturbation equations in the general Kerr-NUT-(A)dS metrics. Equations of the parallel transport of frames along geodesics in these spacetimes are also integrable.

## 1 Introduction

There are several reasons why a subject of higher dimensional black holes becomes so popular recently. The idea that the spacetime can have more than four dimensions is very old. Kaluza and Klein used this idea about 80 years ago in their attempts to unify electromagnetism with gravity. The modern superstring theory is consistent (free of conformal anomalies) only if the spacetime has a fixed number (10) of dimensions. Usually it is assumed that extra dimensions are compactified. The natural size of compactification in the string theory is of order of the Planckian scale. In recently proposed models with large extra-dimensions it is also assumed that the spacetime has more than 3 spatial dimensions. A new feature is that the size of the extra dimensions can be much larger than the Planckian size, cm (up to 0.1mm) . In order to escape contradictions with observations it is usually assumed that the matter and fields (except the gravitational one) are confined to a four-dimensional brane representing our world, while the gravity can propagate in the bulk. In so called ADD models [1, 2] the extra dimensions are flat. In the Randall-Sundrum models [3, 4] the bulk 5D spacetime is curved and it has anti-deSitter asymptotics. Black holes in the string theory and in the models with larger extra dimensions play an important role serving as probes of extra dimension. Study of higher dimensional black holes is a very important problem of the modern theoretical and mathematical physics.

One of the main features of the models with large extra dimensions is a prediction that gravity becomes strong at small distances. This conclusion implies that for the particle collision with the energy of the order of TeV the gravitational channel would be as important as the electroweak channel of the interaction. Under these conditions two qualitatively new effects are possible: (1) bulk emission of gravitons, and (2) mini-black-hole production. These effects have been widely discussed in the connection with the expected new data at the Large Hadronic Collider (LHC) (see e.g. [5] and references therein). Hawking radiation produced by such mini black holes has several observable features which allows one, in principle, to single out such events in observations [6, 7, 8].

When the gravitational radius of a black hole is much smaller than the size of extra dimensions and the tension of the brane is neglected one can consider a the black hole as an isolated one. Such a black hole is described by a solution of the higher dimensional Einstein equations which is asymptotically flat or has (A)dS asymptotics. It was shown that besides ‘standard’ black holes with a spherical topology of the horizon, in higher dimensions there exist black objects with a different horizon topology. Black rings [9] and black saturns [10] are examples of such solutions in the 5D spacetime. For a review of higher dimensional black objects and their properties see, e.g., [11].

The most general known higher dimensional black hole solution of the Einstein equations with the spherical topology of the horizon is a Kerr-NUT-(A)dS metric which was discovered recently [12]. The metric belongs to the special algebraic type D [13] of the higher-dimensional algebraic classification [14, 15, 16]. This makes these metrics quite different from the black ring and black saturn type solutions, which are of type [16]. In this paper we review properties of the higher dimensional black hole solutions and, especially, their hidden symmetries. We demonstrate that the properties of the higher dimensional black holes, in many aspects are similar to the properties of the four dimensional black holes.

An isolated stationary black hole in 4-dimensional asymptotically flat spacetime is uniquely specified by two parameters, its mass and angular momentum. The corresponding Kerr metric possesses a number of properties, which was called by Chandrasekhar ‘miraculous’. In particular the Kerr metric allows the separation of variables in the geodesic Hamilton-Jacobi equation and a massless field equations. These properties look ‘miraculous’ since the spacetime symmetries of the Kerr metric are not sufficient to explain them. Really, spacetime symmetries are ‘responsible’ for two integrals of motion, the energy and the azimuthal component of the angular momentum. This, together with the conservation of , gives only 3 integrals of motion. Carter [17, 18] constructed the fourth required integral of motion, which is quadratic in momentum and is connected with the Killing tensor [19]. Penrose and Floyd [20] showed that this Killing tensor is a ‘square’ of an antisymmetric Killing-Yano tensor [21].

In many aspects a Killing-Yano tensor is more fundamental than a Killing tensor. Namely, its ‘square’ is always Killing tensor, but the opposite is not generally true (see, e.g., [22]). It was shown by Collinson [23] a –dimensional vacuum spacetime which admits a non–degenerate Killing-Yano tensor is of the type . All the vacuum type solutions were obtained by Kinnersley [24]. Demianski and Francaviglia [25] showed that in the absence of the acceleration these solutions admit Killing and Killing-Yano tensors. It should be also mentioned that if a spacetime admits a non–degenerate Killing-Yano tensor it always has at least one Killing vector [26].

Separability of massless and massive field equations (including the gravitational perturbations) in the 4D Kerr metric [27, 28, 29, 30, 31] is a direct consequence of the hidden symmetries. The separability property plays a key role in study of properties of rotating black holes, including the proof of their stability and the calculation of Hawking radiation.

In 2003 is was discovered that five-dimensional Myers-Perry black holes possess a Killing tensor [32, 33]. This makes geodesic equations completely integrable (see e.g [34] where the cross-section of particles and photons for 5D black holes was studied.) After this a lot of attempts were made to study the hidden symmetries of the higher dimensional black holes. In the most of these publications an additional assumption was made. Namely special conditions were imposed on the rotation parameters of a black hole which enhance the symmetry of these solutions. In 2007 it was discovered that Myers-Perry metrics with arbitrary rotation parameters, as well as a general Kerr-NUT-(A)dS metrics possesses a closed conformal Killing-Yano 2-form [35, 36]. This result was used to demonstrate that the general high dimensional black hole solutions in many aspects are similar to their four dimensional ‘cousin’. This paper contains a brief review of the recent development of the theory of higher dimensional black holes and hidden symmetries (see also [37, 38, 39]).

## 2 Hidden symmetries

The concept of symmetries is one of the most powerful tools of modern theoretical physics. Noether’s theorem relates continuous symmetries to conservation laws. The most fundamental of them are connected with the symmetries of the background spacetime. A curved spacetime possesses a symmetry if there exists a diffeomorphism preserving the geometry. Consider a one-parameter family of continuous transformations

 xa→¯xa=Fa(x,t). (1)

Denote by a vector field generating these transformations

Invariance of the metric under the transformations Eq.(1) implies that

 L\boldmathξgab=0, (3)

where is the Lie derivative. A generator of the continuous symmetry transformation (isometry) is called a Killing vector. The equation Eq.(3) can be identically rewritten in the form

 ξ(a;b)=0. (4)

In the presence of the symmetry generated by the Killing vector geodesic equations possess an integral of motion

 Pξ=ξaua, (5)

where is a tangent vector to a geodesic and is an affine parameter. Really,

 dPξdλ=ubuaξa;b+ubua ;bξa=0. (6)

The first term in the right hand side vanishes because of the Killing equation Eq.(4), while the second one vanishes because of the geodesic equation of motion .

A Killing tensor is a natural symmetric generalization of the Killing vector. Let us assume that for any geodesic with a tangent vector the following object

 PK=Ka1…akua1…uak (7)

is concerved

 dPKdλ=0. (8)

For a geodesic motion

 dPKdλ≡ubua1…uakKa1…ak;b (9)

Since this relation is valid for an arbitrary one has

 K(a1…ak;b)=0. (10)

A symmetric tensor obeying the relation Eq.(10) is called a Killing tensor.

A Killing-Yano tensor is an antisymmetric generalization of the Killing vector. Let us assume that for any geodesic with a tangent vector the following object

 Pa1…ak−1=fa1…akuak (11)

is parallel propagated along the geodesic

 ubPa1…ak−1;b=0. (12)

Using the geodesic equation one obtains

 fa1…ak;buakub=0. (13)

Since this relation is valid for an arbitrary it implies

 fa1…(ak;b)=0. (14)

A skewsymmetric tensor obeying this relation is called a Killing-Yano tensor.

It is easy to show that if is a Killing-Yano tensor then

 Kab=faa1…ak−1f  a1…ak−1b (15)

is a Killing tensor.

An important generalization of the symmetry Eq.(3) is a conformal symmetry. A conformal Killing vector generating such a transformation obeys the equation

 L\boldmathξgab=β(x)gab, (16)

or, equivalently

 ξ(a;b)=~ξgab,~ξ=D−1ξb  ;b. (17)

The corresponding expression Eq.(5) is conserved for null geodesics. The conformal generalizations of the Killing and Killing-Yano tensors are defined as follows. A symmetric tensor is called a conformal Killing tensor if it obeys the equation

 K(a1a2…ap;b)=gb(a1~Ka2…ap). (18)

It is easy to show that a symmetrized tensor product of two conformal Killing tensors is again a conformal Killing tensor. Similarly, a tensor product of two Killing tensors is again a Killing tensor. A (conformal) Killing tensor is called reducible if it can be written as a linear combination of tensor products of lower rank (conformal) Killing tensor. If a Killing tensor of rank is reducible, the corresponding conserved quantity for a geodesic motion, which is a polynomial of rank in momentum, can be written as a linear combination of products of conserved quantities of lower than powers in momentum. It means that a reducible Killing tensor does not generate any new independent conserved quantities.

An antisymmetric generalization of the conformal Killing vector is known as a conformal Killing-Yano tensor. An antisymmetric tensor is called a conformal Killing-Yano tensor (or, briefly, CKY tensor) if it obeys the following equation [40]

 ∇(a1ha2)a3…ap+1=ga1a2~ha3…ap+1−(p−1)g[a3(a1~ha2)…ap+1]. (19)

By tracing the both sides of this equation one obtains the following expression for

 ~ha2a3…ap=1D−p+1∇a1ha1a2…ap. (20)

## 3 Conformal Killing-Yano tensors

Let us discuss properties of the conformal Killing-Yano (CKY) tensors in more details. The CKY tensors are forms and operations with them are greatly simplified if one uses the ”language” of differential forms. We just remind some of the relations we use in the present paper. If and are - and -forms, respectively, the external derivative () of their external product () obeys a relation

 d(\boldmathαp∧\boldmathβq)=d% \boldmathαp∧\boldmathβq+(−1)p% \boldmathαp∧d\boldmathβq. (21)

A Hodge dual of the -form is -form defined as

where is a totally anti-symmetric tensor. The exterior co-derivative is defined as follows

 δ\boldmathαp=(−1)pϵp∗d∗\boldmathαp,ϵp=(−1)p(D−p)det(g)|det(g)|. (23)

One also has .

If is a basis of vectors, then dual basis of 1-forms is defined by the relations . We denote and by the inverse matrix. Then the operations with the indices enumerating the basic vectors and forms are performed by using these matrices. In particular, , and so on. We denote a covariant derivative along the vector by . One has

 d=\boldmathωa∧∇a,δ=−\boldmathea\raisebox−1.505pt\makebox[6.0pt][r]$−$\raisebox1.075pt\makebox[4.0pt][l]$|$∇a. (24)

In the tensor notations the ‘hook’ operator applied to a -form corresponds to a contraction

 \boldmathX\raisebox−1.505pt\makebox[6.0pt][r]$−$\raisebox1.075pt\makebox[4.0pt][l]$|$\boldmathαp⇔Xa1αa1a2…ap. (25)

For a given vector one defines as a corresponding 1-form with the components . In particular, one has .

The definition Eq.(19) of the CKY tensor (which is a -form) is equivalent to the following equation (see e.g. [41, 42])

 ∇\boldmathX\boldmathh=1p+1\boldmath% X\raisebox−1.505pt\makebox[6.0pt][r]$−$\raisebox1.075pt\makebox[4.0pt][l]$|$d\boldmathh−1D−p+1\boldmathX♭∧δ\boldmathh. (26)

If this is an equation for the Killing-Yano tensor.

The CKY tensors possess the following properties:

1. If is a CKY tensor then is also a CKY tensor;

2. If is a closed CKY tensor () then is a Killing-Yano (KY) tensor;

3. If and are closed CKY tensors then is also a closed CKY tensor.

The first two properties can be proved by using a relation

 \boldmathX\raisebox−1.505pt\makebox[6.0pt][r]$−$\raisebox1.075pt\makebox[4.0pt][l]$|$∗\boldmathω=∗(\boldmathω∧\boldmathX♭). (27)

Applying this relation to Eq.(26) one has

 (28)

It means that a Hodge dual of a CKY tensor is again a CKY tensor. Moreover, if the CKY is closed, , then its dual -form is a Killing-Yano tensor. The proof of the third property can be found in [37, 43]. This property means that the closed CKY tensors form an algebra.

## 4 Principal CKY tensor and Killing-Yano tower

Consider a -dimensional spacetime. We write

 D=2n+ε, (29)

where for the odd number of dimensions and and for the even number. Consider a 2-form which is a CKY tensor. We assume that it is closed, , and non-degenerate, that is it has a matrix rank . We call such a tensor a principal CKY tensor. The principal CKY tensor obeys the dollowing equation

 ∇X\boldmathh=\boldmathX♭∧% \boldmathξ♭,ξb=1D−1∇dhd b, (30)

where is an arbitrary vector field.

Starting with the principal CKY tensor one can construct a a Killing-Yano tower of tensors [43, 44]. The following diagram illustrates this construction.

The first row of this diagram contains external powers of the principal CKY tensor, which again are closed CKY tensors. Taking the Hodge dual of these tensors one obtains a set of Killing-Yano tensors . ‘Squares’ of give a set of second rank Killing tensors . For even the last column can be omitted since is proportional to a totally antisymmetric tensor, and hence it does not produce a non-trivial Killing tensor. For the odd case, the Killing tensor is a product of two Killing vectors and hence it is reducible. The first Killing tensors are irreducible. The metric itself is also a Killing tensor, . We call the Killing-Yano tower extended if the metric is included into it. Thus the extended Killing-Yano tower allows one to construct independent quadratic in momenta conserved quantities for a geodesic motion.

Besides a tower of the rank 2 Killing tensors, the principal CKY tensor generates a set of the Killing vectors. To demonstrate this let us notice that for a CKY tensor of rank- the vector

 ξ(0)a=1D−1∇bhab (31)

obeys the following equation [40, 45]

 ξ(0) (a;b)=−1D−2Rc(ahcb). (32)

Thus, in an Einstein space, that is when , is the Killing vector. It can be shown that even if the Einstein equations with the cosmological constant are not imposed the vector constructed for the principal CKY tensor is always the Killing vector[46]. We call it a primary Killing vector. Acting by the Killing tensors on the primary Killing vector one obtains a set of the independent commuting Killing vectors[43, 46, 47]

 ξia=Kiabξ(0)b. (33)

There Killing vectors (with an additional Killing vector for ) give conserved first order in momentum quantities for the geodesic motion. These conserved quantities together with conserved quantities connected with the Killing tensors (including the metric ) form a set of conserved quantities.

## 5 Darboux basis

Let us consider an eigenvalue problem for a conformal Killing tensor associated with

 Hab≡hach cb. (34)

It is easy to show that in the Euclidean domain its eigenvalues ,

 Ha bvb=x2va, (35)

are real and non-negative. Using a modified Gram–Schmidt procedure it is possible to show that there exists such an orthonormal basis in which the operator has the following structure:

 diag(\boldmath0,\boldmathΛ1,…,\boldmathΛp), (36)

where are matrices of the form

 Λi=(0−xi\boldmathIxi\boldmathI0), (37)

is a zero matrix and are unit matrices. For a non-degenerate principal CKY tensor the eigenspaces corresponding to the eigenvalues are two dimensional (Darboux subspaces). Since the matrix rank of is the eigenvalue is present only for , and the corresponding eigenspace in this case is one dimensional. We assume also that is non-degenerate, that is and the eigenspaces of are two-dimensional so that the matrices has the form

 Λi=(0−xixi0). (38)

(See Section 9 for a discussion of a degenerate case.)

We denote by and , where , mutually orthogonal unit vectors in the 2D Darboux space corresponding to the eigenvalue . For we introduce also a unit vector in the subspace corresponding to zero eigenvalue. The basis of the dual forms we denote by and (and if ). The metric and the principal CKY tensor in this basis take the form

 g = =n∑μ=1(\boldmathω^μ% \boldmathω^μ+\boldmath~ω^μ\boldmath~ω^μ)+ε\boldmathω^0\boldmathω^0, (39) h = n∑μ=1xμ\boldmathω^μ∧\boldmath~ω^μ. (40)

Starting with the principal CKY tensor written in the canonical form, one can find the explicit expressions for the other associated tensors of the Killing tower. In particular, for the associated Killing tensors one has

 \boldmathK(j) = n∑μ=1A(j)μ(\boldmathω^μ\boldmathω^μ+\boldmath~ω^μ\boldmath~ω^μ)+εA(j)\boldmathω^0\boldmathω^0 (41) A(j) = ∑ν1<⋯<νjx2ν1…x2νj,A(j)μ=∑ν1<⋯<νjνi≠μx2ν1…x2νj. (42)

It should be emphasized that Killing tensors are defined up to an arbitrary constant factor. In order to obtain the above expressions this factors were specially chosen, so that in Eq.(41) contains an extra constant factors with respect to from the diagram 3 for the Killing tower.

## 6 Canonical form of the metric

In the presence of the principal CKY tensor, one can use its independent eigenvalues as coordinates. Moreover, the principal CKY tensor generates Killing vectors, one primary , Eq.(31), and secondary , defined by Eq.(33) with substituted by , ones. Denote by and the corresponding Killing parameters,

 ξ(0)=∂ψ0,ξ(i)=∂ψi. (43)

A set of essential (Darboux) coordinates and Killing coordinates can be used as coordinates associated with the principal CKY tensor. We call these coordinates canonical. It can be shown that the metric of a spacetime, which admits a principal CKY tensor, can be written in the canonical coordinates in the form111A similar canonical form of a metric possessing a Killing-Yano tensor was obtained by Carter [48]

 \boldmathω^μ = 1√Qμdxμ,% \boldmath~ω^μ=√Qμn−1∑k=0A(k)μdψk,\boldmathω0=(−c/A(n))1/2n∑k=0A(k)\boldmathdψk, (44) Qμ = Xμ/Uμ,Uμ=∏ν≠μ(x2ν−x2μ). (45)

This result was first proved in [49] assuming the the following two conditions

 Lξ\boldmathg=0,Lξ%\boldmath$h$=0, (46)

where is defined by Eq.(30), are satisfied. Later it was shown [46] that these conditions follow from the very existence of the principal CKY tensor and the canonical form was derived in a general case for a spacetime with the principal CKY tensor [46, 50]. Here and are given by Eq.(42), and are functions of a single argument . It should be emphasized that in the derivation of this form of the metric the Einstein equations were not used. In this sense, this is an off-shell result.

By imposing the -dimensional Einstein equations with a cosmological constant one obtains that the functions are of the form222The components of the curvature tensor for the metric Eq.(44) were calculated in [13].

 Xμ=n∑k=εckx2kμ−2bμx1−εμ+εcx2μ. (47)

‘Time’ is denoted by , azimuthal coordinates by , , and , , stand for ‘radial’ and latitude coordinates. The physical metric with proper signature is recovered when standard radial coordinate and new parameter are introduced. The total number of constants which enter the solution is : constants , constants and constants . The form of the metric is invariant under a 1-parameter scaling coordinate transformations, thus a total number of independent parameters is . These parameters are related to the cosmological constant, mass, angular momenta, and NUT parameters. One of them may be used to define a scale, while the other parameters can be made dimensionless. (For more details see [12].) In the absence of NUT parameters and for vanishing cosmological constant the metric Eq.(44)-Eq.(47) reduces to the Myers-Perry metric describing an isolated rotating higher dimensional black hole in an asymptotically flat spacetime. The existence of the closed CKY tensor for Myers-Perry [51] and Kerr-NUT-(A)dS was established first in [35, 36], where it was also demonstrated that the corresponding principal CKY tensor does not depend on the parameters of the solution (universality property).

## 7 Separation of variables

The Hamilton-Jacobi equation for geodesic motion

 ∂S∂λ+gab∂aS∂aS=0, (48)

in the Kerr-NUT-(A)dS spacetime allows a complete separation of variables [52]

 S=−wλ+n+ε−1∑k=0Ψkψk+n∑μ=1Sμ(xμ). (49)

The functions obey the first order ordinary differential equations

 S′μ2=VμXμ−W2μX2μ, (50)

Here

 (51)

For we put . The parameters and are separation constants. The existence of independent conserved constants which enter these functions implies a complete integrability of the geodesic motion equations in the spacetimes admitting the principal CKY tensor (for more details, see [43, 44]).

Similarly, the massive scalar field equation

 □Φ−μ2Φ=0, (52)

in the Kerr-NUT-(A)dS metric allows a complete separation of variables [52]. Namely, the solution can be decomposed into modes

 Φ=n∏μ=1Rμ(xμ)n+ε−1∏k=0eiΨkψk. (53)

Substitution of Eq.(53) into the equation Eq.(52) results in the following second order ordinary differential equations for functions

 (XμR′μ)′+εXμxμR′μ+(Vμ−W2μXμ)Rμ=0. (54)

Here and are given by Eq.(51) and

In [53] it was shown that the following operators

 ^ξ(k) = −iξ(k)a∂a,k=0,…,m, (55) ^K(j) = −1√|g|∂a(√|g|K(j)ab∂b),j=0,…,n−1, (56)

determined by a principal CKY tensor, form a complete set of commuting operators for the Klein–Gordon equation in the Kerr-NUT-(A)dS background.

Using Eq.(56) one has . Since all the operators Eq.(55)–Eq.(56) commute with one another, their common eigenvalues can be used to specify the modes. It is possible to show [53] that the eigen-vectors of these commuting operators are the modes Eq.(53) and one has

 ^ξ(k)Φ=ΨkΦ,^K(j)Φ=κjΦ. (57)

Later it was shown that the massive Dirac equation in the Kerr-NUT-(A)dS spacetime also allows the separation of variables [54]. More recently Oota and Yasui [55] demonstrated separability of the tensor type gravitational perturbations in a (generalized) Kerr-NUT-(A)dS spacetime. It was also proved that the stationary test string equations in the Kerr-NUT-(A)dS spacetime are completely integrable [56] .

## 8 Parallel transport of frames along geodesics

One of the additional remarkable properties of the 4D Kerr metric, discovered by Marck in 1983 [57, 58, 59], is that the equations of parallel transport can be integrated. This result allows a generalization: In a higher dimensional spacetime which admits a principal CKY tensor equations of a parallel-propagated frame along a geodesic can be solved explicitly [60, 61].

The main idea of this construction is the following. Let be a tangent vector to a geodesic. Consider a 2-form which is obtained by projecting onto a subspace orthogonal to

 Fab=PcaPdbhcd=hab+uauchcb+hacucub, (58)

where is the projector onto . This form can be also written as follows

 F = −\boldmathu\raisebox−1.505pt\makebox[6.0pt][r]$−$\raisebox1.075pt\makebox[4.0pt][l]$|$(\boldmathu♭∧\boldmathh)=\boldmathh+\boldmathu♭∧\boldmaths, (59) s = \boldmathu\raisebox−1.505pt\makebox[6.0pt][r]$−$\raisebox1.075pt\makebox[4.0pt][l]$|$\boldmathh,sb=uahab. (60)

Let us demonstrate that is parallel propagated along a geodesic. The definition Eq.(30) of the principal CKY tensor implies

 ∇u\boldmathh=\boldmathu♭∧% \boldmathξ♭. (61)

Hence

 ∇u(\boldmathu♭∧\boldmathh)=% \boldmathu♭∧∇u\boldmathh=\boldmathu♭∧\boldmathu♭∧\boldmathξ♭=0. (62)

Thus for a geodesic motion, , the 2-form is parallel propagated along the geodesic [44].

The 2-form has its own Darboux basis, which is called comoving. For any geodesic the comoving basis is determined along its trajectory. Since is parallel propagated, its eigenvalues and its Darboux subspaces, which are called the eigenspaces of , are parallel-transported. For a generic timelike (or spacelike) geodesic the eigenspaces of are at most 2-dimensional. In fact, the eigenspaces with non-zero eigenvalues are 2-dimensional, and the zero-value eigenspace is 1-dimensional for odd number of spacetime dimensions and 2-dimensional for even. So, the comoving basis is defined up to rotations in each of the 2D eigenspaces. The parallel-propagated basis is a special comoving basis. It can be found by solving a set of the first order ordinary differential equations for the angles of rotation in the 2D eigenspaces. It is possible to show that these ordinary differential equations can be solved by means of separation of variables [60]. A modification of this procedure can be used to construct parallel propagated frames along null geodesics [61].

## 9 Degenerate case

Consider a closed rank- CKY tensor and denote by () and () its non-constant eigenvalues and the non-zero constant ones, respectively. Suppose the eigenvalues of the “square of the CKY tensor” have the following multiplicities:

 {x21,⋯,x212ℓ1,⋯,x2n,⋯,x2n2ℓn,ξ21,⋯,ξ212m1,⋯,ξ2N,⋯,ξ2N2mN,0,…,0K}, (63)

where . Here and . In the previous consideration we assumed that the principal CKY tensor is non-degenerate, that is

 (64)

If these conditions are violated we call a principal CKY tensor degenerate. Recently there was obtained a general canonical form of a spacetime which admits a degenerate principal CKY tensor [47, 62]. These papers also contain a generalized Kerr-NUT-(A)dS metrics which are solutions of the higher dimensional Einstein equations with a cosmological constant with a arbitrary degenerate principal CKY tensor. It is interesting to notice that a 4D Taub-NUT metric belongs to this class of the solutions. An example of a generalized Kerr-NUT-(A)dS with a degenerate principal CKY tensor is a special subclass of Kerr-(A)dS solutions [63, 64]. In a general case these solutions contain different angular momenta. In the case when some of them are equal, the principal CKY tensor has constant eigenvalues [55].

At the moment not so much is known about properties and interpretation of the generalized Kerr-NUT-(A)dS solutions in higher dimensions.

## 10 Concluding remarks

During past 2-3 years a lot of important and interesting results concerning higher dimensional black hole solutions with the spherical topology of the horizon were obtained. It was discovered that a key role in this study is played by the principal CKY tensor. The very existence of this tensor in a spacetime restricts the form of the metric. In the non-degenerate case this canonical metric obeying the Einstein equations coincides with the Kerr-NUT-(A)dS solution. The class of metrics admitting a principal CKY tensor allows separation of variables in the Hamilton-Jacobi, Klein-Gordon, Dirac, and tensor perturbation. It is still an open question whether other massless fields equations, e.g. the Maxwell field, allow separation of variables in the (generalized) Kerr-NUT-(A)dS spacetime. Another interesting question concerns a possibility to separate variables in the higher dimensional spacetimes in the absence of the principal CKY tensor. It may happen when such a space admits a sufficient number of commuting Killing vectors and Killing tensors [65]. Especially, this problem of separation of variables is important for study black ring and black saturn solutions333See e.g. discussion of the integrability problem for geodesic motion near black rings in [66]. Separation of variables for the gravitational perturbations is important for the analysis of the stability of these higher dimensional solutions. Another interesting direction of research is study of the hidden symmetries in supergravity black holes (see e.g. [67]) and, more generally, study of the relation between hidden symmetries and supersymmetry.

## Acknowledgements

The author is grateful to the Natural Sciences and Engineering Research Council of Canada and the Killam Trust for partial support.

## References

• [1] Arkani-Hamed N, Dimopoulos S and Dvali G.R. 1998 Phys. Lett.  B 429 263
• [2] Antoniadis I, Arkani-Hamed N, Dimopoulos S and Dvali G.R. 1998 Phys. Lett.  B 436 257
• [3] Randall L and Sundrum R 1999 Phys. Rev. Lett. 83 3370
• [4] Randall L and Sundrum R 1999 Phys. Rev. Lett. 83 4690
• [5] Giddings, S B 2007 AIP Conf.Proc. 957 69 e-Print: arXiv:0709.1107
• [6] Kanti P 2004 Int. J. Mod. Phys.  A 19 4899
• [7] Kanti P 2007 e-Print: arXiv:0802.2218
• [8] Park S C 2008 e-Print: arXiv:0809.2571
• [9] Emparan R and Real H S 2002 Phys. Rev. Lett. 88 101101
• [10] Elvang H and Figueras P 2007 JHEP 0705 050
• [11] Emparan R and Real H S 2008 e-Print arXiv:0801.3471
• [12] Chen W, Lü H and Pope C N 2006 Class. Quantum Grav. 23 5323
• [13] Hamamoto N, Houri T, Oota T and Yasui Y 2007 Journ. Phys.  A 40 F177
• [14] Milson R, Coley A, Pravda V and Pravdová A 2005 Int. J. Geom. Meth. Mod. Phys. 2 41
• [15] Coley A, Milson R, Pravda V and Pravdová A 2004 Class. Quantum Grav. 21 L35
• [16] Coley A 2008 Class. Quantum Grav. 25 033001
• [17] Carter B 1968 Phys. Rev. 174 1559
• [18] Carter B 1968 Commun. Math. Phys. 10 280
• [19] Walker M and Penrose R 1970 Commun. Math. Phys. 18 265
• [20] Penrose R 1973 Ann. N. Y. Acad. Sci. 224 125; Floyd R 1973 The dynamics of Kerr fields, PhD Thesis, London
• [21] Yano K 1952 Ann. Math. 55 328
• [22] Collinson C D 1976 Int. J. Theor. Phys. 15 311; Stephani H 1977 Gen. Rel. Grav. 9 789; Ferrando J J and Sáez J A 2002 Gen. Rel. Grav. 35 1191
• [23] Collinson C D 1974 Tensor 28 173
• [24] Kinnersley W 1969 J. Math. Phys. 10 1195
• [25] Demianski M and Francaviglia M 1980 Int. J. Theor. Phys. 19 675
• [26] Dietz W and Rüdiger R 1981 Proc. R. Soc.  A 375 361; Dietz W and Rüdiger R 1982 Proc. R. Soc.  A 381 315
• [27] Teukolsky S A 1972 Phys. Rev. Lett. 29 1114
• [28] Unruh W 1973 Phys. Rev. Lett. 31 1265
• [29] Teukolsky S A 1973 Astrophys. J. 185 635
• [30] Chandrasekhar S 1976 Proc. Roy. Soc. London A349 571
• [31] Page D N 1976 Phys. Rev. D 14 1509
• [32] Frolov V P and Stojkovic D 2003 Phys. Rev. D 67 084004
• [33] Frolov V P and Stojkovic D 2003 Phys. Rev. D 68 064011
• [34] Gooding and Frolov A V 2008 Phys. Rev.  D 77 104026
• [35] Frolov V P and Kubizňák D \PRL982007011101
• [36] Kubizňák D and Frolov V P \CQG242007F1
• [37] Frolov V 2008 Prog. Theor. Phys. Suppl. 172 210
• [38] Frolov V and Kubizňák D 2008 Class. Quantum Grav. 25 154005
• [39] Kubizňák D 2008 e-Print: arXiv:0809.2452
• [40] Tachibana S 1969 Tôhoku Math. J. 21 56; Kashiwada T 1968 Nat. Sci. Rep., Ochanomizu University 19 67
• [41] Benn I M, Charlton P and Kress J 1997 J. Math. Phys. 38 4504
• [42] Kress J 1997 Generalized Conformal Killing-Yano Tensors: Applications to Electrodynamics, PhD Thesis, University of Newcastle
• [43] Krtouš P, Kubizňák D, Page D N and Frolov V P 2007 J. High Energy Phys. 02 004
• [44] Page D N, Kubizňák D, Vasudevan M and Krtouš P 2007 Phys. Rev. Lett. 98 061102
• [45] Jezierski J 1997 Class. Quantum Grav. 14 1679
• [46] Krtouš P, Frolov V P , Krtouš P 2008 e-Print: arXiv:0804.4705
• [47] Houri T, Oota T and Yasui Y 2008 J. Phys. A 41 025204
• [48] Carter B 1968 Phys. Lett.  A 26 399
• [49] Houri T, Oota T and Yasui Y 2007 Phys. Lett.  B 656 214
• [50] Houri T, Oota T and Yasui Y 2008 Phys. Lett.  B 666 391
• [51] Myers R C and Perry M J 1986 Ann. Phys. (N.Y.) 172 304
• [52] Frolov V P, Krtouš P and Kubizňák D 2007 J. High Energy Phys. 02 005
• [53] Sergyeyev A and Krtouš P 2008 Phys. Rev.  D 77 044033
• [54] Oota T and Yasui Y 2008 Phys. Lett.  B 659 688
• [55] Oota T and Yasui e-Print: arXiv:0812.1623 (2008)
• [56] Kubizňák D and Frolov V P 2008 JHEP 0802 007
• [57] Marck J A 1983 Proc. R. Soc.  A 385 431
• [58] Marck J A 1983 Phys. Lett.  B 97 140
• [59] Kamran N and Marck J A 1986 J. Math. Phys. 27 1589
• [60] Connell P, Frolov V and Kubizňák D 2008 Phys. Rev.  D 78 024042
• [61] Kubizňák D, Frolov V, Krtouš, and Connell P arXiv:0809.2452v1 [gr-qc], 2008
• [62] Houri T, Oota T and Yasui Y 2008 e-Print: arXiv:0805.3877
• [63] Gibbons G W, Lu H, Page D, Pope C N 2004 Phys. Rev. Lett. 93 171102
• [64] Gibbons G W, Lu H, Page D, Pope C N 2005 J.Geom.Phys. 53 49
• [65] Benenti S and Francaviglia M 1979 Gen. Rel. Grav. 10 79
• [66] Hoskisson J 2008 Phys. Rev.  D 78 064039
• [67] Chow D D K 2008 e-Print: arXiv:0811.1264
You are adding the first comment!
How to quickly get a good reply:
• Give credit where it’s due by listing out the positive aspects of a paper before getting into which changes should be made.
• Be specific in your critique, and provide supporting evidence with appropriate references to substantiate general statements.
• Your comment should inspire ideas to flow and help the author improves the paper.

The better we are at sharing our knowledge with each other, the faster we move forward.
The feedback must be of minimum 40 characters and the title a minimum of 5 characters


text:
Find finite spanning sets

I need help starting with the following questions:

Let P3 be the vector space of real valued polynomials of degree ≤ 3. Find finite spanning sets for the following subspaces of P3.

(a) T = {p ∈ P3 | (0) = 0}

(b) U = {p ∈ P3 | p'(0) = 0}

(c) V = {p ∈ P3 | p(1) = p(2)}

I do understand how to tell if a vector spans but how do I find the spanning sets?

• Basically to choose spanning sets, you just need to pick "enough" elements from given subspace so that they span the entire subspace. – lebesgue Apr 20 '18 at 12:44

Well a general polynomial in $P_3$ takes the form $f(x) = ax^2 + bx + c$. Now let's solve (a), we want to have a more explicit description of $P$. If $f \in T$ then $$f(x) = 0 \iff c = 0$$ Therefore $$P = \{ax^2 + bx : a, b \in \mathbb R \}$$ Then by observation a spanning set for this is $\{x, x^2\}$. (b) and (c) can be solved similarly, by finding what the spaces $U$ and $V$ actually look like.

I'll tackle the third case:

A generic element of $P_3$ is $p(x)=ax^3+bx^2+cx+d$

If $p(1)=p(2)$ then $a+b+c+d=8a+4b+2c+d$

With this condition we can eliminate one of the variables by solving for it. I choose to solve for $c$.

$c=-7a-3b$

As long as this condition is met, we will have a third degree polynomial satisfying the property that $p(1)=p(2)$.

Substituting back into the original polynomial gives a function of the form: $p(x)=ax^3+bx^2+(-7a-3b)x+d$

We can then group the $a$'s $b$'s and $d$'s together to get our spanning set: $p(x) = a(x^3-7x) +b(x^2-3x)+d=span \left[ x^3-7x,x^2-3x,1\right]$

In general, if you want to find a particular basis for a subspace of any given vector space, you can follow this procedure:

1. Write out a generic vector in the larger space.
2. Substitute in the defining property or properties of the subspace you are dealing with to eliminate parameters.
3. Group the terms of the result in terms of the remaining parameters, and the result will be a linear combination of your basis vectors.


text:
# aliquot

## < a quantity that can be divided into another a whole number of time />

I just plugged this good old fci-mode into my Emacs config. Indent guides were already a really nice add-on, but the 80-char ruler is really useful if you’re versed into PEP8 and the like. #emacs


text:
## Double Intergral with Substitution

I have a problem with Double Integral that I can not seem to get correct.

4 2
∫ ∫ e^(y^2)dydx
0 (x/2)

The answer is (e^4)-1, but I can't seem to get the Substitution at all right. I have literally spent hours on this problem. Any help would be greatly appreciated, its also due by 3:30, so I am kind of limited by time. Thanks

 PhysOrg.com science news on PhysOrg.com >> Hong Kong launches first electric taxis>> Morocco to harness the wind in energy hunt>> Galaxy's Ring of Fire
 Recognitions: Homework Help Science Advisor 3:30 in which time zone? ;) Here at me, you asked your question at 5:09 PM. Converted in a format that is easier to read: $$\int_0^4 \left(\int_{x/2}^2 e^{y^2} dy\right)dx$$ Did you draw a sketch of the integration area (in the x,y-plane)? The integral is equivalent to $$\int_0^2 \left(\int_{0}^{2y} e^{y^2} dx\right)dy$$ There, both integrals are easy to evaluate in that order.
 I have 4 hours, so I have time. I'm just really confused how to do the initial integral. I tried u substitution of u*dv=uv-∫v*du, and I can't get it to come out quite right

Recognitions:
Homework Help

## Double Intergral with Substitution

You cannot find an antiderivative of ##e^{y^2}##. It is nice to try, but you won't get a result unless you just define it (but that does not help here).
The change of the integration order (or something equivalent) is the key point here. It allows to evaluate one integral and simplifies the other one.

 It's possible. It says to change the order of integration, and I have no idea how to set that up
 Recognitions: Gold Member As you may or may not see, evaluating it with regards to x first will let you solve the whole thing. The trick is just the figure out the new bounds on the integrals - it's not as simple as just switching the order. What I would do is the draw a graph and draw the lines x=4, x=0, y=2 and y=x/2. Then think about what the bounds would be if you were looking at it 'sideways'. EDIT: Just realized mfb gave you the integral already, so you don't need what I said.

 Tags integral calculus, multivar calculus, substitution


text:
## Trigonometry (11th Edition) Clone

$w^3$ = $- 864 - 864\sqrt{3}i$
$w = 12(cos80^\circ + isin80^\circ) = 12cis80^\circ$ Now, $w^3$ = $(12cis80^\circ)^3$ = $12^3 cis 3\cdot 80^\circ$ (De Moivre’s Theorem) = $1728cis240^\circ$ = $1728(cos240^\circ + isin240^\circ)$ = $1728(-\frac{1}{2} - \frac{\sqrt{3}}{2} i)$ = $- 864 - 864\sqrt{3}i$


text:
# Dirichlet's principle

(Redirected from Dirichlet principle)
Jump to: navigation, search

In mathematics, Dirichlet's principle in potential theory states that, if the function $u ( x )$ is the solution to Poisson's equation

$\Delta u + f = 0\,$

on a domain $\Omega$ of $\mathbb{R}^n$ with boundary condition

$u=g\text{ on }\partial\Omega,\,$

then u can be obtained as the minimizer of the Dirichlet's energy

$E[v(x)] = \int_\Omega \left(\frac{1}{2}|\nabla v|^2 - vf\right)\,\mathrm{d}x$

amongst all twice differentiable functions $v$ such that $v=g$ on $\partial\Omega$ (provided that there exists at least one function making the Dirichlet's integral finite). This concept is named after the German mathematician Peter Gustav Lejeune Dirichlet.

Since the Dirichlet's integral is bounded from below, the existence of an infimum is guaranteed. That this infimum is attained was taken for granted by Riemann (who coined the term Dirichlet's principle) and others until Weierstrass gave an example of a functional that does not attain its minimum. Hilbert later justified Riemann's use of Dirichlet's principle.

## References

• Courant, R. (1950), Dirichlet's Principle, Conformal Mapping, and Minimal Surfaces. Appendix by M. Schiffer, Interscience
• Lawrence C. Evans (1998), Partial Differential Equations, American Mathematical Society, ISBN 978-0-8218-0772-9


text:
# An Important Note About LaTeX In The Browser

Posted on March 12, 2014

I’m going to be doing more and more mathy posts, and I want to be able to use LaTeX in them
If you use Chrome, you’re in luck - Tex Renderer is an extension that will do exactly what you need it to.
Another solution is Tex The World

On Firefox, on the other hand, there’s a Greasemonkey script that works about as well as Tex Renderer

If you don’t know what LaTeX is, that’s a whole different article - but a quick search brought up this

Some samples to test with:

$\frac{a}{b}$
$\sqrt{2\pi}$
$\int_1^{\infty} \frac{1}{x}$


text:
Classification of Vector Bundles over Spheres

1. Apr 6, 2009

zhentil

This is a question from Hirsch's Differential Topology book: show that there is a bijective correspondence between
$$K^k(S^n) \leftrightarrow \pi_{n-1}(GL(k))$$,
where $$K^k(S^n)$$ denotes the isomorphism classes of rank k vector bundles over the sphere. The basic idea is that any vector bundle over the sphere has a trivializing cover consisting of two open sets diffeomorphic to $$\textbf{R}^n$$. The transition function of such a cover restricts to a map from the equator $$S^{n-1} \rightarrow GL(k)$$. Moreover, vector bundles with homotopic classifying maps are isomorphic. However, the reverse inclusion is eluding me. Why must two isomorphic bundles over the sphere have homotopic classifying maps?

I've seen a proof of this involving writing the Grassmanian as a fiber bundle of orthogonal groups, and using the exact homotopy sequence to conclude that $$\pi_n(G_{3k,k}) \cong \pi_{n-1}(GL(k))$$, but since Hirsch never mentioned that, it strikes me that there must be an elementary way of seeing this. Any ideas?


text:
# Time complexity of tape equilibirum

As per the instructions on this Tape Equlibrium-Codility

I've written the code

import java.util.Arrays;
public class TapeEqulibrium {
int main(int[] array) {
int minimumDiff = 100000;
for (int i = 1; i < array.length; i++) {
int differnce = Math.abs(Arrays.stream(array, 0, i).sum() - Arrays.stream(array, i, array.length).sum());
minimumDiff = differnce < minimumDiff ? differnce : minimumDiff;
}
return minimumDiff;
}
}

On submission, I have got correct answers for all test cases. But It says that the time complexity is O(n*n)and taking more than 6.00 seconds. while writing I thought that it falls under time complexity of O(n) or something (as I don't know much about that). So I need to know how to calculate the time complexity of this code.

• Hey, welcome to Code Review! Here we review working code to make it better (faster, leaner, more secure/readable/maintainable). While a reviewer commenting on the time complexity of your code is likely (since you seem to exceed some time-limit, in which case you also might consider adding the tag time-limit-exceeded), note that you may receive different answers as well (all questions here are by definition open-ended). Have a look at our help center for more information. – Graipher Sep 7 '18 at 7:42

int differnce = Math.abs(Arrays.stream(array, 0, i).sum() - Arrays.stream(array, i, array.length).sum());

That does (i-0) operations for first sum and (array.length-i) for second, for a total of array.length-i+i-0=array.length. As the size of input is n=array.length that really gives O(n*n). Replacing for-loops with Streams doesn't improve complexity, only hides it a bit.


text:
# A snooker ball

1. Dec 29, 2004

### DeathKnight

In snooker, I've noticed many times that it you hit some ball in right place the white ball will stop at the point of contact but the ball that was hit starts moving. Is this true that the white ball tranfers all of its momentum to the other ball and since there is no more momentum left it stops?

2. Dec 29, 2004

### DeathKnight

Well, I think it does. But the reason i asked this STUPID question is this:
If the white ball stops then it means all of its kinetic energy has been converted into the kinetic energy of the other ball(assuming that there are no energy losses), right?
(in the following example I've assumed that both the balls have different mass)
Now let the mass of white ball be 2Kg and its velocity be 1m/s. It means its has a momentum of 2Kg m/s. Now according to the conservation of momentum the other ball must have a momentum equal to 2Kg m/s. Let the mass of this ball be 1kg. Therefore its resultant velocity should be 2m/s.
But now we find this velocity by using the forula for kinetic energy i.e. 1/2mV^2.
The mass of white ball is 2kg and has a contant velocity of 1m/s. Therefore its kinetic energy is (1/2)2*1^2= 1 J. Since it has tranferred all of its energy to the other ball the kinetic energy of the other wall should be equal to it, right?
Since it has a mass of 1 Kg it must move with a velocity of sqrt. 2 to have a a kinetic energy of 1J.
Now my question is why are these to resultant velocities different?
I know it the most stupid question but I love physics and I want to know as much as i can...
Thanks in advance for any help.
Abdullah

Last edited: Dec 29, 2004
3. Dec 29, 2004

### dextercioby

1.U missed two elements.Taking them into consideration will explain the erroneous conclusion you reached.
2.The pool/snooker balls definitely roll on the table which has a surface with nonzero (and which cannot be neglected either) rolling friction coefficient.So rolling friction definitely plays a role.Have u seen pool/snooker tables with the surface covered with glass or ice??I didn't.
3.The collisions are not ideal,no matter how hard those snooker/pool balls are.A part of KE is converted into heat.
4.Have u noticed that the white ball is lighter than the red/colored balls???So your little computation doesn't model reality...

Daniel.

4. Dec 29, 2004

### DeathKnight

Right but what will happen when this happens in space, without any board, only two balls and if we do assume that the collision is ideal?

5. Dec 29, 2004

### dextercioby

Then none of the balls would stop,unless their masses were equal.Obviously in this case (no friction+ideal collision) both the laws of momentum and kinetic energy conservation would apply and for collinear momentum/velocity vectors:
$$m_{1}v_{1}+m_{2} 0=m_{1}0 +m_{2} v'_{2}$$ (1)
$$\frac{m_{1}v'_{1}^{2}}{2}+\frac{m_{2}0^{2}}{2}=\frac{m_{1} 0^{2}}{2}+\frac{m_{2}v'_{2}^{2}}{2}$$ (2)

From (1),(2) u get by simple division:
$$v_{1}=v'_{2} \Rightarrow m_{1}=m_{2}$$

So,for equal mass snooker/pool balls colliding ideally in the absence of friction the total momentum and kinetic energy transfer is possible.

This ideal picture is helpful coz it provides the expalanation for the fact that the the white & colored ball must have nonequal mass.This characteristic would compensate friction effect +KE loss in collision and would allow for this situation (total momentum transfer) to occur on a snooker/pool table.

Daniel.

6. Dec 29, 2004

### DeathKnight

Thanks alot! :)

7. Dec 29, 2004

### rcgldr

For both pool and snooker the cue ball is the same weight and size as the other balls. The only exception I'm aware of is those bar room tables you put coins in to play. On these the cue ball is bigger, so that if put into a pocket, a track with a certain width opening will return the cue ball, but allow the other balls to drop through to a collection area.

When reverse spin is put on a cue ball when it is struck, the friction of the felt slows this reverse rotation as the cue ball moves forwards. If just the right amount of reverse spin is applied, the cue ball ends up with almost no rotation as it strikes a target ball, and the result appears to be a near elastic collision. Even when there is spin on the cue ball, the collision itselft has near elastic properties, but the direction of the cue ball will be affected by any rotation of the cue ball at the time of collision. If there's forwards rotation, the cue ball will continue forward, if there's reverse rotation, the cue ball will move backwards after the collision.

Imparting side spin on a cue ball cause it to curve a slight amount, but the main reason for using side spin is to affect how the cue ball will behave when there's a second collision with one of the cushions on the sides of a pool table.

There is little friction between the balls, but the impact / normal force is large enough that some of the spin from the cue ball will be imparted onto the target ball, which will end up some spin in the opposite direction. A good example of this is a straight shot with two target balls lined up near a corner. Put a good amount of reverse spin on the cue ball, and it collides with the first ball, imparting enough forward spin on that target ball that, so that after the target ball strikes the secondary ball, the target ball will not stop, but also continue forwards into the pocket.

In case anyone is wondering, it's illegal to jump a cue ball by striking it below the center of mass with a cue. However it is legal to get the same affect by striking downwards on the cue ball from above, so that it flexes the surface of the pool table downwards a bit, which then returns upwards, imparting an upwards force on the cue ball. You're bascially causing the cue ball to bounce. If the airborne cue ball then "lands" on a target ball, the target ball will also go airborne (not much use for this secondary effect, except for trick shots).

8. Dec 29, 2004

### krab

Such questions are never stupid. I imagine Newton asked himself the exact same question. It is how physics progresses and also how a beginner learns physics.

So your reasoning can be considered a proof that in an elastic collision, with one ball hitting another stationary ball, the first ball cannot come to a stop unless the masses of the 2 balls are equal. There are many other neat things related to the physics of collisions. A non-obvious example is that in the above scenario when the balls are equal in mass and neither ball stops, their trajectories are exactly 90 degrees apart.

9. Dec 29, 2004

### Quantum_Prodegy

just wondering, would some of the energy be lost as sound as well as heat when the two balls hit? I'm a gr 11 physics student, and wanted to confirm this.

10. Dec 29, 2004

### dextercioby

It would.Actually i neglected the internal structure of the snooker/pool balls and assumed the friction with air was to be neglected.Definitely that interaction would imply loss of KE due to collisions between layers of molecules,but that's way too complicated to describe and analyze,so it's included among corrections.Actually any macroscopical process of collision would imply using the techniques of deformable solid mechanics (equations of linear elasticity and plasticity).But,again,for simplicity,we assume the collision to occur between rigid solids.

Daniel.

11. Dec 29, 2004

### rcgldr

Only if the cue ball has no spin on it at the point of collision (just the right amount of reverse spin put on it when it's struck by a cue). If there is forward spin on the cue ball, the angle is less than 90 degrees, if there is backward spin on the cue ball, the angle is greater than 90 degrees.

Pool players take advantage of the spin reaction to position the cue ball for suceeding shots.

12. Dec 29, 2004

### rcgldr

Another interesting feature of pool and snooker is the way cushions react. When a ball collides with a cushion, the direction it goes afterwards depends on how hard it hits the cushion. The harded the impact on a cushion the more perpendicular to the cushion the path of the ball will be after impact. If a ball impacts a cushion lightly at a 60 degree angle, it will bounce off with just a bit less than a 60 degree angle. If hits the cushion hard, then it will bounce off with much more than a 60 degree angle, maybe as much as an 80 degree angle.

Side spin on the cue-ball greatly affects the way it bounces off a cushion as well.

13. Dec 29, 2004

### rcgldr

Here's a good link for the physics of pool / snooker:

http://www.jimloy.com/billiard/phys.htm [Broken]

Last edited by a moderator: May 1, 2017


text:
Question

# How many types of gametes are required for $$F_2$$ generation of a monohybrid cross?

A
2
B
4
C
16
D
8

Solution

## The correct option is B 4 Biology

Suggest Corrections

0

Similar questions
View More

People also searched for
View More


text:
# What is the empirical formula for the compound P4O6?

The empirical formula for $\text{P"_4"O"_6}$ is $\text{P"_2"O"_3}$.
The empirical formula of a compound is the lowest whole number ratio of elements in the compound. To find the empirical formula for the compound $\text{P"_4"O"_6}$, divide the subscripts (which represent the ratio) by 2 to get $\text{P"_2"O"_3}$. This ratio cannot be further reduced as whole numbers.