text:
From Woman to Woman: How to Win at Life Abroad
8 March 2016 · by Margit Grobbel
Eight "best of" tips for 8 March: in honor of International Women's Day, we want to celebrate the adventurous spirit and achievements of all women who started a new life in another country. Our #ExpatChatLive team on our Twitter account has been asking women working abroad about their experiences all day long.
And in a series of interviews, expat women from around the globe have shared their personal stories and advice for making the most of life and work abroad.
Be open to new experiences.
Life abroad requires flexibility first and foremost: deciding to make the big move often means re-inventing yourself. It's not only about adding a new language to your skill set, adjusting to another culture, or learning to appreciate an unfamiliar destination: unless you're a lucky lottery winner, you have to earn a living after all.
The job market in your new location could be completely different; potential employers might look askance at someone with a temporary visa, or traveling spouses might be struggling with giving up their previous career.
As Simone, an expat spouse turned entrepreneur, puts it: "Be prepared to get involved in things you may not have considered before." Little did she know that she'd go from working in finance to teaching English to raising two daughters to successfully running her own company overseas!
Build up an international network of business contacts.
Re-inventing yourself is a lot easier if you know the right people to nudge you into the right direction. Sometimes, women can be a little too reticent to put themselves "out there". Modestly, we assume that excellent qualifications and hard work speak for themselves. Alas, that's not necessarily the case — we need a community of working women and, more generally, of savvy professionals to support us.
Emily, a British expat now working as a manager at the Munich head office of InterNations, describes how she developed her professional network over time, using various channels: university, work, seminars, travels, trade fairs and exhibitions, different expat and business groups, etc. "My contacts live all across the globe," she says, "but that's the beauty of the world today, it's so easy to stay in touch!"
Speak to women on the ground who have done what you (want to) do.
Female role models are important, but they don't always have to be world leaders, Nobel Prize-winning scientists, or human rights activists. Inspiration works in smaller ways, too. Sometimes, it helps to talk to someone who's already where you see yourself and find out how she did it.
These women can tell you all about dream destinations and dream jobs: how they ensured a smooth transition, country-wise and career-wise; if they enjoy living there; what the working conditions are like, and if there are equal career opportunities for men and women. Perhaps you can find another expat woman willing to mentor you — until it's time for you to be a mentor in turn. You might be surprised to find that you — yes, you — are someone's role model.
Don't hesitate to get expert advice.
"Understanding the vast differences in business cultures you discover abroad does give you a huge amount to offer when you return home", Emily, the start-up manager, stresses.
Despite her German degree from the UK, it took her a while to acclimatize: she thinks there's a significant difference between Germany and the UK in the workplace.
"Communication in Germany is a lot more direct. One says exactly what one means!" She laughs. "This can take a while to get used to, but it's certainly efficient."
It may take you a while, too, to master such little (or not so little) cultural differences, let alone the language barrier. Until you've become the expert, don't hesitate to ask local experts — career coaches or recruiters — for advice, especially for writing up your CV and preparing for job interviews.
Know what you are worth.
No matter if you are an international student, an expat in between jobs, or a traveling spouse: volunteering abroad can be an immensely enriching experience. In practical terms, you continue to grow your global network, and activities like fundraising or event management expand your skill set and help you gain work experience. Above all, it's very rewarding on a personal level. What could be more satisfying than working to help others rather than to add a profit margin to a corporate balance sheet?
However, volunteering isn't for everyone, but women may have internalized the message to put others first. Simone — who used to volunteer, too — says: "I know plenty of women who refused to volunteer for organizations because they knew what their input and work ethic were worth. Stand up for what you believe in."
Make sure your partner knows your expectations.
Love is one of the most common motivations for relocating, your spouse gets a great job offer abroad, or the love of your life happens to live overseas. While both men and women follow their heart across oceans and borders, it's predominantly women taking this step.
Amongst the things we do for love, giving up your old life and home is definitely one of the grand gestures. While there's nothing wrong with that, you should make sure your partner is onboard with you. "You need to agree upon how you can support each other," Simone counsels.
Traveling spouses may fall into the trap of assuming the responsibility for everything to do with the domestic and the kids. And even the most hopeless romantics shouldn't neglect their personal support network, isolating themselves socially in a strange country.
Treasure your friends.
Rebecca, a New Zealand expat who moved to Oman in order to start her own travel agency, calls being separated from her family by 13,000 kilometers her greatest struggle. Plenty of expat women probably sympathize with her plight. Just saying hi to your dad or asking after your auntie's health suddenly involves juggling time zones or dealing with dodgy internet connections.
That's all the more reason to build a second (third, fourth, etc.) "Team You" to share interests with, celebrate successes together, and have a shoulder to cry on. The popularity of expat groups for women only proves how important female friendships are.
"The upside of life abroad is that your expat friends become instant family to help you through it," Simone believes. "The friendships we have made along the way make all the downsides totally worthwhile."
A specialist for off-road travel and mountain safaris in the Arabian Desert, Rebecca is clearly the adventurous type. "Many people struggle with the idea of an independent women living and working abroad, especially in Oman, but I find it very liberating," she says about moving to the Middle East and building a business from scratch. "Just don't hesitate to accept new challenges."
While we needn't all drive a SUV through sand dunes to enjoy our new-found independence, we should take Rebecca's words to heart. All the women we've interviewed express similar sentiments in slightly different words, describing themselves as more self-confident than ever.
"It's not always easy, but you have to jump right in," says Carla, a digital designer from Portugal, who's made the jump to the UK. Or, as Emily puts it very memorably: "Self-doubt stinks."
(Image credit: 1), 3), 7), 8) iStockphoto 2), 4), 5), 6) Pexels)
Filed Under: Other Tagged With: international women's day
Faisal Aziz says
Well i am new to Baku and i don't have words to express that its like God has sent group of angels down to earth to get the right directions especially for those who are blind to their current locations.Thanks to you all people who are working for expat's reforms. I have been update by Facebook that an event is being organized in Baku city at 29th of this month.I am keenly interested to be a part of this fabulous event.I am quite sure that you people will be a helping hand for me too like before.
Michal van Belle-Stup says
Thank you for this text. You have raised good familiar points……
I was wondering if there is any network meeting for expats/international women in the Netherlands- which would allow us to support each other- share stories, and maybe most important share contacts and ideas to help each other be successfull in our businesses
Hi Michal,
Regarding your question, you can have a look at our Dutch communities on InterNations and the various groups that are on offer. For a number of cities in the Netherlands, there are also "women only" groups available who's members come together for regular activities that cover a range of interests, from joint museum visits to talks on how to start your own business.
Virginia Mendes says
This article arrived in a very nice moment of my life. I am whiling to do some changes in my life, while I am studing. So I am going to jump in, and see what's going happen.
I'm happy to hear you enjoyed the article, Virginia. All the best for your future endeavors!
Iris says
These stories are so inspiring! Thank you all for sharing them.
Thank you for your positive feedback, Iris!


The exhibition of the Collection of Classical Antiquities brings together the Greeks, Etruscans and Romans. The collection includes jewellery and coins, tombs and sanctuaries, vases with impressive artwork and statues of well-known emperors and powerful gods, providing a unique insight into the antique world.
The exhibition presents the world of Anne Frank, as well as her friends and family, in the historical context of National Socialism. There is also space given to young people from Berlin and their response today to the questions raised in Anne's diary.
The Anti-War Museum displays photos, documents and objects from both World Wars as well as a large map showing current wars and conflicts.
The Archenhold-Sternwarte is the oldest and largest public observatory in Germany; it contains exhibitions exploring the solar system, the dimensions of space and the history of the development of astronomy.
In a specially designed steel rotunda at Checkpoint Charlie, the Berlin artist Yadegar Asisi presents a monumental panorama of everyday life in Kreuzberg district in the 1980s, behind the Berlin Wall.
The Bauhaus Archive contains the largest collection on the history of the Bauhaus movement worldwide. The current special exhibition shows photographs by Hélène Binet depicting buildings by internationally famous artists, primarily in black and white.
The Berlin Cathedral was built under Kaiser Wilhelm II between 1894 and 1905 as a royal and collegiate church of the Hohenzollern dynasty. Inside are works by Karl Friedrich Schinkel, Christian Daniel Rauch and Friedrich August Stüler, among others, which originate from the previous church on the site. In the crypt there are over 90 sarcophagi from members of the House of Hohenzollern, dating from the 16th to the 20th century. The Cathedral is open late for the Long Night of Religions, which is taking place for the fourth time in Berlin on 29th August. Visitors to the Long Night of Museums are warmly invited to join the vespers and readings (6pm-11pm). At midnight, guests will be treated to an organ concert. The church and crypt are open until 2am.
The exhibition in the Tegel Fire Station tells the history of the Berlin Fire Brigade, starting with fire-fighting in the time of the first fire regulations in 1650 and taking us up to the current day. A particularly special exhibit stands in front of the Fire Brigade Museum: the very first rescue helicopter used in Berlin, the BO 105.
The only hemp museum in Germany explores the diverse uses of the plant and its significance for different cultures across the world.
Equipped with the latest Fulldome technology, the planetarium's huge dome is projected with a starry sky for a captivating visitor experience. In clear weather conditions, visitors can also view the stars from the observatory.
In March, the Berlin Story Museum moved from Unter den Linden to a five-storey overground bunker near Anhalter Bahnhof. On one floor the museum presents the history of Berlin in 30 stages with installations, photos, films, city models and exhibits, letting you experience 800 years of history in only an hour. The bunker was built in 1943 to provide protection for up to 12,000 people during the Second World War and was connected to Anhalter Bahnhof station via tunnel. On the Long Night of the Museums you can take a look at the underground level, which has retained many original features including an emergency power generator.
Based in a former station control centre, the museum focuses on the technology of Berlin's underground network, including machine demonstrations.
Berlin Wall Memorial is the central remembrance site for the division of Germany. Located along the former border zone at Bernauer Straße, it stretches 1.4 km and is accompanied by multimedia portals and texts about everyday life by the Wall and escape attempts. This is the last piece of the Berlin Wall that has been retained in its original depth. The Documentation Centre holds a permanent exhibition about the building of the Wall, the series of events leading up to it and its consequences.
On the site of the main former remand prison the memorial presents the lives of political prisoners in the GDR and the inner workings of the Ministry of State Security (Stasi).
The special exhibition "Radically Modern" in the newly renovated Berlinische Galerie shows architectural visions for Berlin in the 1960s, following the destruction and division of the city. The state museum for modern art, photography and architecture collects and presents art created in Berlin from 1870 to today.
The representative office of Bertelsmann is a place for communication and cultural exchange, as well as a place for music and literature.
The BlackBox Cold War exhibition depicts the division of Germany and Berlin in the context of the international Cold War conflict, at the site of the historic tank confrontation of 1961. Media terminals, films, original documents and artefacts show the complex relationship between the Berlin Wall, the Korean War and the Cuban Missile Crisis.
The special exhibition "ONE GOD – Abraham's Legacy on the Nile" shows the different facets of religious life and the everyday coexistence of the Nile region's three religious communities from antiquity to the Middle Ages. The permanent exhibition houses the Sculpture Collection with works from the Early Middle Ages to the late 18th century, the Museum of Byzantine Art and the collection of coins and medals, the Münzkabinett.
Clothing finery – in the special exhibition "Kimono", modern Japanese textile art meets the works of Jugendstil in an exciting dialogue. In the permanent exhibition, the internationally oriented epochal museum presents works of Art Nouveau, Art Deco and Functionalism.
The only museum worldwide dedicated to the artist group "Brücke" currently houses a comprehensive exhibition of 100 works by Max Kaus and Erich Heckel. Kaus met Heckel, ten years his senior, in Ostend during the First World War. They cultivated not only a lively artistic exchange, but also an intense friendship, which finds expression in the their stylistically and thematically related works.
Camaro House, built in 1893, once accommodated Käthe Kollwitz and Paula Modersohn-Becker's painting lessons. The Alexander und Renata Camaro Foundation looks after the works of the artist couple, making them available to the public. They support artistic movements in fine art, dance, literature, film and music that are significantly influenced by the many-facetted works of Alexander Camaro. Camaro made a name for himself in Expressionist Dance in the 1930s and later taught at the Berlin State School of Fine Arts after the War.
The Computer Games Museum houses the internationally unique permanent exhibition on the cultural history of gaming, showing the development of computer games over the years. See milestones like the first home video game console from 1972 (Odyssey), the first game computer (Commodore C64), and the first mass-produced computer game machine (ComputerSpace).
The current group exhibition "Photo Poetics: An Anthology" throws light on this recent development in photog raphy. In the tradition of concept art, the photographer creates very intimate still life images in his studio that give a deceptive appearance as documentary.
The Museum presents the entire history of film and television under one roof, from the first moving images through to digital film.


text:
Sex Bv
Bacterial vaginosis (BV) is an infection that occurs when the balance of the bacteria in the vagina becomes disrupted. The condition is not classified as a sexually transmitted infection (STI) but does sometimes develop after sex with a new partner.
Unusual vaginal discharge
Unpleasant 'fishy' smell
Pain during sex
Pain when urinating
Light vaginal bleeding
Sometimes no symptoms
What causes bacterial vaginosis?
BV occurs when there is an imbalance of good to bad bacteria in your vagina. Normally the vagina contains a bacteria called lactobacilli which produces an acid (lactic acid) to protect you against other bothersome bacteria. If BV develops it means the vagina is not as acidic as it should be because the balance of lactobacilli has dropped allowing other bacteria to grow.
The exact causes of BV are not clear but suggested triggers include new sexual partners, smoking, using strong detergents to wash underwear and using scented bath products.
How is bacterial vaginosis treated?
Before you treat Bacterial Vaginosis, you need to confirm that you have it. You can go to a sexual health clinic or your GP who will be able to do a swab to determine if you have BV. Alternatively Canesten offer a convenient test that you can do at home.
Once you are certain you have BV, you can buy over the counter home treatments. These may come in the form of a pill, a gel or a pessary. If you decide to use over the counter treatments, ensure you follow the instructions thoroughly.
Alternatively, if you have frequent bouts of BV or it doesn't go away, it can be treated with prescribed antibiotics. Usually an antibiotic called metronidazole is prescribed given either in tablet form or as a gel to be applied to the vagina.
Alternative Remedies & Self-help
Healthy eating and regular exercise will promote good general and good vaginal health.
Wear loose-fitting clothes to let air-circulate to prevent itching and chafing.
There is no current evidence to suggest live yoghurt is of benefit in treating BV.
Sexual Health Information
Sexual Health Checks
Simultaneous Orgasm
Work Woes
Facts About Penis Size
Lack of Sex Drive
Sex After Giving Birth
Low Male Libido

redpajama_set_name: RedPajamaCommonCrawl


text:
Mathematical Náboj
Physics Náboj
Junior Náboj
Náboj 2020AboutRulesArchiveContact
Competition problems 2017
1 J
The windows on an old tram look like shown in the picture. All curves forming the round corners are arcs of a quarter circle with radius 10\,\text{cm}. A portion of the sliding window is opened 10\,\text{cm} as you can see in the second picture. The height of the open section is 13\,\text{cm}. What is the area of the opening in \text{cm}^2?
Show solution Loading…
A rectangle is subdivided into nine smaller rectangles as shown in the picture. The number written inside a small rectangle denotes its perimeter. Find the perimeter of the large rectangle.
Peter deleted one digit from a four-digit prime number and obtained 630. What was the prime number?
Star architect Pegi wants to build a very modern pentagonal mansion on a rectangular lot of land having side lengths 35\, \mbox{m} and 25\, \mbox{m}. The floor area of the mansion fits into the lot as can be seen in the picture (the dots on the boundary mark 5\,\text{m} distance). What fraction of the area of the lot does the floor area of the mansion cover?
\frac{41}{70}
A square grid of 16 dots, as can be seen in the picture, contains the corners of nine 1\times 1-squares, four 2\times 2-squares, and one 3\times 3-square, for a total of 14 squares whose sides are parallel to the sides of the grid. What is the smallest possible number of dots you can remove so that, after removing those dots, each of the 14 squares is missing at least one corner?
Find the digit at the units place of the sum of squares
Express the quotient as a fraction \dfrac{a}{b} in lowest terms with positive integers a and b.
Note: The dot denotes periodic decimal expansion, for example 0.\dot12\dot3 = 0.123123\ldots.
Passau has a railway station in the form of a triangle. Anna, Boris, and Cathy observe the railway traffic in Linz, Regensburg, and Waldkirchen, respectively, on the rails coming from Passau. Anna counts 190, Boris 208 and Cathy 72 incoming and outgoing trains in total. How many trains went from Linz to Regensburg or vice versa if no train starts, ends or reverses its direction in Passau?
Find all positive integers x < 10{,}000 such that x is a fourth power of some even integer and one can permute the digits of x in order to obtain a fourth power of some odd integer. The result of permuting may not begin with zero.
10 J
In parallelogram ABCD a line through point C meets side AB in point E such that EB =\frac 15\, AE. The line segment CE intersects the diagonal BD in point F. Find the ratio BF : BD.
11 J / 11 S
A big house consists of 100 numbered flats. In every flat, there lives one person or there live two or three persons. The total number of people living in the flats No. 1 to No. 52 is 56 and the total number of people living in the flats No. 51 to No. 100 is 150. How many people live in this house?
In the first stage, Nicholas wrote the number 3 with a red pencil and 2 with a green pencil on a sheet of paper. In the following stages, he used the red pencil for writing the sum of the two numbers from the previous stage and the green pencil for their (positive) difference. What number did he write in red in the 2017th stage?
3 \cdot 2^{1008}
Little Red Riding Hood finds herself at the entrance of the "Rectangular Forest". Starting at point A, she has to reach point B as fast as possible. One possibility is to walk along the edges of the woods which will be 140\,\text{m} in total. Of course, she knows that according to the triangle inequality a direct path would be shorter. Unfortunately, there is only a path which has the form of a zigzag with two right-angled turns as can be seen in the picture. If she knew that this way was shorter than 140\,\text{m}, she would dare to take the shortcut. Find the length (in meters) of the zigzag through the forest!
Eight-digit palindromes are numbers of the form \overline{abcddcba} where a, b, c, and d are not necessarily distinct digits. How many eight-digit palindromes have the property that we can delete some digits in such a way that the resulting number would be 2017?
For a positive integer n the sum of its digits is denoted by \operatorname S(n), and the product of its digits by \operatorname P(n). How many positive integers n are there having the property n = \operatorname S(n) + \operatorname P(n)?
A factory owner hires 100 employees. Each work team leader earns £ 5{,}000 per month, each labourer £ 1{,}000 per month and each part-time worker earns £ 50 per month. In total, the factory owner pays £ 100{,}000 monthly to his employees and there is at least one employee of each type. How many work team leaders are there in his factory?
The mosaic below is composed of regular polygons. The hexagon and the dark grey triangle are inscribed in the same circle. If the area of a striped triangle is 17, determine the area of the dark grey triangle.
In the course of renovating the train station of Passau, special paving for visually handicapped people is being built in. The shape of the paving is shown in the picture below. Unfortunately, only tiles of the size 1\times 2 are available. In how many ways can the paving be filled with tiles? The tiles are indistinguishable and two pavings are considered to be different if at some spot tiles are in a different position.
Michael picked a positive integer n. Then he chose a (positive) divisor of n, multiplied it by 4, and subtracted this result from n, getting 2017. Find all numbers that Michael could have picked.
2021, 10085
Grisha and Vanechka are very good friends, so whenever they sit next to each other they begin chatting. Five students (including Grisha and Vanechka) want to have a constructive discussion, so they want to take five chairs around a round table in such a way that Grisha and Vanechka are not neighbours. In how many ways can they do it? Arrangements that differ by rotations are different.
In the figure, AB is a diameter of a circle with center M. The two points D and C are on the circle in such a way that AC\perp DM and \angle MAC = 56^\circ. Find the size of the acute angle between the lines AC and BD in degrees.
73^\circ
An object is built from unit squares by successively composing its copies as indicated in the figure below. What is the length of the thick boundary of the object in the stage 6?
All the 2017 seats around a very large round table are occupied by superheroes and villains. The superheroes always tell the truth, whereas the villains always lie. Each person sitting at the table reported that he or she was sitting between a superhero and a villain. For unknown reasons, exactly one superhero made a mistake. How many superheroes are there?
Find all positive real numbers x such that
\sqrt[2016]{2017}
Leo wants to colour the edges of a regular dodecahedron in a special way: He chooses a felt pen of one colour, starts at one vertex of the dodecahedron and moves along connected edges without lifting his pen and without colouring any edge twice until he wants to or is forced to stop. Then he takes another felt pen and begins colouring some connected uncoloured edges. He continues this procedure using one colour at a time until every edge of the dodecahedron is coloured exactly once. What is the minimum number of colours which can be used?
Note: Regular dodecahedron is a regular solid with twelve pentagonal faces as shown in the picture:
Landscape gardener Joe designed a new gravel path around a lake. The triangle ABC marks the middle of the path, its side lengths are a = 80\,\text{m}, b = 100\,\text{m} and c = 120 \,\text{m}. The borders of the path have distance 1\,\text{m} from this triangle, as can be seen in the following picture. How many \text{m}^3 of fine loose gravel must Joe order if the covering with gravel should be of height 4\,\text{cm} in average?
Find all four-digit squares of integers such that the first two digits are equal and the last two digits are also equal.
At a fun fair there is a lottery drawing with the following rules: a participant has to choose one of four indistinguishable boxes and afterwards he draws one ball out of the chosen box. If this ball is white, the participant is a winner, if it is black, he loses. For example, if the distribution of the balls in the four boxes is where each pair (w, b) represents a box with w white and b black balls inside, then a participant wins with a probability of \frac{5}{8}. Every 1000^{\text{th}} participant receives a super-joker: he or she is allowed to redistribute all the balls among the boxes arbitrarily, putting at least one ball in each box. Then the boxes are mixed again and the participant can choose a box and draw one ball. Johanna is a lucky girl and has won the super-joker. What is the largest probability for a win she can achieve by using an appropriate distribution of the balls given in the example?
A bus, a truck, and a motorcycle move at constant speeds and pass a stationary observer in this order at equal time intervals. They pass another observer farther down the road at the same equal time intervals, but in different order: this time the order is bus, motorcycle, truck. Find the speed of the bus in \text{km/h}, if the speed of the truck is 60\,\text{km/h}, and the speed of the motorcycle is 120\,\text{km/h}.
Find all ways to fill all gaps in the statement below with positive integers in order to make the statement true: "In this statement, \boxed{\phantom{00}}\,\% of digits is greater than 4, \boxed{\phantom{00}}\,\% of digits is less than 5, and \boxed{\phantom{00}}\,\% of digits is equal to either 4 or 5".
Paul's cattle grazes on a triangular meadow ABC. Since his spotted cows and those without spots did not go well together, Paul built a twenty-meter long fence perpendicular to the side AC, starting at point P on this side and ending in B, dividing the meadow into two right-angled triangles. However, this was soon met with protests from the spotted cows (grazing in the part with point A), which pointed out that AP : PC = 2 : 7 and demanded a fairer division. Consequently, Paul replaced the fence with a new one, parallel to the old one and with ends on the borders of the meadow, but dividing the meadow into two parts of equal area. What was the length of the new fence in meters?
30 \sqrt{\frac27}
There were five (not necessarily distinct) real numbers written on a blackboard. For every pair of these numbers, Wendy calculated their sum and wrote the ten results on the blackboard, erasing the initial numbers. Determine all possible values of the product of the erased numbers.
Write 333 as the sum of squares of (arbitrarily many) distinct positive odd integers.
3^2 + 5^2 + 7^2 + 9^2 + 13^2
Ellen picked three real numbers a, b, c and defined the operation \odot as As an exercise, she computed that 1 \odot 2 = 3 and 2 \odot 3 = 4. After further investigation, she noticed that there was a non-zero real number u such that z \odot u = z for every real z. What was the value of u?
Three circles of radius r and one circle of radius 1 touch each other and a straight line as shown in the picture. Find r.
\frac{1+\sqrt{5}}{2}
On an old concrete wall, someone had sprayed five (not necessarily distinct) real numbers, the sum of which was 20. For each pair of these numbers, Harry computed their sum and rounded it down (i.e. took the greatest non-exceeding nearest integer), thus obtaining ten integers. Finally, he added together all these new numbers. What was the smallest possible value of the sum that Harry could get?
For a composite positive integer n, let \xi(n) denote the sum of the least three divisors of n, and \vartheta(n) the sum of the greatest two divisors of n. Find all composite numbers n such that \vartheta(n)=(\xi(n))^4.
Note: By a divisor we mean a positive, not necessarily proper divisor.
On a 3 \times 3 board, a mouse sits in the bottom left square. Its goal is to get to a piece of cheese in the top right square using only moves between adjacent squares. In how many ways can we fill some (possibly none) of the free squares with obstacles so that the mouse is still able to reach the cheese?
Among all the pairs (x, y) of real numbers satisfying let (x_0, y_0) be the one with minimal x_0. Find y_0.
Let \triangle ABC be a right-angled triangle with right angle at C. Let D and E be points on AB with D between A and E such that CD and CE trisect \angle ACB. If DE:BE = 8:15, find AC : BC.
\frac{4\sqrt3}{11}
Mike plays the following game: His task is to find an integer between 1 and N (inclusive). In each turn, he picks an integer from this interval; if it is the correct one, the game ends, otherwise he is told if his choice was too large or too small. However, if the picked number is too large, he has to pay £ 1, and if it is too small, he pays £ 2 (and he pays nothing if his choice is correct). What is the largest integer N such that Mike can always finish the game provided that he can spend at most £ 10?
Positive integers a, b, c satisfy a \geq b \geq c and Find all possible values of a.
An alien spacecraft has the shape of a perfect ball of radius R, supported by three parallel vertical straight legs of length 1\,\text{af} (alien fathom) and negligible width. The lower ends of the legs form an equilateral triangle of side length 9\,\text{af} and when the spacecraft rests on a flat surface, the lowest point of the ball precisely touches the surface. What is the radius R (in \text{af})?
Four brothers, Allan, Bert, Charlie, and Daniel, had collected a large amount of hazelnuts in a forest. At night, Allan woke up with the irrestible urge to eat, so he decided to eat some of them. After counting the hazelnuts, he found out that if one hazelnut was removed, the rest could have been divided into four equal parts, so he discarded the extra hazelnut and ate his share (one fourth of the rest); then he returned to bed. Later that night, Bert woke up because of hunger, too, and found out that there was again an extra nut, which he removed and ate one fourth of the remaining nuts. Until morning, exactly the same happened to Charile and Daniel. When all brothers met in the morning, they found out that the number of the remaining nuts was still such that it was divisible by four after removing one nut. What was the minimal number of hazelnuts the brothers could have collected?
We call a positive integer convenient if all its prime divisors are among 2, 3, and 7. How many convenient numbers are among 1000, 1001, \dots, 2000?
Emperor Decimus has banned using the digit 0 (introduced by his predecessor Nullus) and ordered the digit \mathrm D, representing the quantity 10, to be used instead, thereby founding the Decimus notation. Each positive integer still has a unique representation, e.g. To smoothen the transfer to the new system, a list of all integers from 1 to \mathrm{DDD} (inclusive) has been written down. How many occurrences of the new digit \mathrm D are there in the list? Multiple occurrences in a single number are counted with multiplicity, so e.g. \mathrm{DD} is counted as two \mathrm D's.
Square ABCD has inscribed circle \omega, which touches the square at points W, X, Y, Z lying on sides AB, BC, CD, DA respectively. Let E be an inner point of the (shorter) arc of \omega between W and X and F the intersection of BC and EY. Provided that EF = 5 and EY = 7, determine the area of triangle FYC.
In the cryptogram different letters stand for different digits. Furthermore, we are given \operatorname{S}(W\!E)=11, \operatorname{S}(LIKE)=23, and \operatorname{S}(N\!ABOJ)=19, where \operatorname{S}(n) denotes the sum of digits of a positive integer n. None of the three numbers may start with zero. Find the five-digit number N\!ABOJ.
60{,}724
Find all positive integers n with the property that the sum of all non-trivial divisors is 63.
Note: A non-trivial divisor d of n fulfils 1 < d < n.
Bob has a cool car with square-shaped rear wheels (the front wheels are the standard round ones). Such a car would usually be rather unpleasant to drive, but Bob has installed very good shock absorbers for the rear wheels so that the car stays in a fixed position parallel to the surface while driving on a flat road. The side length of the rear wheel is 40\,\text{cm} and its axle is fixed with respect to the car in the horizontal direction. What is the radius of the front wheel (in cm) provided that when the car is moving with constant forward speed, the axle of the rear wheel is exactly half of the time lower and half of the time higher from the surface than the axle of the front wheel?
10 \sqrt{7}
The City of the Future has the shape of a regular 2017-gon. In vertices of the city there are 2017 metro stations, labelled 1, 2, \ldots, 2017 counterclockwise on the city map. There are two metro lines: side and diagonal. The side line provides direct connection from station a to b (but not in the opposite direction) if and only if a-b+1 is divisible by 2017 and one such ride lasts 1 minute. The diagonal line provides direct connection from station a to b if and only if 2b-2a+1 is divisible by 2017 and one ride lasts 15 minutes. Ferdinand is an avid metro traveller and starting from station 1 he wants to get to the station n with the following property: the shortest possible time needed for getting to this station is the longest among all the stations. Find values n of all possible destinations of Ferdinand.
Let f(n) be the number of positive integers that have exactly n digits and whose digits have a sum of 5. Determine, how many of the 2017 integers f(1), f(2), \dots, f(2017) have the units digit equal to 1.
The picture shows two (indirectly) similar hexangular figures having some sides of length a, b, c, d and A, B, C, D, respectively. If these two figures are put together as in the picture, we get a new hexangular figure being similar to each of the two smaller ones (directly similar to the right-hand one). Find the ratio A : a.
\sqrt{\frac{1+\sqrt 5}{2}}
Determine all pairs of positive integers (a,b) such that all the roots of both the equations are also positive integers.
(2,2), (6,6), (7,8), (8,7)
Triangle ABC with AB = 3, BC = 7, and AC = 5 is inscribed in circle \omega. The bisector of angle \angle BAC meets side BC at D and circle \omega at a second point E. Let \gamma be the circle with diameter DE. Circles \omega and \gamma meet at E and a second point F. Determine the length of AF.
\frac{30}{\sqrt{19}}
Determine the number of ordered triples (x, y, z), where x, y, z are non-negative integers smaller than 2017 such that is divisible by 2017.
2017^2 + 1 = 4{,}068{,}290
Jane and Thomas play a game with a fair dice, which has two faces painted red, two green, and two blue. They alternately roll the dice until one of them has seen all three colors during his/her turns, this player being declared the winner. With what probability does Jane win the game, provided that she is the first one to roll the dice?
Given the equation find the largest integer n for which there exists an integer solution (k, n).
The Quarter-Pizzeria delivers pizza in special pentagonal boxes, which are suitable both for a quarter of a big pizza and for three quarters of a small pizza (as shown in the picture). What is the radius of a small pizza (in \text{cm}) if the radius of a big pizza is 30\,\text{cm}?
5(1+\sqrt{7}-\sqrt{2\sqrt{7}-4})
Náboj IT Team 2013
This website is archived by the National Library of the Czech Republic.


More than 200 cars were included in the incidents Jan. 12 that killed two people.
Investigations of the accident are in full swing, although it will be a few weeks before they will be completed, police officials said.
Initial reports pointed to heavy fog as a contributor to the driving difficulties.
"It's progressing at a rate we'd expect," said Sgt. Larry Harrison of the Ingham County Sheriff's Department. "Such a large-scale accident takes a considerable amount of time and effort."
The sheriff's department and Michigan State Police Lansing Post number 11 are working together to complete the investigations.
Michigan State Police Lt. Pat Richard said the information gathering has been going smoothly.
"All of the troopers and officers from agencies have done an outstanding job," he said.
Each department is investigating one of the fatal accidents, as well as numerous other accidents.
They are waiting for toxicology results and are completing interviews, Richard said. The cases will then be sent on to the Ingham County Prosecutor's Office.
The fatal accidents being investigated involve two area residents.
Douglas James Baker, 15, from Holt, died after the car he was in was rear-ended by a tractor-trailer.
His grandmother and mother were taken to Lansing's Sparrow Hospital, and his grandmother was released over the weekend.
His mother, Cathy Baker, 40, remains in the hospital in fair condition, said Nan Simons, Sparrow Hospital spokeswoman. The upgrade occurred this afternoon, and Baker was moved to a rehabilitation unit.
Jason Eldridge, 27, of Owosso, was killed instantly when the passenger truck he was driving hit a different tractor-trailer in the rear.
Some of the drivers who survived crashes are remembering the scare.
Shannon Arana, who is six months pregnant, and husband Roberto Arana were on their way home from Lansing when they were hit from the rear on I-96.
Shannon, 26, was driving, but was able to stop the car before hitting a semi on the road in front of them. Then, the rental car she was driving was hit twice.
"We saw we were going to get pushed under the semi in front of us," she said.
Her husband moved to switch seats with her, but as they were trading, they were hit again and her head cracked the windshield, completely shattering it, she said.
They were able to switch, and Roberto Arana was able to get the car off the road.
Shannon was taken to the emergency room, "a scene out of the TV show E.R.," she said. She remained there overnight.
After she was released, she had to locate the vehicle and get her personal things out before it was towed.
Shannon said it took a few days for the experience to sink in.
Shannon, a 2001 MSU graduate, had been laid off the day before from her pharmaceutical sales job and was looking for a new car in Lansing the day of the accident.
"That's a lot of things to have happen in 24 hours when you're six months pregnant," she said.
The Aranas also have three children, all under the age of 3, who were at home at the time of the accident.
"I am so grateful they weren't with us that day," she said.


It's one thing to see our favorite actresses and singers doing their usual routine, but once they start working their hips, that's when the magic happens. Today, we have Demi Moore, Salma Hayek, Lindsay Lohan, Jennifer Lopez, Jessica Biel and Rihanna in all of their rump-shaking glory. Heck, we even threw in some Christina Aguilera dirrty dancing from back in her prime.


Back in the '90s, "extreme" was a buzzword that became inexplicably elevated in mass consciousness and quickly become overused to the point of meaninglessness. But if there was music in the '90s that truly lived up to the word, Doctor Nerve's "Skin" is it.
Perfectly striking a precarious balance between the accessible and the avant-garde, "Skin" finds Doctor Nerve juxtaposing high energy heavy metal guitar riffs against punchy interjections from the band's horn section. Always rhythmically unpredictable, and occasionally dissonant, Skin makes nods to the Rock in Opposition ethic as well as that of free jazz while keeping things succinct and economical.
Unapologetically cerebral yet brash and irreverent, "Skin" is among Doctor Nerve's most focused and satisfying work. Almost 25 years after its emergence, it remains as potent as ever and should be considered one of the most essential Cuneiform releases.


The Chatswood Cat Palace is Sydney's premier cat boarding and grooming facility, owned and operated by renowned cat-whisperer Dr Kim Kendall.
Cat boarding, just like cat behaviour, should be unique and here at The Cat Palace, it is all about the cats – exclusively about cats, in fact.
Your cat's comfort – both physical and mental – is paramount, whether they are enjoying a grooming session at our kitty day-spa or spending a little longer with us in our bespoke Sydney cat boarding boudoir.
At The Chatswood Cat Palace, we know cats – in fact, it's fair to say that no-one knows cats like Dr Kim, who is the only cat vet in Australia that is also qualified in cat behaviour. It's this intimate understanding of cat psychology that sets us apart.
But it isn't just a job to us, we love cats too! Everyone here has a genuine love for all your feline friends – that's why LOVE features so strongly in our logo – it's a big part of our service here. It's not for sale, but we give it freely to all our kitty clients. We find they start to love us back and pretty soon their trip to the groomers or boudoir becomes a happy experience they can look forward to.
Dr Kim recently appeared on the Sunrise breakfast Show on Channel 7 to talk about whether we humans can ever really have any idea what our cats are thinking.
Dr Kim explained that we can get answers from cats, as long as we know how to ask the question properly! Watch the video to see the full segment.
Our very own Sasha and Tai also appeared on the show, and behaved perfectly!
Happy, sad, anxious, scared, it pays to know what your cat is thinking, and how it is feeling. This handy guide to your cat's body language, kindly provided by the RSPCA will help you to do just that.
Here at The Cat Palace, we're well aware of the stresses both owner and cat can face when the cat is put into an unfamiliar environment with unfamiliar faces all around. As Sydney's premier cat boarding facility, everything we do goes into making sure any discomfort is kept to an absolute minimum and, where possible, eliminated altogether.
The process starts with our Kitty Cabanas, which have been custom designed and built with the cats in mind. Rather than maximise numbers or profits, The Palace is designed to Maximise Kitty Comfort – mentally and physically' and we only board as many cats as we can keep happy. The Cat Palace is comfortable as possible for all our residents, including our Café Purrfection residents who live with us full time!
Vertical space is as important to a cat as horizontal space, if not more so. Also vital is the separation of food, bed and toilet. We wouldn't do all 3 in the same small area, so we don't expect our guests to either. We're enormously proud of the fact that many of our cat boarding residents are familiar faces who have made many trips to see us while their people pop off somewhere for a few days. We reckon this means we're doing something right!
We settle any new residents quickly and calmly, making sure that they know we're friend and not foe. We keep a close eye on feeding and toilet habits, as these are often two earlier indicators of stress in cats, and we make sure the boarding is all abut the cats, not the cash!
For full details of our Kitty Cabanas and Cat Boarding facilities, see our Boarding page.
As our environment becomes more crowded, so the air around us becomes more and more packed with the kind of stuff that makes a cat's fur more dirty and sticky than ever before. Even though various initiatives tray and clean the air we breathe, the fact is that more people means more airborne particles.
For a cat, this means self-grooming becomes increasingly difficult at certain times of year as we add pollen and other natural contaminants to those people create with our cars, air conditioning or even through our daily jobs. Although younger cats in short haired breeds will cope quite happily (assuming no mobility issues), older cats or those with long hair will struggle to groom sufficiently and their fur can end up in poor condition and tangled to the point where grooming or even just moving becomes painful.
At The Cat Palace, we specialise in treating such problems, and can leave your feline friend as clean as a purry whistle!
Many grooming facilities routinely sedate cats to make the task quicker and easier for the groomer, but we think a little differently at The Cat Palace. Whenever possible, we try not to sedate a cat as this can bring problems of its own and, and will only do so in extreme circumstances where there is a potential risk of injury to the cat. We'll offer advice on how to reduce the effect of the environment on a cat's fur, with tips on what you can do to keep your bestie happy and comfortable.
For more details, see our Grooming page.


This page tells you about the code of practice UNSW has in place to protect all students' privacy.
UNSW is committed to safeguarding the privacy of student information. We have implemented measures to comply with our obligations under the Privacy and Personal Information Protection Act 1998 (NSW) ("the Act"). All staff are bound by the Act and by the UNSW Privacy Management Plan.
Note: The Privacy Code of Practice was updated on 26 September 2016 to reflect the requirements of the PLuS Alliance.
As an educational institution UNSW collects and holds personal information relating to you and your application, enrolment, academic progression and graduation, and the provision of student services to you.
Your information may be held in paper and electronic files. We take all reasonable steps to ensure that the information we collect about you is stored securely. We are required by law to retain records for certain periods depending on the type of record. We have appropriate systems and policies in place to protect your information from loss, unauthorised access and misuse.
We primarily collect information directly from you. Where you have applied for admission through an agent, that agent may have provided information on your behalf. Audit trails may also be maintained of any enrolment transactions you submit through UNSW's web-based student system, myUNSW.
If you do not wish for us to collect certain information about you, tell us. We will discuss with you any consequences this may have for your application, enrolment, academic progression or graduation, or the provision of student services to you.
If you provide untrue, misleading or incomplete information to UNSW, this may have consequences for your application, enrolment, academic progression or graduation, or for the provision of student services to you.
Your personal information will be used by staff involved in the administration of your application, enrolment, academic progression, graduation and in the provision of student services to you, and for directly related purposes in ways that you would reasonably expect.
UNSW Foundation Limited (a controlled entity of UNSW) uses the contact information of graduates to keep them informed about University activities and for fundraising. Graduates may update or amend their personal details by contacting the UNSW Foundation. Graduates may elect to not receive communications from UNSW Foundation by contacting the UNSW Foundation.
For admissions purposes, your information may be shared with other educational institutions. Where you are engaged in cross-institutional study it is also necessary that your personal information be exchanged with the other institution/s involved. Where you enrol in courses provided by an alliance institution (including PLuS Alliance institutions) it is necessary that your personal information be exchanged with the provider institution.
We may be required to disclose some personal information to courts or tribunals, or to state or commonwealth government agencies to comply with other laws - for example, to report Tax File Numbers, provide statistics and for mandatory reporting to government departments such as Centrelink, Department of Home Affairs and the Department of Prime Minister and Cabinet (responsible for Indigenous policies, programs and service delivery). Your personal information may also be required as evidence in court if we are subpoenaed.
The names of graduates and their awards are published in the University graduation booklet for each ceremony and may appear on the University website.
You can obtain access to your student record by lodging a written request with the Student Centre on your campus. You will need to provide identification and you may be charged a fee if you request copies of your student record.
As a student, you are able to view and update much of your personal and enrolment data in myUNSW. If you do not keep your information up to date, this may have serious consequences for you.
Update some statistical information about yourself.
Some changes to personal information - for example, a change of name - require documentary evidence. Requests for such changes must be submitted, together with the documentary evidence, to the Student Centre on your campus.
If you believe other personal information we hold about you is incorrect and an error has been made, please let the Student Centre on your campus know.
Further information on privacy at UNSW is available at http://www.legal.unsw.edu.au/compliance/privacyhome.html, including the UNSW Privacy Management Plan.
If you have questions or a complaint about the privacy of your personal information, contact the UNSW Privacy Officer by email (privacy@unsw.edu.au) or telephone: (02) 9385 8369.


If you are lucky enough to get out in a boat in the inlets around Bella Coola, most of the deep water along the inlet shores is good habitat for the tasty Spot Prawn. You have to set your trips in deep water - usually 250+ feet in depth. We were lucky enough to catch a few this summer and some of them were real giants, getting close to baby lobster tail size. They are good on a skewer BBQ'ed for a few minutes with a coating of garlic butter.
An interesting thing about these female prawns is the fact that they started out their life as boys. In a phenomena known as protandric hermaphrodism the males turn to females in their second or third year of life. Kind of weird, but pretty common in shrimp, some apparently just bypass the male phase altogether. It must be tough to not be needed. Grizzly.


text:
Q: Simple Beam Worst Case Scenario Part 1
If I have a simple beam with two supports and a static load, does placing the load in the center push the beam closest to breaking (catastrophic failure)?
Will this be more likely to break the beam:
           F
___________v___________
^                     ^
P1                   P2

Or this:
                  F
__________________v____
^                     ^
P1                   P2

Or some other configuration?
Part 2
This may be more complicated.  Which of these configurations pushes the beam closer to breaking:

*

*A floating beam (not attached at P1 & P2)

*A fixed beam (attached at P1 & P2)

Which of these should I use in my worst case calculations?
I do not care about deflection.

A: The bending stress is greatest in the middle; and when the ends are clamped, the stress is less than if they are free to bend.
All this is captured in the equations for bending moment of a beam - a (pretty) complete set of these can be found at http://www.awc.org/pdf/DA6-BeamFormulas.pdf
For part 1, you can use figure 7 (load at center):

and when the load is off center, you use figure 8:

For Part 2, beam clamped at both ends, use their figure 24:

Any other load configuration you can dream up - it's probably in there too.

redpajama_set_name: RedPajamaStackExchange


Enter family birthdays and we'll send you a handy reminder when someone's special day is approaching.
A card with gift details can be delivered in-app instantly - no delivery address required.
Wishlists so you know exactly what your family are wanting.
Team up with others to buy a gift together - everyone can contribute as much as they like and no-one has to chase the cash.
Enter family birthdays into the 'Calendar' and we'll send you a reminder via push notification so you'll never forget a special day!
Open 'Calendar' from bottom tab bar and select 'Add missing birthdays'.
Whether you're a forward planner or a last minute panicker - we have you covered! You can schedule the delivery of a gift ahead of time, or select 'Deliver now' for that emergency purchase.
If the person you're sending a gift to is on kin2kin, they will receive a push notification and a fun, confetti filled card delivery with the gift details. If the gift requires physical delivery, they (or their parents for minors) will be prompted to add their delivery address for sending.
If the person is NOT on kin2kin, then they don't deserve a gift! Just kidding - of course we have a solution for you! They will receive an email notification of the gift, and again will be prompted to enter their delivery address for physical gifts.
To start a group gift, select the gift you would like to purchase with others and then select 'Group Gift'.
If a group gift has been started by someone else, you can see that (and contribute) by selecting the recipient from the Calendar list.


text:
"""Calculate gradients of quantities over links.

Gradient calculation functions
+++++++++++++++++++++++

.. autosummary::
    :toctree: generated/

    ~landlab.grid.gradients.calc_grad_at_active_link
    ~landlab.grid.gradients.calc_grad_at_link
    ~landlab.grid.gradients.calculate_gradients_at_faces
    ~landlab.grid.gradients.calculate_diff_at_links
    ~landlab.grid.gradients.calculate_diff_at_active_links

"""

import numpy as np
from landlab.utils.decorators import use_field_name_or_array, deprecated
from landlab.core.utils import radians_to_degrees
from landlab.grid.base import CLOSED_BOUNDARY

@use_field_name_or_array('node')
def calc_grad_at_link(grid, node_values, out=None):
    """Calculate gradients of node values at links.

    Calculates the gradient in `node_values` at each link in the grid,
    returning an array of length `number_of_links`.

    Construction::

        calc_grad_at_link(grid, node_values, out=None)

    Parameters
    ----------
    grid : ModelGrid
        A ModelGrid.
    node_values : ndarray or field name (x number of nodes)
        Values at grid nodes.
    out : ndarray, optional (x number of links)
        Buffer to hold the result.

    Returns
    -------
    ndarray
        Gradients across active links.

    Examples
    --------
    >>> from landlab import RasterModelGrid
    >>> rg = RasterModelGrid(3, 4, 10.0)
    >>> z = rg.add_zeros('node', 'topographic__elevation')
    >>> z[5] = 50.0
    >>> z[6] = 36.0
    >>> calc_grad_at_link(rg, z)  # there are 17 links
    array([ 0. ,  0. ,  0. ,  0. ,  5. ,  3.6,  0. ,  5. , -1.4, -3.6,  0. ,
           -5. , -3.6,  0. ,  0. ,  0. ,  0. ])

    >>> from landlab import HexModelGrid
    >>> hg = HexModelGrid(3, 3, 10.0)
    >>> z = rg.add_zeros('node', 'topographic__elevation', noclobber=False)
    >>> z[4] = 50.0
    >>> z[5] = 36.0
    >>> calc_grad_at_link(hg, z)  # there are 11 faces
    array([ 0. ,  0. ,  0. ,  5. ,  5. ,  3.6,  3.6,  0. ,  5. , -1.4, -3.6,
            0. , -5. , -5. , -3.6, -3.6,  0. ,  0. ,  0. ])

    LLCATS: LINF GRAD
    """
    if out is None:
        out = grid.empty(at='link')
    return np.divide(node_values[grid.node_at_link_head] -
                     node_values[grid.node_at_link_tail],
                     grid.length_of_link, out=out)

@deprecated(use='calc_grad_at_link', version='1.0beta')
def calc_grad_of_active_link(grid, node_values, out=None):
    """Calculate gradients at active links.

    Examples
    --------
    >>> import numpy as np
    >>> from landlab import RasterModelGrid
    >>> grid = RasterModelGrid((3, 4))
    >>> z = np.array([0., 0., 0., 0.,
    ...               1., 1., 1., 1.,
    ...               3., 3., 3., 3.])
    >>> grid.calc_grad_of_active_link(z)
    array([ 1.,  1.,  0.,  0.,  0.,  2.,  2.])

    This method is *deprecated*. Instead, use ``calc_grad_at_link``.

    >>> vals = grid.calc_grad_at_link(z)
    >>> vals[grid.active_links]
    array([ 1.,  1.,  0.,  0.,  0.,  2.,  2.])

    LLCATS: DEPR
    """
    return calc_grad_at_active_link(grid, node_values, out)

@deprecated(use='calc_grad_at_link', version='1.0beta')
@use_field_name_or_array('node')
def calc_grad_at_active_link(grid, node_values, out=None):
    """Calculate gradients of node values over active links.

    Calculates the gradient in *quantity* node values at each active link in
    the grid.

    Construction::

        calc_grad_at_active_link(grid, node_values, out=None)

    Parameters
    ----------
    grid : ModelGrid
        A ModelGrid.
    node_values : ndarray or field name
        Values at grid nodes.
    out : ndarray, optional
        Buffer to hold the result.

    Returns
    -------
    ndarray
        Gradients across active links.

    LLCATS: DEPR LINF GRAD
    """
    if out is None:
        out = np.empty(grid.number_of_active_links, dtype=float)
    return np.divide(node_values[grid._activelink_tonode] -
                     node_values[grid._activelink_fromnode],
                     grid.length_of_link[grid.active_links], out=out)

@deprecated(use='calc_grad_at_link', version='1.0beta')
@use_field_name_or_array('node')
def calculate_gradients_at_faces(grid, node_values, out=None):
    """Calculate gradients of node values over faces.

    Calculate and return gradient in *node_values* at each face in the grid.
    Gradients are calculated from the nodes at either end of the link that
    crosses each face.

    Construction::

        calculate_gradients_at_faces(grid, node_values, out=None)

    Parameters
    ----------
    grid : ModelGrid
        A ModelGrid.
    node_values : ndarray or field name
        Values at grid nodes.
    out : ndarray, optional
        Buffer to hold the result.

    Returns
    -------
    ndarray (x number of faces)
        Gradients across faces.

    Examples
    --------
    >>> from landlab import RasterModelGrid
    >>> rg = RasterModelGrid(3, 4, 10.0)
    >>> z = rg.add_zeros('node', 'topographic__elevation')
    >>> z[5] = 50.0
    >>> z[6] = 36.0
    >>> calculate_gradients_at_faces(rg, z)  # there are 7 faces
    array([ 5. ,  3.6,  5. , -1.4, -3.6, -5. , -3.6])

    >>> from landlab import HexModelGrid
    >>> hg = HexModelGrid(3, 3, 10.0)
    >>> z = rg.add_zeros('node', 'topographic__elevation', noclobber=False)
    >>> z[4] = 50.0
    >>> z[5] = 36.0
    >>> calculate_gradients_at_faces(hg, z)  # there are 11 faces
    array([ 5. ,  5. ,  3.6,  3.6,  5. , -1.4, -3.6, -5. , -5. , -3.6, -3.6])

    LLCATS: DEPR GRAD
    """
    if out is None:
        out = grid.empty(at='face')
    laf = grid.link_at_face
    return np.divide(node_values[grid.node_at_link_head[laf]] -
                     node_values[grid.node_at_link_tail[laf]],
                     grid.length_of_link[laf], out=out)

@use_field_name_or_array('node')
def calc_diff_at_link(grid, node_values, out=None):
    """Calculate differences of node values over links.

    Calculates the difference in quantity *node_values* at each link in the
    grid.

    Construction::

        calc_diff_at_link(grid, node_values, out=None)

    Parameters
    ----------
    grid : ModelGrid
        A ModelGrid.
    node_values : ndarray or field name
        Values at grid nodes.
    out : ndarray, optional
        Buffer to hold the result.

    Returns
    -------
    ndarray
        Differences across links.

    Examples
    --------
    >>> import numpy as np
    >>> from landlab import RasterModelGrid
    >>> rmg = RasterModelGrid((3, 3))
    >>> z = np.zeros(9)
    >>> z[4] = 1.
    >>> rmg.calc_diff_at_link(z)
    array([ 0.,  0.,  0.,  1.,  0.,  1., -1.,  0., -1.,  0.,  0.,  0.])

    LLCATS: LINF GRAD
    """
    if out is None:
        out = grid.empty(at='link')
    node_values = np.asarray(node_values)
    return np.subtract(node_values[grid.node_at_link_head],
                       node_values[grid.node_at_link_tail], out=out)

@deprecated(use='calc_diff_at_link', version='1.0beta')
@use_field_name_or_array('node')
def calculate_diff_at_links(grid, node_values, out=None):
    """Calculate differences of node values over links.

    Examples
    --------
    >>> import numpy as np
    >>> from landlab import RasterModelGrid

    >>> grid = RasterModelGrid((3, 3))
    >>> z = np.zeros(9)
    >>> z[4] = 1.

    >>> grid.calculate_diff_at_links(z)
    array([ 0.,  0.,  0.,  1.,  0.,  1., -1.,  0., -1.,  0.,  0.,  0.])

    >>> grid.calc_diff_at_link(z)
    array([ 0.,  0.,  0.,  1.,  0.,  1., -1.,  0., -1.,  0.,  0.,  0.])

    LLCATS: DEPR LINF GRAD
    """
    return calc_diff_at_link(grid, node_values, out)

@deprecated(use='calc_diff_at_link', version='1.0beta')
@use_field_name_or_array('node')
def calculate_diff_at_active_links(grid, node_values, out=None):
    """Calculate differences of node values over active links.

    Calculates the difference in quantity *node_values* at each active link
    in the grid.

    Construction::

        calculate_diff_at_active_links(grid, node_values, out=None)

    Parameters
    ----------
    grid : ModelGrid
        A ModelGrid.
    node_values : ndarray or field name
        Values at grid nodes.
    out : ndarray, optional
        Buffer to hold the result.

    Returns
    -------
    ndarray
        Differences across active links.

    LLCATS: DEPR LINF GRAD
    """
    if out is None:
        out = np.empty(grid.number_of_active_links, dtype=float)
    node_values = np.asarray(node_values)
    return np.subtract(node_values[grid._activelink_tonode],
                       node_values[grid._activelink_fromnode], out=out)

def calc_unit_normal_at_patch(grid, elevs='topographic__elevation'):
    """Calculate and return the unit normal vector <a, b, c> to a patch.

    Parameters
    ----------
    grid : ModelGrid
        A ModelGrid.
    elevs : str or ndarray, optional
        Field name or array of node values.

    Returns
    -------
    nhat : num-patches x length-3 array
        The unit normal vector <a, b, c> to each patch.

    Examples
    --------
    >>> from landlab import HexModelGrid
    >>> mg = HexModelGrid(3, 3)
    >>> z = mg.node_x * 3. / 4.
    >>> mg.calc_unit_normal_at_patch(z)
    array([[-0.6,  0. ,  0.8],
           [-0.6,  0. ,  0.8],
           [-0.6,  0. ,  0.8],
           [-0.6,  0. ,  0.8],
           [-0.6,  0. ,  0.8],
           [-0.6,  0. ,  0.8],
           [-0.6,  0. ,  0.8],
           [-0.6,  0. ,  0.8],
           [-0.6,  0. ,  0.8],
           [-0.6,  0. ,  0.8]])

    LLCATS: PINF GRAD
    """
    try:
        z = grid.at_node[elevs]
    except TypeError:
        z = elevs
    # conceptualize patches as sets of 3 nodes, PQR
    diff_xyz_PQ = np.empty((grid.number_of_patches, 3))
    # ^this is the vector (xQ-xP, yQ-yP, zQ-yP)
    diff_xyz_PR = np.empty((grid.number_of_patches, 3))
    P = grid.nodes_at_patch[:, 0]
    Q = grid.nodes_at_patch[:, 1]
    R = grid.nodes_at_patch[:, 2]
    x_P = grid.node_x[P]
    y_P = grid.node_y[P]
    z_P = z[P]
    diff_xyz_PQ[:, 0] = grid.node_x[Q] - x_P
    diff_xyz_PQ[:, 1] = grid.node_y[Q] - y_P
    diff_xyz_PQ[:, 2] = z[Q] - z_P
    diff_xyz_PR[:, 0] = grid.node_x[R] - x_P
    diff_xyz_PR[:, 1] = grid.node_y[R] - y_P
    diff_xyz_PR[:, 2] = z[R] - z_P
    # cross product is orthogonal to both vectors, and is the normal
    # n = <a, b, c>, where plane is ax + by + cz = d
    nhat = np.cross(diff_xyz_PQ, diff_xyz_PR)  # <a, b, c>
    nmag = np.sqrt(np.square(nhat).sum(axis=1))

    return nhat / nmag.reshape(grid.number_of_patches, 1)

def calc_slope_at_patch(grid, elevs='topographic__elevation',
                        ignore_closed_nodes=True, unit_normal=None):
    """Calculate the slope (positive magnitude of gradient) at patches.

    If ignore_closed_nodes is True, closed nodes do not affect slope
    calculations. If a closed node is present in a patch, the
    patch slope is set to zero.

    Parameters
    ----------
    grid : ModelGrid
        A ModelGrid.
    elevs : str or ndarray, optional
        Field name or array of node values.
    ignore_closed_nodes : bool
        If True, do not incorporate values at closed nodes into the calc.
    unit_normal : array with shape (num_patches, 3) (optional)
        The unit normal vector to each patch, if already known.

    Returns
    -------
    slopes_at_patch : n_patches-long array
        The slope (positive gradient magnitude) of each patch.

    Examples
    --------
    >>> import numpy as np
    >>> from landlab import RasterModelGrid
    >>> mg = RasterModelGrid((4, 5))
    >>> z = mg.node_x
    >>> S = mg.calc_slope_at_patch(elevs=z)
    >>> S.size == mg.number_of_patches
    True
    >>> np.allclose(S, np.pi / 4.)
    True

    LLCATS: PINF GRAD
    """
    if unit_normal is not None:
        assert unit_normal.shape[1] == 3
        nhat = unit_normal
    else:
        nhat = grid.calc_unit_normal_at_patch(elevs)
    dotprod = nhat[:, 2]  # by definition
    cos_slopes_at_patch = dotprod  # ...because it's now a unit vector
    slopes_at_patch = np.arccos(cos_slopes_at_patch)

    if ignore_closed_nodes:
        badnodes = grid.status_at_node[grid.nodes_at_patch] == CLOSED_BOUNDARY
        bad_patches = badnodes.sum(axis=1) > 0
        slopes_at_patch[bad_patches] = 0.

    return slopes_at_patch

def calc_grad_at_patch(grid, elevs='topographic__elevation',
                       ignore_closed_nodes=True,
                       unit_normal=None, slope_magnitude=None):
    """Calculate the components of the gradient at each patch.

    If ignore_closed_nodes is True, closed nodes do not affect gradient
    calculations. If a closed node is present in a patch, the
    patch gradient is set to zero in both x and y directions.

    Parameters
    ----------
    grid : ModelGrid
        A ModelGrid.
    elevs : str or ndarray, optional
        Field name or array of node values.
    ignore_closed_nodes : bool
        If True, do not incorporate values at closed nodes into the calc.
    unit_normal : array with shape (num_patches, 3) (optional)
        The unit normal vector to each patch, if already known.
    slope_magnitude : array with size num_patches (optional)
        The slope of each patch, if already known.

    Returns
    -------
    gradient_tuple : (x_component_at_patch, y_component_at_patch)
        Len-2 tuple of arrays giving components of gradient in the x and y
        directions, in the units of *units*.

    Examples
    --------
    >>> import numpy as np
    >>> from landlab import RasterModelGrid
    >>> mg = RasterModelGrid((4, 5))
    >>> z = mg.node_y
    >>> (x_grad, y_grad) = mg.calc_grad_at_patch(elevs=z)
    >>> np.allclose(y_grad, np.pi / 4.)
    True
    >>> np.allclose(x_grad, 0.)
    True

    LLCATS: PINF GRAD
    """
    if unit_normal is not None:
        assert unit_normal.shape[1] == 3
        nhat = unit_normal
    else:
        nhat = grid.calc_unit_normal_at_patch(elevs)
    if slope_magnitude is not None:
        assert slope_magnitude.size == grid.number_of_patches
        slopes_at_patch = slope_magnitude
    else:
        slopes_at_patch = grid.calc_slope_at_patch(
            elevs=elevs, ignore_closed_nodes=ignore_closed_nodes,
            unit_normal=nhat)
    theta = np.arctan2(- nhat[:, 1], - nhat[:, 0])
    x_slope_patches = np.cos(theta) * slopes_at_patch
    y_slope_patches = np.sin(theta) * slopes_at_patch

    return (x_slope_patches, y_slope_patches)

def calc_slope_at_node(grid, elevs='topographic__elevation',
                       method='patch_mean', ignore_closed_nodes=True,
                       return_components=False, **kwds):
    """Array of slopes at nodes, averaged over neighboring patches.

    Produces a value for node slope (i.e., mean gradient magnitude)
    at each node in a manner analogous to a GIS-style slope map.
    It averages the gradient on each of the
    patches surrounding the node, creating a value for node slope that
    better incorporates nonlocal elevation information. Directional
    information can still be returned through use of the return_components
    keyword.

    Note that under these definitions, it is not always true that::

        mag, cmp = mg.calc_slope_at_node(z)
        mag ** 2 == cmp[0] ** 2 + cmp[1] ** 2  # not always true

    If ignore_closed_nodes is False, all proximal elevation values will be used
    in the calculation. If True, only unclosed nodes are used.

    Parameters
    ----------
    grid : ModelGrid
        A ModelGrid.
    elevs : str or ndarray, optional
        Field name or array of node values.
    method : {'patch_mean', 'Horn'}
        By equivalence to the raster version, `'patch_mean'` returns a scalar
        mean on the patches; `'Horn'` returns a vector mean on the patches.
    ignore_closed_nodes : bool
        If True, do not incorporate values at closed nodes into the calc.
    return_components : bool
        If True, return a tuple, (array_of_magnitude,
        (array_of_slope_x_radians, array_of_slope_y_radians)).
        If false, return an array of floats of the slope magnitude.

    Returns
    -------
    float array or length-2 tuple of float arrays
        If return_components, returns (array_of_magnitude,
        (array_of_slope_x_radians, array_of_slope_y_radians)).
        If not return_components, returns an array of slope magnitudes.

    Examples
    --------
    >>> import numpy as np
    >>> from landlab import RadialModelGrid, RasterModelGrid
    >>> mg = RasterModelGrid((4, 5), 1.)
    >>> z = mg.node_x
    >>> slopes = mg.calc_slope_at_node(elevs=z)
    >>> np.allclose(slopes, 45. / 180. * np.pi)
    True

    >>> mg = RasterModelGrid((4, 5), 1.)
    >>> z = - mg.node_y
    >>> slope_mag, cmp = mg.calc_slope_at_node(elevs=z,
    ...                                        return_components=True)
    >>> np.allclose(slope_mag, np.pi / 4.)
    True
    >>> np.allclose(cmp[0], 0.)
    True
    >>> np.allclose(cmp[1], - np.pi / 4.)
    True

    >>> mg = RadialModelGrid(num_shells=9)
    >>> z = mg.radius_at_node
    >>> slopes = mg.calc_slope_at_node(elevs=z)
    >>> mean_ring_slope = []
    >>> for i in range(10):
    ...     mean_ring_slope.append(
    ...         slopes[np.isclose(mg.radius_at_node, i)].mean())

    Notice the small amounts of numerical error here:

    >>> target_mean_ring_slope = [0.85707194785013108, 0.79363155567711452,
    ...                           0.77922185867135429, 0.78359813570962411,
    ...                           0.78433070957439543, 0.78452745144699965,
    ...                           0.78477643475446901, 0.78506472422668094,
    ...                           0.78505793680521629, 0.78661256633611021]
    >>> np.allclose(mean_ring_slope, target_mean_ring_slope)
    True

    LLCATS: NINF GRAD SURF
    """
    if method not in ('patch_mean', 'Horn'):
        raise ValueError('method name not understood')

    if not ignore_closed_nodes:
        patches_at_node = np.ma.masked_where(
            grid.patches_at_node == -1, grid.patches_at_node, copy=False)
    else:
        patches_at_node = np.ma.masked_where(np.logical_not(
            grid.patches_present_at_node), grid.patches_at_node, copy=False)

    nhat = grid.calc_unit_normal_at_patch(elevs=elevs)
    slopes_at_patch = grid.calc_slope_at_patch(
        elevs=elevs, ignore_closed_nodes=ignore_closed_nodes, unit_normal=nhat)

    # now CAREFUL - patches_at_node is MASKED
    slopes_at_node_unmasked = slopes_at_patch[patches_at_node]
    slopes_at_node_masked = np.ma.array(slopes_at_node_unmasked,
                                        mask=patches_at_node.mask)
    slope_mag = np.mean(slopes_at_node_masked, axis=1).data

    if return_components or method == 'Horn':
        (x_slope_patches, y_slope_patches) = grid.calc_grad_at_patch(
            elevs=elevs, unit_normal=nhat,
            ignore_closed_nodes=ignore_closed_nodes,
            slope_magnitude=slopes_at_patch)
        x_slope_unmasked = x_slope_patches[patches_at_node]
        x_slope_masked = np.ma.array(x_slope_unmasked,
                                     mask=patches_at_node.mask)
        x_slope = np.mean(x_slope_masked, axis=1).data
        y_slope_unmasked = y_slope_patches[patches_at_node]
        y_slope_masked = np.ma.array(y_slope_unmasked,
                                     mask=patches_at_node.mask)
        y_slope = np.mean(y_slope_masked, axis=1).data
        mean_grad_x = x_slope
        mean_grad_y = y_slope

        if method == 'Horn':
            slope_mag = np.arctan(np.sqrt(np.tan(y_slope_masked) ** 2 +
                                          np.tan(x_slope_masked) ** 2))
            return slope_mag
        else:
            return slope_mag, (mean_grad_x, mean_grad_y)

    else:
        return slope_mag

def calc_aspect_at_node(grid, slope_component_tuple=None,
                        elevs='topographic__elevation', unit='degrees',
                        ignore_closed_nodes=True):
    """Get array of aspect of a surface.

    Calculates at returns the aspect of a surface. Aspect is returned as
    radians clockwise of north, unless input parameter units is set to
    'degrees'.

    If slope_component_tuple is provided, i.e., (slope_x, slope_y), the
    aspect will be calculated from these data.

    If it is not, it will be derived from elevation data at the nodes,
    which can either be a string referring to a grid field (default:
    'topographic__elevation'), or an nnodes-long numpy array of the
    values themselves.

    If ignore_closed_nodes is False, all proximal elevation values will be used
    in the calculation. If True, only unclosed nodes are used.

    Parameters
    ----------
    grid : ModelGrid
        A ModelGrid.
    slope_component_tuple : (slope_x_array, slope_y_array) (optional)
        Tuple of components of slope in the x and y directions, defined
        on nodes, if already known. If not, provide *elevs*.
    elevs : str or array (optional)
        Node field name or node array of elevations.
        If *slope_component_tuple* is not provided, must be set, but unused
        otherwise.
    unit : {'degrees', 'radians'}
        Controls the unit that the aspect is returned as.
    ignore_closed_nodes : bool
        If True, do not incorporate values at closed nodes into the calc.

    Examples
    --------
    >>> from landlab import RasterModelGrid
    >>> mg = RasterModelGrid((4, 4))
    >>> z = mg.node_x ** 2 + mg.node_y ** 2
    >>> mg.calc_aspect_at_node(elevs=z)
    array([ 225.        ,  240.16585039,  255.2796318 ,  258.69006753,
            209.83414961,  225.        ,  243.54632481,  248.77808974,
            194.7203682 ,  206.45367519,  225.        ,  231.94498651,
            191.30993247,  201.22191026,  218.05501349,  225.        ])
    >>> z = z.max() - z
    >>> mg.calc_aspect_at_node(elevs=z)
    array([ 45.        ,  60.16585039,  75.2796318 ,  78.69006753,
            29.83414961,  45.        ,  63.54632481,  68.77808974,
            14.7203682 ,  26.45367519,  45.        ,  51.94498651,
            11.30993247,  21.22191026,  38.05501349,  45.        ])

    >>> mg = RasterModelGrid((4, 4), (2., 3.))
    >>> z = mg.node_x ** 2 + mg.node_y ** 2
    >>> mg.calc_aspect_at_node(elevs=z)
    array([ 236.30993247,  247.52001262,  259.97326008,  262.40535663,
            220.75264634,  234.41577266,  251.13402374,  255.29210302,
            201.54258265,  215.47930877,  235.73541937,  242.24162456,
            196.69924423,  209.43534223,  229.19345757,  236.30993247])

    Note that a small amount of asymmetry arises at the grid edges due
    to the "missing" nodes beyond the edge of the grid.

    LLCATS: NINF SURF
    """
    if slope_component_tuple:
        if not isinstance(slope_component_tuple, (tuple, list)):
            raise TypeError('slope_component_tuple must be tuple')
        if len(slope_component_tuple) != 2:
            raise ValueError('slope_component_tuple must be of length 2')
    else:
        try:
            elev_array = grid.at_node[elevs]
        except (KeyError, TypeError):
            assert elevs.size == grid.number_of_nodes
            elev_array = elevs

        _, slope_component_tuple = grid.calc_slope_at_node(
            elevs=elev_array, ignore_closed_nodes=ignore_closed_nodes,
            return_components=True)

    angle_from_x_ccw = np.arctan2(
        - slope_component_tuple[1], - slope_component_tuple[0])

    if unit == 'degrees':
        return radians_to_degrees(angle_from_x_ccw)
    elif unit == 'radians':
        angle_from_north_cw = (5. * np.pi / 2. -
                               angle_from_x_ccw) % (2. * np.pi)
        return angle_from_north_cw
    else:
        raise TypeError("unit must be 'degrees' or 'radians'")

redpajama_set_name: RedPajamaGithub