text:
Irish Primed For Showdown With UConn
NOTRE DAME FIGHTING IRISH (13-9, 7-5) AT
(8/8) CONNECTICUT HUSKIES (20-5, 8-3)
Date: Saturday, February 21, 2004
Place: Hartford Civic Center (16,294)
Television: CBS Sports – Gus Johnson (play-by-play analyst) and Clark Kellogg (color analyst)
Notre Dame plays a ranked opponent for the eighth time this season and fourth time in its last five games in this afternoon's matchup against No. 8 Connecticut.
The Irish are riding a three-game BIG EAST win streak that has included wins over Connecticut (ranked No. 5 at time of game), Seton Hall and Syracuse (No. 24 at time of game).
Notre Dame is 2-5 versus ranked opponents this season. The Irish were winless in their first five matchups against ranked foes, but has beaten Connecticut (80-74) and Syracuse (84-72).
Notre Dame's three-game win streak in conference play is its longest of the season and longest since its four-game win streak last season against Providence (71-65), Boston College (101-96), West Virginia (88-69) and Georgetown (93-92).
The Irish and Huskies will face each other for the second time in 12 days. In addition to Connecticut, Notre Dame's repeat games this season were against Pittsburgh and Syracuse. The remaining three league games will be against Providence (Feb. 24), Georgetown (Mar. 4) and St. John's (Mar. 6). Notre Dame faces one more non-conference test when the Irish travel to Los Angeles, Calif., to play UCLA.
Point guard Chris Thomas became Notre Dame's career assist leader in the Irish's win over over Connecticut on Febuary 9. Thomas, who has 599 career assists, eclipsed the former mark of 586 set by David Rivers (1984-88). Thomas' career assist average of 6.7 ranks first all-time.
Chris Thomas achieved a first in his career in Notre Dame's win at Syracuse on Monday night when he registered 25 points which marked his fourth consecutive outing with 20 or more points. Thomas scored 23 points in a loss to Pittsburgh and then followed that with a 31-point outing against Connecticut and a 26-point output in the win over Seton Hall. The 105 points he has registered over the last four games (26.3 ppg.) are the most he has scored in four straight games.
The backcourt of Chris Thomas and Chris Quinn produced its highest combined scoring output of the season as the Irish duo combined for 47 of the team's 84 points in the win at Syracuse.
Torrian Jones has scored in double figures in four straight games ( a first for him in his career) – – Pittsburgh (12), Connecticut (14), Seton Hall (13) and Syracuse (12). Heading into this season, Jones had reached double figures in five of 92 career contests. This season, he has scored 10 or more points in 11 of the 21 games he has played. Jones has reached double figures in six of the last eight contests.
Forward Torin Francis is out indefinitely with a back injury (disc). He started both the Pittsburgh and Connecticut contests, but has not played with the Irish last two contests (Seton Hall and Syracuse). Before missing last Saturday afternoon's game against the Pirates, he had played and started all 54 games of his career.
Prior to the Pittsburgh loss on January 12, the Irish's six-game winning streak was the longest for the Irish since they won eight straight contests during the 2002-03 campaign – from Nov. 30, 2002-Jan. 4, 2003 (Albany, Marquette, Maryland, Texas, DePaul, Canisius, Vanderbilt and Valparaiso).
Notre Dame's nine losses this season have been by a total of 77 points (a margin of 8.6 points per game). The Irish dropped consecutive games to Marquette (71-58), Central Michigan (69-68), and Indiana (66-63) in the first 10 days of December. Since winning six straight, Notre Dame is 4-5 in its last nine contests.
Chris Thomas has started every game of his Irish career (89 contests) and is second all-time in consecutive games started. Next up on the record list for Thomas will be Pat Garrity's (1994-98) mark of 111 consecutive starts.
Notre Dame has averaged just 8.4 turnovers in its last five games. The Irish turned the ball over a season-low four times in their win over Connecticut, including no turnovers in the second half. Against Seton Hall and Syracuse, Notre Dame turned the ball over nine times in both of those contests. The Irish have 10 or fewer turnovers on 11 occasions this season.
Notre Dame has had more assists than turnovers in 14 games this season, and in one stretch, had more assists than turnovers in eight straight contests. Overall this season, Notre Dame owns a 1.27 assist-to-turnover ratio with 313 assists and 247 turnovers. The Irish are averaging 14.2 assists and 11.2 turnovers. The Irish had a season-best 2.8 assist-to-turnover ratio against Connecticut. Another season-best performance came against Morehead State as Notre Dame registered a 2.5 assist-to-turnover ratio, dishing off 20 assists and committing only eight turnovers. In the last 16 games, Notre Dame has committed a total of 164 turnovers (10.3 per game).
Notre Dame has seen its free-throw percentage drop to 72.6 percent and out of the top-25 nationally in that category. At the start of BIG EAST Conference play, the Irish stood second nationally with a 78.7 average. Since BIG EAST play started, Notre Dame has connected on just 173-255 from the charity stripe (67.8%) in league play. The Irish converted just 3-8 from the line (both season lows) against Pittsburgh in the first meeting between the two teams. On the season, Notre Dame is getting 21.6 percent of its scoring from the charity stripe. The Irish are outscoring opponents 344-242 from the line and have attempted 129 (474-345) more free throws.
Chris Thomas has scored 20-plus points in 12 games this season and 37 times during his career. He has topped the 30-point mark on four occasions in 89 career outings.
Torrian Jones has registered a double-double in two of the last three games and in four contests overall. He had 12 points and 12 rebounds against Syracuse in Notre Dame's most recent outing. After not having a double-double in his first 100 career games, Torrian Jones registered back-to-back double-doubles against West Virginia (Jan. 7) and Villanova (Jan. 10). He had 17 points and 14 rebounds against the Mountaineers and followed that up with 10 points and 11 rebounds in the win over the Wildcats.
Chris Quinn had his nine-game double-figures scoring streak snapped (the longest of his career) against Kentucky when he netted nine points in the game, but came back against Miami to score 15 points. He is averaging 15.4 points per game in the last 17 contests (262). He is shooting 47.2% (86-182) from the field and 43.5% (47-108) from three-point range over that span. Quinn has started 15 games overall and been in the starting lineup in each of the last 10 contests.
Chris Quinn has turned the ball over just 27 times in 778 minutes this season, an average of 28.8 minutes between turnovers. He had a stretch of 159:00 on the floor without a turnover from the first half vs. DePaul (12/14) until the first half against Villanova. He has been without a turnover in seven games this season, spanning 240 minutes.
Heading into the season, Jordan Cornette had played in 65 career games and scored in double figures in just one contest. He has netted double figures in three games this season – DePaul (17), Miami (12) and Boston College (11).
Three Irish players are netting double figures with Chris Thomas leading the team with a 19.2 scoring average. Chris Quinn is averaging 14.4, while Torin Francis was averaging 14.2 points and 8.8 rebounds at the time of his injury. Torrian Jones has contributed 9.5 points per contest.
Four Notre Dame players are averaging better than 30 minutes per game – Chris Thomas (38.1), Chris Quinn (35.4), Torrian Jones (33.2) and Torin Francis (31.6). Chris Thomas has played 40 minutes in each of the last four games.
Prior to the start of the 2003-04 campaign, Torrian Jones averaged 14.2 minutes of playing time in his first three seasons. This season, he has played 30-plus minutes in 16 contests. In the loss at Rutgers, he played all 40 minutes.
Mike Brey earned his 70th win along the Irish sidelines against American on December 21. He owns a 79-40 (.664) overall record as the Irish head coach in three-plus seasons. Brey coached in his 100th game on Dec. 1 and in his 250th career game against Mount St. Mary's on Nov. 29. He earned his 175th career win the win over Miami on January 28.
Notre Dame has a 17-5 (.772) record when playing on February 21.
Notre Dame is 25-7 in its last 32 games at the Joyce Center. Before losses to Connecticut and Syracuse in the final two contests of the 2002-03 season, the Irish owned a 16-game homecourt win streak. Since that time, the Irish are 8-7 in their last 15 home games. The Irish are 8-5 at home this season – the most losses since the 1998-99 campaign when that Notre Dame suffered five losses at the Joyce Center.
TODAY'S GAME:
Today's game is the second regular-season meeting between the two teams. Notre Dame snapped a three-game losing streak to Connecticut with its 80-74 victory on February 9 at the Joyce Center.
Notre Dame is 1-4 overall against Connecticut on the Huskies homecourt and 1-3 at the Hartford Civic Center. The Irish have not played at the HCC since February 26, 2001 when it dropped a 75-59 decision to the Huskies.
Notre Dame's lone road win against Connecticut was at the Hartford Civic Center on January 5, 2000 when the Irish earned a 75-70 victory.
Connecticut snapped a two-game losing streak on Wednesday night with its 76-63 victory over Miami.
Chris Thomas leads the Irish in scoring (19.2) and assists (5.0). He has registered 20 or more points in 11 of the last 19 games, including a season-high 31 points in the win over Connecticut. Thomas has netted a career-best 20-plus points in each of the last four outings and is averaging 26.3 points in those contests. In the win over the Connecticut, he became Notre Dame's career assist leader and has 599 to his credit in three-plus seasons spanning 89 games. In addition to his scoring 20-plus points in four straight games, Thomas has registered back-to-back 20-point performances on two occasions. Against Central Michigan and Indiana, he scored 24 points in both of those contests. He also scored 20-plus points in consecutive outings against Villanova (26 points) and Pittsburgh (29 points). Against Villanova, 21 of his 26 points came in the second half. Thomas enjoyed a similar outing in the win at Virginia Tech with 19 of his 23 points coming in the final 20-minute stanza. He was held to a season-low seven points against Quinnipiac which snapped his streak of 27 consecutive games in double figures. Thomas has reached double digits in 75 of 89 career contests. He had a season-high 11 assists against Quinnipiac, marking the first time in 2003-04 (and 15th time in his career) with 10 or more assists in a game.
Chris Quinn has been in starting lineup on 16 occasions this season and has scored in double figures in 15 of the last 17 games. He earned starts in the first five contests and came off the bench during Notre Dame's six-game win streak. Quinn has been in the starting lineup for each of the last 11 contests. He scored 25 points in Notre Dame's loss at Boston College, which equalled his career-best which he set earlier this season against Quinnipiac. Quinn registered his third 20-point outing of the season in Notre Dame's win over Syracuse as he scored 22 points on Monday night. He has registered double figures in 18 of 22 contests, and prior to the Kentucky game, had netted double figures in nine straight contests (against the Wildcats he was held to nine points). Quinn posted back-to-back career outings against American and Quinnipiac, scoring 19 and 25 points, respectively. He is averaging career bests of 14.4 points (second leading scorer) and 2.8 rebounds, in addition to 3.4 assists. He has played 40 minutes in three games – Central Michigan, Syracuse and Kentucky. He has turned the ball over just 27 times this season in 778 minutes, averaging 28.8 minutes between giveaways.
Torin Francis is out indefinitely due to a disc problem in his lower back. He has posted double-doubles in seven games this season. In 54 career outings (all starts), Francis has 17 double doubles. He has scored in double figures in 16 of the 20 contests, and in 17 of his last 21 games dating back to last season. Francis was averaging 14.2 points prior to his injury and was the team's leading rebounder (8.8). In addition, his 35 blocked shots is second most on the team. He has scored 20-plus points in five contests this season. Francis netted 24 in the season opener against Northern Illinois, 23 in the Dec. 1 loss at Marquette, 21 against Morehead State , 22 against Virginia Tech and most recently 23 in the loss at Rutgers. He also had 19 rebounds in the season opener, a total that still stands as the top performance by a BIG EAST player this season. Dating back to 2002-03, he has had 10 doubles doubles in his last 26 games. In 54 career games, Francis has scored 20 or more points on nine occasions and has registered 10 or more rebounds 20 times. He has scored in double figures in 35 instances, including every game but four (Kentucky, Boston College, Pittsburgh and Connecticut) in 2003-04. He was shooting 56.2 percent from the field (77-137) in his last 14 games.
Torrian Jones has started all 21 games he has played and is enjoying his best year. He missed the Central Michigan game with a hip flexor and did not dress. Jones is averaging career bests of 9.5 points, 6.4 rebounds and 33.2 minutes per game. Jones has scored in double figures in 11 games overall this season and in six of the last nine contests. His current streak of four straight games in double figures is a personal best. Jones played all 40 minutes in Notre Dame's recent outing at Rutgers. After not having a double-double in his first 100 career games, he has recorded four double doubles this season. He had 17 points (tying a career high) and a career-best 14 rebounds vs. West Virginia and followed that up with 10 points and 11 rebounds against Villanova. In Notre Dame's win over Connecticut, he scored 14 points and grabbed 12 boards and then added 12 points and 12 boards in the Irish's victory at Syracuse.
Jordan Cornette has started 17 of 22 games this season and has been in the starting lineup in each of the last seven contests. He started the first five games before coming off the bench in the sixth game of the season against DePaul. That outing proved to be his best in an Irish uniform as Cornette finished with 17 points against the Blue Demons, marking the second time in his career that he has reached double figures. He was awarded the Wendell Smith Award as the game's MVP. Cornette shot 6 of 10 from the field and was 5 for 7 from three-point range. In addition, he grabbed seven rebounds and blocked three shots in 34 minutes. Cornette registered his second career double-double in the win over Miami three days ago as he finished with 12 points and a season-high 11 rebounds, three assists and four blocked shots. He also did not turn the ball over in 33 minutes of action. Cornette also has 132 career blocks in an Irish uniform.
Tom Timmermans has earned starts in six games this season. He had his two best performances in an Irish uniform against Syracuse. In the first meeting at the Joyce Center, he registered career bests in points (16), field goals (7), field goals attempted (10), rebounds (8), assists (4) and minutes played (32). In Monday night's win, he played 36 mintues (a new career-high) and finished with 12 points and eight rebounds. After missing the Central Michigan, Indiana, DePaul and American contests, Timmermans has played in each of the last 15 games. In his four previous starts (Pittsburgh, Syracuse, Virginia Tech and Kentucky) prior to his recent ones against Seton Hall and Syracuse, Timmermans averaged 26.0 minutes per game, 7.5 points and 6.5 rebounds. He has played in 16 games overall, averaging 19.0 minutes, 5.2 points and 3.7 rebounds.
Rick Cornett has played in 16 games and is coming off one of his best performances of the season in Notre Dame's win over Connecticut as he scored six points and grabbed a career-high seven rebounds. He also was impressive in Monday night's win at Syracuse as he shot 4-5 from the field in scoring eight points. He also had six points and three rebounds against Seton Hall. Cornett returned to action vs. West Virginia after missing three games (American, Quinnipiac and Morehead State) because of a sprained foot – an injury he sustained in practice on December 18. In his first career start, he played a career-high 16 minutes against DePaul, finishing with 10 points (on 4-of-6 shooting from the field) and five rebounds. He is averaging 2.9 points and 2.3 rebounds.
Colin Falls has made six starts and is the only Irish rookie who has seen action in all 22 games. He is averaging 15.5 minutes per game, while netting 4.6 points and 1.3 rebounds. Of his 31 field goals this season, 25 have been from beyond the three-point arc. He earned his first career start against Central Michigan and played 33 minutes while netting 11 points. He made his second start of the season against the Blue Demons and finished with a season-high 12 points. Falls, has scored in double figures in three games overall this season. He also scored 12 points (all in the first half in Notre Dame's win over Villanova).
Russell Carter saw action for the first time coming off the bench against Mount St. Mary's and recorded the first collegiate points of his career when he hit a three-pointer at the buzzer at the end of the first half. He has seen action in seven games this season and played in just one BIG EAST game (Rutgers).
SERIES RECORD VS. CONNECTICUT:
Notre Dame snapped a three-game losing streak to the Huskies with its 80-74 on February 9. The Irish and Huskies first met on December 6, 1995, Notre Dame's first year as a member of the BIG EAST Conference. Connecticut has won six of the last nine meetings between the two schools. Prior to its win 12 days ago, Notre Dame's last two wins over Connecticut had come during the 1999-2000 campaign when the Irish registered a 75-70 victory at the Harford Civic Center and a 68-66 win at the Joyce Center.
COUSY AWARD FINALIST:
Chris Thomas is among 15 finalists for the inaugural Bob Cousy Collegiate Point Guard of the Year Award, sponsored by the Naismith Memorial Basketball Hall of Fame. The award recognizes the best true point guard in all three NCAA Divisions. In addition to Thomas, the finalists include: Timmy Bowers (Mississippi State), Tony Borghese (Otterbein), Antonio Burkes (Memphis), Michael Crotty (Williams), Travis Diener (Marquette), Eric Faber (Rollins), Raymond Felton (North Carolina), Marques Green (St. Bonaventure), Devin Harris (Wisconsin), Chris Hernandez (Stanford), Josh Mueller (South Dakota), Jameer Nelson (St. Joseph's), Kelvin Parker (Northwest Missouri State), Chris Paul (Wake Forest) and Gabe Perez (Rochester).
Notre Dame has stopped a couple of notable streaks this season. In the BIG EAST opener against West Virginia on January 7, West Virginia's Drew Schifino managed just nine points vs. the Irish, snapping his school-record string of 48 consecutive contests with 10 or more points. It was the longest active streak of that nature in NCAA Division I at the time. On January 10, Notre Dame posted an 82-78 victory over Villanova, registering a win against the Wildcats for the first time since 1984. Villanova had previously beaten the Irish eight consecutive times since Notre Dame became a BIG EAST member in 1995-96. The teams did not play between 1984 and '96.
Notre Dame's victories over West Virginia and Villanova marked just the second time the Irish have opened with a pair of wins in league play since joining the conference in 1995-96. In 1999-2000, Notre Dame beat #2 Connecticut and Boston College to start conference action.
DEJA VU:
Notre Dame's win over over Connecticut on February 9 came exactly one year ago to the day of its last win over a top-five team. The 2002-03 Irish squad defeated No. 4 Pittsburgh 66-64 on Torin Francis' basket with sixth-tenths of a second remaining in the contest.
A QUICK 48-HOUR TURNAROUND:
Notre Dame has been challenged this season by playing two games in the span of 48 hours. The Irish will face this scheduling six times during the 2003-04 campaign.
TWENTY-SOMETHING:
Chris Thomas' current string of four straight games in double figures marks a first for the Irish point guard. Over the course of the last four contests (Pittsburgh, Connecticut, Seton Hall and Syracuse), Thomas has averaged 26.3 points in scoring 105 points. It marks the largest four-game consecutive scoring output of his career. The last Irish player to net 20-plus points in five consecutive games was Troy Murphy – he scored 20-plus points in the first six games of the 1999-2000 campaign.
Chris Quinn owns an impressive 2.81 assist-to-turnover ratio. He has played 778 minutes, dished off 76 assists and turned the ball over just 27 times, which translates into one turnover every 28.8 minutes. He had a string of 159:00 minutes on the floor without a turnover snapped in the first half vs. Villanova. His previous turnover came in the first half of the DePaul game on Dec. 14. Quinn dished off a career-high eight assists against Miami in 37 minutes and turned the ball over just one time.
A key to Notre Dame's success this season has been not excessively turning the ball over. The Irish have committed 10 turnovers or fewer on 11 occasions this season. Notre Dame had a season-low four turnovers against Connecticut in its victory as the Irish did not commit a turnover in the second half. They followed that by committing only nine turnovers in each of Notre Dame's last two outings versus Seton Hall and Syracuse. In the season opener against Northern Illinois, the Irish had just eight turnovers and had a season-low seven turnovers in the win over American. Notre Dame has had more assists than turnovers in 11 of the last 15 games and is averaging 11.2 turnovers and 14.2 assists per game this season.
IRISH ASSIST LEADER:
Chris Thomas became Notre Dame's career assist against Connecticut as he passed David Rivers' (1984-88) mark of 586. Thomas, who has 599 assists to his credit, achieving the record in the 87th game of his career, compared to Rivers achieving his total in 118 career outings. Thomas owns a 6.7 career assist average, while Rivers averaged a 4.97 assist average.
Freshman Colin Falls seems to have found his three-point range following a slow start. After missing his first seven three-point attempts, he has come back to make 25 of his last 60 attempts (41.7 percent). Twenty-five of the 31 field goals he has made have come from three-point range. Falls is shooting 38.3 percent overall from the field and 37.9 percent from three-point range. Falls hit his first career three-pointer in his first career start in the loss to the Chippewas after missing his first six attempts of the season. He missed his first three-point attempt against Central Michigan, but nailed his first career three-pointer on his second try.
Torin Francis' 22 points and 16 rebounds against Virginia Tech marked the 17th double-double of his career and his seventh of the season. He also had double-doubles against Northern Illinois (24 points, 19 rebounds), Central Michigan (10 points, 12 rebounds), Indiana (13 points, 13 rebounds) , Quinnipiac (19 points, 11 rebounds), Morehead State (21 points, 10 rebounds) and Syracuse (17 points, 10 rebounds). Francis' scoring (24 points) and rebounding (19 rebounds) totals in the Northern Illinois game were the second-highest of his career. Francis has scored in double figures 35 times during his career and grabbed 10 or more rebounds on 20 occasions.
Jordan Cornette blocked his 100th career shot against Marquette and has 132 to his credit for a 1.5 career average in that category. He is one of just four players in Notre Dame history who has blocked 100 or more shots during his career. LaPhonso Ellis (1988-92) holds the school mark with 200, followed by Ryan Humphrey's (2000-02) 166. Cornette is third all-time, followed by Troy Murphy (1998-01) who blocked 126 shots in three seasons.
Torrian Jones registered his fourth double double of the season (and second in the last three games) in the win over Syracuse as he scored 12 points and grabbed 12 boards. He had 14 points and 12 rebounds and also equalled a career-best with four steals against Connecticut. Jones has scored in double figures in each of Notre Dame's last four games, marking the first time in his that he has posted double digits in four straight games. Jones scored 13 points, grabbed five rebounds and matched a career-high with six assists in the win over Seton Hall. He registered his first career double in Notre Dame's first BIG EAST game of the season against West Virginia as he netted 17 points and grabbed 14 boards. The 17 points equalled his career best, while the 14 boards established a new personal best. Jones followed up that performance with another double double, with 10 points and 11 rebounds vs. Villanova. Jones heads into the Connecticut game having scored in double figures in six of the last eight contests. He has reached double figures in 11 contests in 2003-04 and 15 times during his career. Jones has played in more games (113) than any other player on the roster.
THE JONES FACTOR THIS SEASON:
At the start of this season, senior Torrian Jones had averaged 3.4 points and 2.1 rebounds in 14.2 minutes per game in his first three seasons. In 20 games in 2003-04, he is averaging career bests of 9.4 points, 6.2 rebounds and 33.0 minutes per game. Prior to the start of the season, he had scored in double figures on just five occasions. Jones played all 40 minutes for the first time in his career against Rutgers.
DUTCH TREAT:
Tom Timmermans' performance against Syracuse on January 17 marked his best effort in 73 games in an Irish uniform. He registered double figures for the first time in his career with his 16-point effort. Timmermans hit on 7-10 shots from the field, both career highs. In addition to playing a then personal-best 32 minutes, he matched his career best with eight boards and dished off a personal high four assists. In Notre Dame's second meeting with the Orangemen, Timmermans proved to be just as dangerous as he connected on 4-9 shots from the field in scoring 12 points, in addition to grabbing eight boards while playing a career-best 36 minutes. Timmermans finished with 10 points against Kentucky, marking the second double-figures scoring effort of his career. He earned his fifth start of the campaign and 16th of his career in Saturday's win over Seton Hall. Timmermans netted double figures for the third time this season as he finished with 10 points and tied for game-high rebounding honors with eight. Prior to this season, he never scored in double figures.
Notre Dame has scored 74 points or more 10 times in 21 games this season and has topped the 80-point mark on four occasions. The Irish are averaging 72.3 points per contest. Notre Dame's 84 points against Syracuse matched its highest scoring output of the season (the Irish also scored 84 points in a win over Morehead State on Dec. 28). In Mike Brey's first three seasons, Notre Dame averaged 78.1 ppg. (2000-01), 78.8 ppg (2001-02) and 79.2 ppg. (2002-03).
Notre Dame is yielding 69.4 points per game and has held 11 of its 22 opponents to fewer than 70 points. Marquette, American, Villanova, Pittsburgh, Syracuse (twice) and Kentucky have been the only teams to hit the 70-point plateau against the Irish this season. In Mike Brey's first three seasons, Notre Dame allowed 69.5 ppg. in 2000-01, 68.3 ppg. in 2001-02 and 71.3 ppg. in 2002-03.
Chris Thomas surpassed 500 career assists on Dec. 1 against Marquette. In 89 career contests, he has 599 for a 6.8 career average. He is one of just three players who has scored more than 1,000 points and dished off more than 500 assists in their career. Thomas has 1,551 career points. The other two players who have scored 1,000 career points and dished off 500 assists are David Rivers (1984-88 – 2,058 points, 586 assists) and Elmer Bennett (1988-92 – 1,488 points, 516 assists).
IRONMAN:
Chris Thomas has started all 89 games of his Irish career and is second all-time in consecutive games started. Pat Garrity (1994-98) started all 111 games of his Notre Dame career, while John Paxson (1979-83) made 85 consecutive starts (86 total during his career) and stands third on that list. Paxson started every game in his final three seasons.
MAKING THE MOST OF HIS STARTS:
In the six games that Tom Timmermans has started this season, he has averaged 8.6 points and 6.0 rebounds in 28.2 minutes. His four double-figure scoring efforts have all come when he has been in the starting lineup. Overall this season, Timmermans is averaging 5.6 points and 3.9 rebounds and 20.0 minutes per game.
Notre Dame's 189 blocked shots in 2002-03 set a new single-season team record with a per game average of 5.59. The former mark of 178 was set during the 2000-01 season in which Notre Dame averaged 5.93 blocks. The Irish finished the 2001-02 campaign with 163 blocks for an average of 4.94 per game. Notre Dame's block totals each of the last three seasons rank as the top three all-time. Notre Dame has 104 blocks in 2003-04 for an average of 4.73 per game.
The Irish used free-throw shooting as a weapon last season, averaging 17 free throws made per game. Notre Dame outscored its opponents 575-389 and attempted 190 more free throws (756-566). The Irish converted 76.1 percent of those attempts, while their opponents hit on 68.7 percent. Notre Dame is averaging 15.6 made free throws per game this season and have attempted an average of 21.5 per game. Irish opponents are averaging 11.0 made free throws per game and 15.7 attempts.
LINEUP SHAKEUP:
Irish head coach Mike Brey has juggled his starting lineup this season because of injuries and has had a different starting five on six occasions. Below is a look at each starting lineup's record.
Jordan Cornette, Torin Francis, Chris Thomas, Colin Falls and Torrian Jones – 5-0
Jordan Cornette, Torin Francis, Chris Thomas, Chris Quinn and Torrian Jones – 4 -5
Rick Cornett, Torin Francis, Chris Thomas, Colin Falls and Torrian Jones – 1-0
Torin Francis, Tom Timmermans, Torrian Jones, Chris Thomas and Chris Quinn – 1-3
Jordan Cornette, Torin Francis, Chris Thomas, Chris Quinn and Colin Falls – 0-1
Jordan Cornette, Tom Timmermans, Chris Thomas, Chris Quinn and Torrian Jones – 2-0
Notre Dame was particularly successful from the free-throw line in home games last season as the Irish were 286-373 (.767), compared to 177-257 (.689) for their opponents. In the last 11 home games of '02-'03, Notre Dame finished 224-279 (.803) from the line as the Irish made an average of 20.4 free throws on 25.4 attempts and averaged just 5.0 misses per game. Notre Dame shot a season-best 95.7 percent from the line against Rutgers (Jan. 14, 2003) as the Irish converted 22 of their 23 attempts. At home this season, Notre Dame has outscored its opponents 227-121 from the line and has attempted 131 more free throws (305-174). Overall, the Irish have converted on 74.4 percent of their attempts at home. In its two best performances of the season, Notre Dame was 19-20 (.950) from the line against Mount St. Mary's and 18-20 (.900) vs. American.
Since the inaugural season (1968-69) at the Joyce Center, Notre Dame owns a 429-129 record all-time for a .769 winning percentage. The Irish are 44-14 (.758) at the Joyce Center during Mike Brey's three seasons-plus, and since the 1996-97 campaign, they own an 94-32 mark for a .746 winning percentage. Notre Dame was 14-2 at home in 2002-03, winning 10-plus games for the sixth time in seven years. The Irish have won 25 of their last 32 games at home, but have dropped seven of the last 16 on their homecourt dating back to last season.
As a head coach at both Notre Dame and Delaware, Mike Brey has coached in 40 games against ranked opponents and owns a 14-26 record in those matchups. In three-plus seasons at Notre Dame, he has faced ranked opponents on 34 occasions and his teams are 14-20 in those contests. Last season, his team was 5-6 versus ranked teams. The Irish were 3-6 and 4-3 during the 2001-02 and 2000-01 campaigns, respectively. Brey And The Irish In Overtime Games:
Notre Dame played host to 10 sellouts at the Joyce Center during the 2002-03 season – the most since the 1985-86 campaign when 14 of the team's 17 games drew a capacity crowd. Three games last season – Pittsburgh, Virginia Tech and Syracuse – produced the largest crowds to ever witness a Notre Dame basketball game – 11,480. This season, six games have already been sell outs – Indiana, Syracuse, Kentucky and Pittsburgh, Connecticut and Seton Hall – with one other – Georgetown already sold out. This year, student tickets (2,800 to students, 400 to band and Notre Dame student-athletes) were sold out in 5-1/2 hours. Last season, student ticket packages were sold out in 36 hours.
Notre Dame's win on the road at Villanova not only was the first for an Irish team over the Wildcats in nine meetings, but it also marked the homecoming for two Irish players and a member of the coaching staff. Torrian Jones, a native of Morrisville, Pa., registered his second consecutive double double as he finished with 10 points and 11 boards. Russell Carter, from nearby Paulsboro, N.J. did not get in the game. The contest also marked the return of former Irish point guard Martin Ingelsby to the Philadelphia, Pa., area. Ingelsby, a native of Berwyn, Pa., starred for Notre Dame from 1997-01. He currently serves as the program's coordinator of basketball operations.
Notre Dame's win over Syracuse on Monday night marked the second straight year that Notre Dame has knocked off a team that the previous season had won the NCAA crown. Notre Dame's matchup last season with Maryland on December 7, 2002 in the first round of the BB&T Classic at the MCI Center marked the 31st time Irish team had played a team that had won the NCAA crown the previous year. Notre Dame owns an 9-24 mark versus teams which have won the NCAA crown in the previous season. The 1999-2000 Irish squad beat Connecticut twice – 75-70 at the Hartford Civic Center and 68-66 at the Joyce Center – the season after the Huskies claimed the '99 NCAA title.
IRISH MEN AND WOMEN JOIN ELITE GROUP:
With its win over Syracuse on Monday night, Notre Dame became just the fourth school since the inception of the NCAA women's basketball tournament in 1982 to have both its men's and women's basketball teams defeat the defending national champions in the same season. On January 13, the Irish women's team defeated Connecticut 66-51 at the Joyce Center. The three other schools to have accomplished this have been Duke (1998-99), Tennessee (1999-2000) and Michigan State (1999-2000).
In the 40 losses suffered by Irish teams in Mike Brey's three seasons, only 10 have been by 10 or more points and have been by a combined 293 points for an average of 7.33 points. Notre Dame's 17-point losses at Pittsburgh and against Arizona in the NCAA Sweet 16 last season were the two worst by an Irish team under Brey. Prior to those two setbacks, the worst defeat was a 16-point decision at Connecticut during Brey's first season. Notre Dame's 11 losses during the 2001-02 season were by a combined 49 points for an average margin of defeat of 4.45 points. Only one loss (vs. Georgetown 83-73) was by double figures, while eight of those setbacks were by five points or less.
Heading into today's game against Connecticut, Notre Dame has hit at least one three-pointer in 169 straight games, a mark that dates back to the 1998-99 campaign. The last time an Irish team failed to hit a three-pointer was in a 101-70 loss to Connecticut in the Hartford Civic Center (Jan. 12, 1999) as Notre Dame finished 0-7 in the contest.
Notre Dame will make more national television appearances -13 – than any other BIG EAST team this season. The Irish will be appear on CBS four times, ESPN five times and ESPN2 on four occasions. It will mark the most single-season national television appearances ever by a Notre Dame basketball team. Connecticut will appear on 11 national broadcasts (excluding the Preseason NIT) during the regular season.
NOTRE DAME 12TH IN DIRECTORS' CUP
Notre Dame stands 12th in the final set of fall sports standings in the 2003-04 Division United States Sports Academy Directors' Cup all-sports competition. Irish teams have earned a combined 199 points. Michigan currently leads the standings with 482 points. Notre Dame has reached its highest finish – 11th- on three occasions (1993-94, 1995-96 and 2000-01).
Men's Basketball @NDMBB | The Mike Brey Show (1.21.20)
Men's Basketball @NDMBB | Getting To Know Cormac Ryan (01.21.21)
Men's Basketball @NDMBB | Irish Intel vs. Virginia Tech (01.21.21)


text:
{| class=wikitable style=border:1 solid #aaa;
| style=border:1; |
{| cellspacing=2 cellpadding=3 align=center
|-
| colspan=3 align=left bgcolor=#C7DEFF style=font-size:100% | Кубок мира по лыжному двоеборью 2020/2021 года
|-
| width=200 style=font-size:80% |
| width=200 align=center bgcolor=#AFAFAF style=font-size:80% | Мужчины
| width=200 align=center bgcolor=#AFAFAF style=font-size:80% | Женщины
|-
| bgcolor=#AFAFAF style=font-size:80% | Общий зачёт
| bgcolor=#DCDCDC style=font-size:80% |  Ярль Магнус Рийбер
| bgcolor=#DCDCDC style=font-size:80% |  Тара Герати-Моутс
|-
| bgcolor=#AFAFAF style=font-size:80% | Прыжки с трамплина
| bgcolor=#DCDCDC style=font-size:80% |  Ярль Магнус Рийбер
| bgcolor=#DCDCDC style=font-size:80% |  Гюда Вествол Хансен
|-
| bgcolor=#AFAFAF style=font-size:80% | Лыжные гонки
| bgcolor=#DCDCDC style=font-size:80% |  Илькка Херола
| bgcolor=#DCDCDC style=font-size:80% |  Тара Герати-Моутс
|-
| bgcolor=#AFAFAF style=font-size:80% | Кубок наций
| bgcolor=#DCDCDC style=font-size:80% |  Германия
| bgcolor=#DCDCDC style=font-size:80% |  Норвегия
|-
| bgcolor=#C7DEFF style=font-size:80% | <<<2019/2020
| bgcolor=#C7DEFF style=font-size:80% |
| align=right bgcolor=#C7DEFF style=font-size:80% | 2021/2022>>>
|}
|}

 Результаты соревнований

 Мужчины

 Зачёт кубка мира

 Мужчины

 Зачёт кубка наций

 Достижения Первая победа в карьере

Первый подиум в карьереПобеды на этапах кубка мира

Примечания

Зимние виды спорта в сезоне 2020/2021
Кубок мира по лыжному двоеборью

redpajama_set_name: RedPajamaWikipedia


I 'll not apply a date to it.
I was not there LOOKING, when the first road was built.
I actually forgot about toll roads, usually they didn't amount to much, but never the less, the whole analogy was kinda ignorant on my part.
I read, mostly skimmed, a little on Wikipedia a minute ago on the history of toll roads. Apparently, at first they were privately owned but by the turn of the 20th century, the government mostly took over because of the development of more and faster cars, better highways were needed. So evidently, private companies needed help.
Even Toll roads in the 1700s were authorized by governments if they were run by private companies.
For toll roads, land had to be purchased by private individuals and fair value had to be given. When government took over they could just take the land through the courts the same way they do today than "sell" the roads to their political buddies for a pittance.. Nothing has changed in 300 years.
I got it. But the goverment has some control over what's put on television (through the FCC) if it could be harmful to viewers. Maybe they should also get some regulations on firearms since they can be harmful to users as well.
To be quite honest, I actually have no idea what the government (or anyone) should do about gun control, but something has to be done. There have been far too many shootings recently. I don't know if the best resolution would be background checks, regulations on wh0 gets guns, etc., but that's what's been proposed so far. I hope someone can come up with better resolutions, but until then, I have to go with what's been proposed so far because I want SOMETHING done (and have no good ideas myself).
( on the same principle as mandatory use of seatbelts ).
There have been far too many shootings recently.
We are a nation of 300 millions and by percent of population we are at a low point in our history concerning violence of all types including so call gun violence.
The overall murder rate is at a fifty years low and mass violence/killings peak in the year 1929.
media attention to the change taking place in Mississippi.
 That change will allow the average citizen to carry a firearm openly.
is really no new law and no real change to the law.
harassment for exercising their right.
may have a gun they are not so sure its a good idea.
some of their fears about their neighbors carrying guns.
to protect the lives of honest citizens than to take lives.
are by women defending themselves against sexual abuse.
as police do every year (1,527 to 606).
or fire a warning shot to scare off their attackers.
themselves with a firearm away from home.
Did you catch some of those numbers?
is significatly less than that of police.
accidentally shot by a policeman than by an armed citizen.
to carry concealed or have a handgun in our homes.
want it for everyone or it doesn't work.
Prevalence and Nature of Self-Defense with a Gun by, Gary Kleck and Marc Gertz.
» Thoughts on gun control..?


What are qualities of a good neighbor?
Essay topics: What are qualities of a good neighbor?
It is established beyond doubt that good qualities form a fundamental part of a person's characteristics without which his/her personality seem to be incomplete. As a matter of fact, trustworthy, integrity, commitment, respect, communication and so forth, are of utmost important hallmarks or qualities that form an ideal personality and neighbors are not exception from this role. In fact, good neighbors should carry specific characters, which distinct them from each other. In the ensuing paragraphs some convincing reasons will be delineated to elaborate my personal stance.
To commence with, trustworthy and integrity are among significant hallmarks that having them could highlight every personality. Generally phrased, not only are they the most required and most admired qualities of all people but also are effective for every neighbor. The willingness and ability to trust the people that you look up is absolutely essential to your ability to perform at your very best. As a tangible example, if neighbors trust and get help from each other, not only can trustworthy spread out in every given society but also can make people progress in their life day in day out. To elucidate more on this issue, with integrity and trustworthy you have nothing to fear since you have nothing to hide and also with trustworthy and integrity you will do the right things so, you will have no guilt. As far as I am concerned, trust make people decide their path and patronize other to face trials and tribulations in their lives effectively.
Another reason that should not go unnoticed is that good neighbors should be able to handle problems maturely. Broadly speaking, consider neighbors living in an apartment complex and confront various difficulties in their everyday life. A good neighbor is a neighbor that would be capable to face those problems vigorously and make a sound decision to deal with difficulties. Indeed, a mature decision is needed in order to overcome any problems. Going into the depth, good neighbors always bend over backwards to behave maturely and be respectful towards others attitude. They never behave rudely, never ignore you and so on.
Thirdly, a good neighbor always understand and appreciate different situations. Indeed, when other neighbors run into a huge and serious problem and overwhelm by stress, they make an effort to handle their problem as they may come across. In such case, every neighbor could handle and choose the best way to address problem easily and quickly.
In light of reasons elaborated, I reiterate that trustworthy, integrity, understanding, handle problems maturely and so forth, are among important qualities that could bright every neighbors' personality.
Message: Possible typo: apostrophe is missing. Did you mean 'neighbors'' or 'neighbor's'?
...rtant qualities that could bright every neighbors personality.
...uld bright every neighbors personality.
Nominalization: 4.0 8.0752688172 50% => More nominalization wanted.
Sentences with neutral sentiment: 0.0 4.88709677419 0% => More facts, knowledge or examples wanted.


SaaS Wiki Collaboration Tool: Wikis are a great way to collaborate on community- sourced content. Whether the wiki is for a hobby or work-related project, you will build an app that lets users create their own wikis and share them publicly or privately with other collaborators.
Ruby on Rails, CSS, HTML/ERB, Bootstrap. Stripe for recurring subscription of premium users. Pundit for authorizations, Devise for authentication. RedCarpet for markdown and live previews. Highlight for code-formatting. Friendly-ids for user-friendly slugs on wiki articles.


Improved Formula! The mix of nutty and fruity flavours in this traditional British pudding makes for a delicious e-liquid, and our Cherry Bakewell expertly replicates everyone's favourite sweet treat. With a top note of juicy cherry against a light almond background, this balanced flavour is as moreish as the real thing.


text:
Pigliucci è professore di filosofia al CUNY-City College di New York,  è stato co-conduttore del podcast Rationally Speaking (Parlando razionalmente) e redattore capo della rivista online Scientia Salon. Pigliucci è un deciso critico della pseudoscienza e del creazionismo ed un sostenitore del secolarismo e dell'educazione scientifica, nonché per un periodo esponente dello "stoicismo moderno".

Biografia
Pigliucci è nato a Monrovia, Liberia, ma è cresciuto a Roma. Ha conseguito il dottorato in genetica all'Università degli Studi di Ferrara, Italia, un Ph. D. in biologia dell'Università del Connecticut e un Ph. D. in filosofia della scienza dall'Università del Tennessee.; è socio di American Association for the Advancement of Science (Associazione americana per l'avanzamento della scienza) e di Committee for Skeptical Inquiry.
Pigliucci è stato professore di ecologia e evoluzione all'Università di Stony Brook compiendo ricerche sulla plasticità fenotipica, le interazioni genotipo-ambiente, la selezione naturale e i vincoli imposti sulla selezione naturale da parte del corredo genetico e dello sviluppo degli organismi. Nel 1997, ha ricevuto il premio Theodosius Dobzhansky, conferito annualmente dalla Society for the Study of Evolution (Associazione per lo studio dell'evoluzione). Come filosofo, si è interessato alla struttura e ai fondamenti della teoria dell'evoluzione, alla relazione tra scienza e filosofia e alla relazione tra la scienza e la religione ed è un sostenitore della sintesi evolutiva estesa.

Pigliucci scrive regolarmente sullo Skeptical Inquirer sui temi di negazionismo o scetticismo del cambiamento climatico, disegno intelligente, pseudoscienza e filosofia. Ha scritto per Philosophy Now e ha un blog intitolato "Rationally Speaking (Parlando razionalmente)". Ha contrastato "i negazionisti dell'evoluzione" (creazionismo della Terra Giovane e sostenitori del disegno intelligente), tra cui i creazionisti della terra giovane Duane Gish e Kent Hovind, i sostenitori del disegno intelligente William Dembski e Jonathan Wells, in molte occasioni.

Pensiero critico e scetticismo scientifico

Pur essendo ateo, Pigliucci non crede che la scienza richieda di essere atei, se si ammettono due distinzioni:
la distinzione tra naturalismo metodologico e naturalismo filosofico e la distinzione tra giudizi di valore e le questioni di fatto. Crede che molti scienziati ed insegnanti di scienze non apprezzino tali differenze.  Pigliucci ha criticato gli scrittori Nuovi Atei per aver sostenuto quello che lui considera scientismo (sebbene escluda il filosofo Daniel Dennett da questa accusa).  In una discussione del suo libro Answers for Aristotle: How science and philosophy can lead us to a more meaningful life (Risposte per Aristotele: come la scienza e la filosofia possono condurci ad una vita più ricca di significato), Pigliucci ha detto al conduttore del podcast Skepticality, Derek Colanduno, "Aristotele era il primo pensatore antico a prendere sul serio l'idea che hai bisogno di fatti empirici, e che hai bisogno di un approccio basato sull'evidenza nel mondo, e che devi essere in grado di riflettere sul significato di quei fatti....Se vuoi delle risposte a delle domande morali, non chiedi al neurobiologo, non chiedi al biologo dell'evoluzione, chiedi al filosofo."

Pigliucci descrive la missione degli scettici, facendo riferimento al libro di Carl Sagan Il mondo infestato dai demoni: La scienza e il nuovo oscurantismo dicendo "Ciò che fanno gli scettici è tenere accesa quella candela e cercare di diffonderla il più possibile." Pigliucci fa parte del consiglio di NYC Skeptics e fa parte del comitato consultivo di Secular Coalition for America (Coalizione secolare per l'America).

Nel 2001, ha preso parte a un dibattito sull'esistenza di Dio con William Lane Craig.

Massimo Pigliucci ha criticato l'articolo di giornale di Papa Francesco intitolato Un dialogo aperto con i non-credenti (An open dialogue with non-believers). Secondo Pigliucci l'articolo assomigliava più ad un monologo che ad un dialogo, e ha indirizzato una risposta personale a Papa Francesco nella quale ha scritto che il papa ha solo offerto ai non-credenti «una riaffermazione di fantasie senza fondamento riguardo a Dio e a suo Figlio...seguite da affermazioni confuse tra il concetto d'amore e di verità, il tutto condito da una significativa dose di revisionismo storico e negazione degli aspetti più brutti della tua Chiesa (noterai che non ho nemmeno menzionato la pedofilia!)».

Rationally Speaking

Nell'agosto 2000 Pigliucci ha iniziato una rubrica su internet intitolata Rationally Speaking (Parlando razionalmente). Nell'agosto 2005, la rubrica è diventata un blog,  dove ha scritto fino a marzo 2014. Dal 1º febbraio 2010 Pigliucci co-conduce il podcast bi-settimanale Rationally Speaking con Juilia Galef, che ha conosciuto al Northeast Conference on Science and Skepticism (Conferenza del nord-est sulla scienza e sullo scetticismo), tenuta nel settembre 2009. Il podcast è prodotto da New York City skeptics (Scettici della città di New York). Il programma vede la partecipazione di ricercatori, divulgatori scientifici ed insegnanti per presentare libri o discutere di temi di attualità su temi di filosofia e scienza. In una puntata del 2010, Neil deGrasse Tyson descrisse la necessità di finanziare con denaro pubblico i programmi spaziali. La trascrizione della puntata venne poi pubblicata nel libro Space Chronicles (Cronache Spaziali). In un altro episodio Tyson spiegò la propria opinione sul significato di essere ateo, poi commentata in una trasmissione di NPR. Pigliucci ha poi lasciato il podcast per dedicarsi ad altri interessi.

Libri

Come essere stoici: Riscoprire la spiritualità degli antichi per vivere una vita moderna, Garzanti 2015
Stoicismo: Esercizi spirituali per un anno, 2020, con Gregory Lopez

Articoli
Di seguito sono pochi articoli di Pigliucci.

Altri articoli si possono trovare sui siti web personali  (vedere "Collegamenti esterni" sotto).

Note

Voci correlate
Committee for Skeptical Inquiry

Altri progetti

Collegamenti esterni
 – Pagina web di Pigliucci
 – blog di Pigliucci sullo scetticismo scientifico skepticism e sull'umanismo.
 Rationally Speaking Podcast
 su Secular Web

Genetisti italiani
Studenti dell'Università degli Studi di Ferrara
Biologi italiani
Umanisti italiani
Filosofi atei
Professori dell'Università di New York


Ubuntu 18.10 will be released this October, and we already have information about the new Ubuntu's features, changes, release date, and more.
Some of you requested an article for 18.10 like we did one for Ubuntu 18.04, so here it is. Though it's still relatively early, there is some information available about the new features, what will be changed, the name, and more.
Communitheme, the theme that was originally developed for Ubuntu 18.04, will be the new default theme in 18.10. This is a whole new, fresh look to Ubuntu. The developers are still working on the theme and there may be more changes and style updates. As of Late July 2018, Communitheme is known by its new name – Yaru.
GNOME 3.30 The newest version of GNOME, 3.30, is scheduled for release this September, which means it's likely that Ubuntu 18.10 will use the newest version of GNOME, though this still hasn't been confirmed.


Name of Burlesque Dancer Who Performed At Cricket Awards Night: Burlesque Dancer, who was performed at prestigious cricket awards night, has gone viral over internet and media, after her strip performance at award night. Attendees have told of their shock and disgust when a burlesque dancer took a sponge bath in a huge martini glass on stage at a prestigious cricket awards night.
Who is Burlesque Dancer performed at Cricket Awards Night: According to sources, the dancer, who was employed by Sugar Blue Burlesque, was a stripper but WACA denied this was her profession.
One caller, who attended the Western Australian Cricket Association's Laurie Sawle Medal awards, told Wednesday's breakfast program the dancer's performance made people uncomfortable.


text:
<!DOCTYPE html>

	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width">
	<title>TPA Source: tpa.js</title>

	<link type="text/css" rel="stylesheet" href="styles/sunlight.default.css">

	<link type="text/css" rel="stylesheet" href="styles/site.cosmo.css">

		TPA
		<button class="navbar-toggle" type="button" data-toggle="collapse" data-target="#topNavigation">

        </button>

				Modules

N

TPA

				Classes

N~N

TPA~Tpa

				Externals

Error

            <form class="navbar-form" role="search">

                    <input type="text" class="form-control" placeholder="Search" name="q" id="search-input">

                        <button class="btn btn-default" id="search-submit"></button>

            </form>

Source: tpa.js

module.exports = (/** @lends module:TPA*/function(globalObj) { //eslint-disable-line
    'use strict';

    /**
     * The error message given when passing an invalid initial value for a new number
     *
     * @const
     */
    var INPUT_ERROR_MESSAGE='Number initialisation parameter badly formed';
    /**
     * number of DPs to take from a numeric construction and to output with the value() method
     *
     * @const
     */
    var VALUE_DECIMAL_PLACES=8;

    // Polyfill Math.trunc
    Math.trunc = Math.trunc || function(x) {
        return x < 0 ? Math.ceil(x) : Math.floor(x);
    };

    // Polyfill Math.sign
    Math.sign = Math.sign || function(x) {
        x = +x; // convert to a number
        if (x === 0 || isNaN(x)) {
            return x;
        }
        return x > 0 ? 1 : -1;
    };

    /**
     * Tpa stores and manipulates rational numbers with total precision
     *
     * @param {(number|string|module:TPA~Tpa)} [initialValue] Initial value to set this number.
     * 1. Numeric values are only represented to a precision of 8 decimal places and, in any case, are limited by the precision of a JS floating point number. To initialise a number with definite accuracy the string form is recommended.
     * 2. String values can be represented in decimal or fractional form.
     *   * Decimal form: `<+/->iii.ddd[rrr]` where `+/-` is optional, `iii` represents the integer part and `ddd` the decimal part with `[rrr]` representing an optional recurring decimal part
     *   * Fractional form: `<+/-> iii nnn/ddd` where `+/-` is optional, `iii` represents the (optional) integer part, `nnn` the numerator and `ddd` the denominator. The fraction may be top heavy.
     * 3. Tpa instance causes this constructor to return a copy of it.
     *
     * Tpa may be called statically, in which case a new instance is still returned.
     * __Note well:__ If initialValue is itself a Tpa, then the same Tpa is returned *without* making a copy when called statically.
     * @param {boolean} [isInteger=true] Set to `false` to enable this number to represent fractions.
     * If the initialValue is fractional in any way then isInteger will default to `false`.
     * The initial setting of this number (integer or fractional) is always kept throughout its life unless the {@link makeFractional} or {@link makeInteger} methods are called to change it.
     * @see #makeFractional
     * @see #makeInteger
     * @example
     * var a=new Tpa();                 // Creates a new number set to zero
     * var b=Tpa(20);                   // Creates a new number preset to 20
     * var c=Tpa['0.[6]'];              // Creates a new number preset to 2/3
     * var d=new Tpa('2/3'];            // Creates a new number preset to 2/3
     * var e=new Tpa('-4 538/1284');    // Creates a new number preset to -4.4[19003115264797507788161993769470404984423676012461059]
     * var f=new Tpa(b);                // Creates a new number preset to 20
     * var g=Tpa(e);                    // Does NOT create a new number: Object g references Object f
     * var h=Tpa(false);                // Creates a new number set to zero but is configured to represent fractions
     * var i=Tpa(100,false);            // Creates a new number set to 100 but is configured to represent fractions
     * var j=Tpa(100.5,true);           // Creates a new number set to 100 as we explicitly set it to be integer only and the fractional part is ignored
     * var k=Tpa('10 20/3',true);       // Creates a new number set to 16 as we explicitly set it to be integer only and the fractional part is ignored
     * @constructor
     * @throws {external:Error} If the constructor parameters are not valid
     */
    var Tpa=TPA;

    var N=require('./N.js');

    // Utility function to return a remainder in standard form
    function standardRemainder(numerator,denominator) {
        return {
            numerator: numerator instanceof N ? numerator : new N(),
            denominator: denominator instanceof N ? denominator : new N(1)
        };
    }

    // Constructor for a new Tpa
    function TPA(initial,integer) {
        // Logic to redirect a static call to return a new object
        if (!(this instanceof Tpa)) {
            // The only exception to the above is that if an instance of this class is passed in the static
            // call it will be returned with creating a new copy - so long as the type is the same (integer or not)
            if (initial instanceof Tpa && (typeof integer != 'boolean' || integer == initial.integer)) return initial;
            switch (arguments.length) {
            case 0:
                return new Tpa();
            case 1:
                return new Tpa(initial);
            default:
                return new Tpa(initial, integer);
            }
        }
        return this.set.apply(this,arguments);
    }

    /**
     * Sets this number to a new value
     *
     * Parameters passed are exactly those expected for construction of a new Tpa
     *
     * @param {(number|string|module:TPA~Tpa)} [initialValue] Initial value to set this number.
     * @param {boolean} [isInteger=true] Set to `false` to enable this number to represent fractions.
     * @return {module:TPA~Tpa} this number for chaining purposes
     */
    Tpa.prototype.set=function(initialValue,isInteger) {
        var me = this;
        // Establish whether this instance is to be an integer only
        this.integer=true;
        if (typeof initialValue == 'boolean') this.integer=initialValue;
        if (typeof isInteger=='boolean') this.integer=isInteger;

        // If the constructor argument is an instance of this class then we return a copy of that instance
        if (initialValue instanceof Tpa) {
            this.number=new N(initialValue.number);
            if (!(typeof isInteger == 'boolean') && initialValue.isFractional()) this.integer=false;
            if (!this.integer) {
                if (initialValue.isInteger()) this.remainder=standardRemainder();
                else {
                    this.remainder = {
                        numerator: new N(initialValue.remainder.numerator),
                        denominator: new N(initialValue.remainder.denominator)
                    };
                }
            }
            return this;
        }

        // If the constructor argument is a number then we preset this number with the number given
        if (typeof initialValue == 'number') {
            this.number=new N(initialValue);
            var denominator=Math.pow(10,VALUE_DECIMAL_PLACES);
            var numerator=Math.trunc((initialValue-Math.trunc(initialValue)).toFixed(VALUE_DECIMAL_PLACES)*denominator);

            // Note that the fractional part only takes 8 decimal places (as per VALUE_DECIMAL_PLACES)
            if (typeof isInteger!='boolean' || !this.integer) {
                if (typeof isInteger!='boolean') this.integer=numerator==0;
                while (numerator != 0 && numerator % 10 == 0) {
                    numerator/=10;
                    denominator/=10;
                }
                if (numerator>0 || !this.integer) {
                    this.integer=false;
                    this.remainder = {
                        numerator: new N(numerator),
                        denominator: new N(denominator)
                    };
                }
            }
            return this;
        }

        // Helper function to parse and create a fraction from an arbitrary number of decimal input representation
        // Note that the input is assumed to be "clean"
        function parseDecimal(input,sign) {
            me.remainder=standardRemainder();
            for (var i= 0,recurring=null; i<input.length; i++) {
                if (input[i]=='[' && recurring===null) {
                    recurring = {
                        numerator: new N(me.remainder.numerator),
                        denominator: new N(me.remainder.denominator)
                    };
                    continue;
                }
                // The recurring section is mathematically achieved by subtracting the values at the start
                if (recurring && input[i]==']') {
                    me.remainder.numerator.subtract(recurring.numerator);
                    me.remainder.denominator.subtract(recurring.denominator);
                    return this;
                }
                me.remainder.denominator._digitMultiplyWithAdd(10, 0);
                me.remainder.numerator._digitMultiplyWithAdd(10, sign*parseInt(input[i]));
            }
            if (recurring) throw new Error(INPUT_ERROR_MESSAGE);
        }

        // Helper function to parse and create a fraction from a fractional input representation
        // Note that the input is assumed to be "clean" and that the regexps below will match
        function parseFraction(input) {
            var remainder=standardRemainder(new N(input.match(/^[\+\-]?\d+/)[0]),new N(input.match(/\/(\d+)$/)[1]));
            if (remainder.denominator.isZero()) throw new Error(INPUT_ERROR_MESSAGE);
            if (!me.integer) {
                me.remainder=remainder;
                me._normaliseRemainder();
            }
            else me.number.add(remainder.numerator.quotient(remainder.denominator));
        }

        if (typeof initialValue == 'string') {
            initialValue=initialValue.trim();
            if (!this.integer) this.remainder=standardRemainder();
            if (initialValue.match(/^[\+\-]?\d+\/\d+$/)) {                               // [+/-]nnn/nnn
                if (typeof isInteger != 'boolean') this.integer = false;
                this.number=new N();
                parseFraction(initialValue);
            } else {
                var sign=initialValue[0]=='-';
                if (initialValue.match(/^[\+\-]?\d*/)===null) throw new Error(INPUT_ERROR_MESSAGE);
                this.number=new N(initialValue.match(/^[\+\-]?\d*/)[0]);                 // [+/-]nnn
                if (initialValue.match(/^[\+\-]?\d*$/)) return this;
                var match=initialValue.match(/^[\+\-]?\d*([\. ])/);
                if (match===null) throw new Error(INPUT_ERROR_MESSAGE);
                var remaining=initialValue.match(/^[\+\-]?\d*[\. ](.*)/)[1];             // [+/-]nnn[./ ]
                if (typeof isInteger != 'boolean') this.integer = false;
                switch (match[1]) {
                case '.':
                    // Parse for decimal representation
                    if (remaining.match(/^\d*\[?\d+\]?$/)===null) throw new Error(INPUT_ERROR_MESSAGE);
                    if (!this.integer) parseDecimal(remaining,sign ? -1 : 1);
                    break;

                case ' ':
                    // Parse for fractional representation
                    if (remaining.match(/^\d+\/\d+$/)===null) throw new Error(INPUT_ERROR_MESSAGE);
                    parseFraction((sign ? '-' : '')+remaining);
                    break;
                }
            }
            return this;
        }

        if (typeof initialValue=='undefined' && arguments.length>0) throw new Error(INPUT_ERROR_MESSAGE);
        // If we had no initialiser, then set this number to zero
        this.number=new N();
        if (!this.integer) this.remainder = standardRemainder();
        return this;
    };

    /**
     * Attempts a simplification of the remaining fraction
     *
     * Finding common factors (which would be prime numbers) is a time-consuming job.
     * Just as well, as otherwise most security mechanism (i.e. RSA) could be hacked in a jiffy.
     * So there is a limit to how large a fraction can be simplified. A realistic limit has therefore been
     * established here whereby prime factors can not exceed the BASE of the internal number representation.
     * Thus the highest prime explored is **33,554,393**.
     * Fractions that have their numerator larger than the square of this number may not be completely simplified - i.e. numbers of more than 15 digits.
     *
     * @param {number} [milliseconds=100] The maximum time in milliseconds to attempt simplification. 0 sets no limit.
     * @returns {boolean} `true` if simplification complete, `false` if there may still be some common factors left
     * @throws {external:Error} If an invalid limit is given
     */
    Tpa.prototype.simplify=function(milliseconds) {
        // Preparations
        if (arguments.length>0 && (typeof milliseconds!='number' || isNaN(milliseconds)))
            throw new Error('Simplify() takes an optional numeric argument specifying the maximum number of millisecondsto process');
        if (typeof milliseconds=='undefined') milliseconds=100;
        if (this.isInteger() || this.remainder.numerator.isZero()) return true;
        var isNegative=this.remainder.numerator.isNegative();
        this.remainder.numerator.abs();
        var limit= this.remainder.numerator._roughSqrt().value();
        var primes=new N.Primes();
        var start=new Date().getTime();
        var factor=new N().set(1);

        // Loop through all the primes up to the square root of the numerator to test for common factors
        for (var prime= primes.next(); prime>0 && prime<=limit; prime= primes.next()) {
            while (this.remainder.numerator.isDivisibleBy(prime)) {
                this.remainder.numerator.digitDivide(prime);
                if (this.remainder.denominator.isDivisibleBy(prime)) this.remainder.denominator.digitDivide(prime);
                else factor.digitMultiply(prime);
            }
            // Abort if our time is up
            if (new Date().getTime()-start>milliseconds && milliseconds>0) {
                prime=0;
                break;
            }
        }

        // Clean up and set the factorised remainder accordingly
        var denominator=new N(this.remainder.denominator);
        var remainder=denominator.divide(this.remainder.numerator);
        if (remainder.isZero()) {
            this.remainder.denominator=denominator;
            this.remainder.numerator=factor;
            prime=1;
        } else this.remainder.numerator.multiply(factor);
        if (isNegative) this.remainder.numerator.negate();
        // If prime is zero then we never got to finish
        return prime>0;
    };

    /**
     * Sets this number to hold integers only - removes any existing fractional part
     *
     * @returns {module:TPA~Tpa} This number for chaining purposes
     */
    Tpa.prototype.makeInteger=function() {
        this.integer=true;
        delete this.remainder;
        return this;
    };

    /**
     * Sets this number to accept fractional amounts, if not already set
     *
     * @returns {module:TPA~Tpa} This number for chaining purposes
     */
    Tpa.prototype.makeFractional=function() {
        if (this.integer) {
            this.integer = false;
            this.remainder = standardRemainder();
        }
        return this;
    };

    /**
     * @returns {boolean} `true` if this number only represents integers
     */
    Tpa.prototype.isInteger=function() {
        return this.integer;
    };

    /**
     * @returns {boolean} `true` if this number is capable of representing fractions
     */
    Tpa.prototype.isFractional=function() {
        return !this.integer;
    };

    /**
     * @returns {boolean} `true` if this number is less than zero
     */
    Tpa.prototype.isNegative=function() {
        if (this.isZero()) return false;
        if (this.number.isZero()) return this.remainder.numerator.isNegative();
        else return this.number.isNegative();
    };

    /**
     * @returns {boolean} `true` if this number is greater than zero
     */
    Tpa.prototype.isPositive=function() {
        if (this.isZero()) return false;
        if (this.number.isZero()) return this.remainder.numerator.isPositive();
        else return this.number.isPositive();
    };

    /**
     * @returns {boolean} `true` if this number is equal to zero
     */
    Tpa.prototype.isZero=function() {
        this._normaliseRemainder();
        return this.number.isZero() && (this.isInteger() || this.remainder.numerator.isZero());
    };

    /**
     * @returns {number} `-1` if this number is negative, `0` if zero or `1` if positive
     */
    Tpa.prototype.sign=function() {
        if (this.isZero()) return 0;
        return this.isNegative() ? -1 : 1;
    };

    /**
     * @returns {boolean} `true` if this number has a non-zero fractional part
     */
    Tpa.prototype.hasFraction=function() {
        if (this.integer) return false;
        this._normaliseRemainder();
        return !this.remainder.numerator.isZero();
    };

    /**
     * Gets the value of this number in standard JS floating point number
     *
     * Note that precision may well be lost in order to accommodate the limitations of floating point numbers.
     * For this reason, the number of decimal places is restricted to 8.
     * Tpa numbers can be so large as to cause an overflow on a floating point number to yield `infinity`
     *
     * @returns {number} A numeric value of this number
     */
    Tpa.prototype.value=function() {
        var power=Math.pow(10,VALUE_DECIMAL_PLACES);
        if (this.integer) return this.number.value();
        else {
            var numerator = new N(this.remainder.numerator).multiply(new N(power));
            numerator.divide(this.remainder.denominator);
            return (this.number.value() + (numerator.value() / power).toFixed(VALUE_DECIMAL_PLACES)*1);
        }
    };

    /**
     * Sets a number to hold fractional value
     *
     * @param {(number|string|module:TPA~Tpa)} number The number to copy
     * @returns {module:TPA~Tpa} A new number with the ability to hold fractions
     */
    Tpa.makeFractional=function(number) {
        return new Tpa(number).makeFractional();
    };

    /**
     * Sets a number to hold integer values only
     *
     * @param {(number|string|module:TPA~Tpa)} number The number to copy
     * @returns {module:TPA~Tpa} A new number *without* the ability to hold fractions
     */
    Tpa.makeInteger=function(number) {
        return new Tpa(number).makeInteger();
    };

    /**
     * Sets the integer part of a number to zero
     *
     * @param {(number|string|module:TPA~Tpa)} number The number from which the integer part is to be removed
     */
    Tpa.frac=function(number) {
        return new Tpa(number).frac();
    };

    /**
     * Sets the fractional part of a number to zero
     *
     * @param {(number|string|module:TPA~Tpa)} number The number from which the fractional part is to be removed
     */
    Tpa.int=function(number) {
        return new Tpa(number).int();
    };

    /**
     * Adds two numbers
     *
     * Aliases: `plus`
     *
     * @param {(number|string|module:TPA~Tpa)} a First number
     * @param {(number|string|module:TPA~Tpa)} b Second number
     * @returns {module:TPA~Tpa} a + b
     */
    Tpa.add=function(a,b) {
        return new Tpa(a).add(b);
    };

    /**
     * Subtracts two numbers
     *
     * Aliases: `minus`, `sub`
     *
     * @param {(number|string|module:TPA~Tpa)} a First number
     * @param {(number|string|module:TPA~Tpa)} b Second number
     * @returns {module:TPA~Tpa} a - b
     */
    Tpa.subtract=function(a,b) {
        return new Tpa(a).subtract(b);
    };

    /**
     * Multiplies two numbers
     *
     * Aliases: `mult`, `times`
     *
     * @param {(number|string|module:TPA~Tpa)} a First number
     * @param {(number|string|module:TPA~Tpa)} b Second number
     * @returns {module:TPA~Tpa} a * b
     */
    Tpa.multiply=function(a,b) {
        return new Tpa(a).multiply(b);
    };

    /**
     * Divides two numbers ( a / b )
     *
     * Aliases: `div`
     *
     * @param {(number|string|module:TPA~Tpa)} a First number
     * @param {(number|string|module:TPA~Tpa)} b Second number
     * @returns {module:TPA~Tpa} a / b
     */
    Tpa.divide=function(a,b) {
        return new Tpa(a).divide(b);
    };

    /**
     * Modulus of two numbers
     *
     * Aliases: `mod`
     *
     * @param {(number|string|module:TPA~Tpa)} a First number
     * @param {(number|string|module:TPA~Tpa)} b Second number
     * @returns {module:TPA~Tpa} a mod b
     */
    Tpa.modulus=function(a,b) {
        return new Tpa(a).mod(b);
    };

    /**
     * Absolute value of a number
     *
     * @param {(number|string|module:TPA~Tpa)} n The number
     * @returns {module:TPA~Tpa} |n|
     */
    Tpa.abs=function(n) {
        return new Tpa(n).abs();
    };

    /**
     * Creates a random number of an approximate number of decimal digits long
     *
     * @param {number} digits The number of decimal digits
     * @returns {module:TPA~Tpa} A new number set a a random value
     */
    Tpa.random=function(digits) {
        if (typeof digits=='number' && digits>0) {
            var result=new Tpa();
            result.number.random(digits);
        } else throw new Error('You must specify a positive number of decimal digits as an approximate size for this number');
        return result;
    };

    /**
     * Compares the given number with this number
     *
     * @param {(number|string|module:TPA~Tpa)} number The number to compare
     * @returns {number} `-1` if this number is less than the given number, `0` if equal, `1` if greater
     */
    Tpa.prototype.compare=function(number) {
        function compare(a,b) {
            return N.abs(a).normalise().positivise().compare(N.abs(b).positivise().normalise());
        }

        if (number===this) return 0;
        number = Tpa(number);
        this._normaliseRemainder();
        number._normaliseRemainder();
        if (this.sign()!=number.sign()) {
            if (this.sign()==0) return -number.sign();
            else return this.sign();
        }
        var result = compare(this.number,number.number);
        if (result == 0 && this.isFractional()) {
            if (number.isFractional()) result=compare(new N(this.remainder.numerator).multiply(number.remainder.denominator),new N(this.remainder.denominator).multiply(number.remainder.numerator));
        }
        return result;
    };

    /**
     * @param {(number|string|module:TPA~Tpa)} number The number to compare
     * @returns {boolean} `true` if this number is less than the given number
     */
    Tpa.prototype.lt=function(number) {
        return this.compare(number)==-1;
    };

    /**
     * @param {(number|string|module:TPA~Tpa)} number The number to compare
     * @returns {boolean} `true` if this number is less than or equal to the given number
     */
    Tpa.prototype.lte=function(number) {
        return this.compare(number)!=1;
    };

    /**
     * @param {(number|string|module:TPA~Tpa)} number The number to compare
     * @returns {boolean} `true` if this number is greater than the given number
     */
    Tpa.prototype.gt=function(number) {
        return this.compare(number)==1;
    };

    /**
     * @param {(number|string|module:TPA~Tpa)} number The number to compare
     * @returns {boolean} `true` if this number is greater than or equal to the given number
     */
    Tpa.prototype.gte=function(number) {
        return this.compare(number)!=-1;
    };

    /**
     * @param {(number|string|module:TPA~Tpa)} number The number to compare
     * @returns {boolean} `true` if this number is equal to the given number
     */
    Tpa.prototype.eq=function(number) {
        return this.compare(number)==0;
    };

    /**
     * Sets the fractional part of this number to zero
     *
     * @return {(number|string|module:TPA~Tpa)} This number for chaining purposes
     */
    Tpa.prototype.int=function() {
        if (!this.integer) this.remainder=standardRemainder();
        return this;
    };

    /**
     * Sets the integer part of this number to zero
     *
     * @return {(number|string|module:TPA~Tpa)} This number for chaining purposes
     */
    Tpa.prototype.frac=function() {
        this._normaliseRemainder().number.reset();
        return this;
    };

    /**
     * Takes the absolute value of this number
     *
     * @return {(number|string|module:TPA~Tpa)} This number for chaining purposes
     */
    Tpa.prototype.abs=function() {
        this.number.abs();
        if (!this.integer) this.remainder.numerator.abs();
        return this;
    };

    /**
     * Multiply this number by the one given
     *
     * Aliases: `mult`
     *
     * If this number is fractional, then it will perform a full fractional multiplication.
     * If it is set as an integer then the multiplication will ignore any fractional part of the multiplier
     *
     * @param {(number|string|module:TPA~Tpa)} number The number to multiply by
     * @returns {module:TPA~Tpa} This number for chaining purposes
     */
    Tpa.prototype.multiply=function(number) {
        if (!(number instanceof TPA)) number=Tpa(number);
        if (!this.integer) {
            if (!number.integer) {
                this.remainder.numerator.multiply(N.temporary(number.remainder.denominator).multiply(number.number).add(number.remainder.numerator))
                                        .add(N.temporary(number.remainder.numerator).multiply(this.number).multiply(this.remainder.denominator));
                this.remainder.denominator.multiply(number.remainder.denominator);
            } else this.remainder.numerator.multiply(number.number);
        }
        this.number.multiply(number.number);
        return this;
    };

    /**
     * Divide this number by the one given
     *
     * Aliases: `div`
     *
     * If this number is fractional, then it will perform a full fractional division.
     * If it is set as an integer then the division will ignore any fractional part of the divisor
     *
     * @param {(number|string|module:TPA~Tpa)} number The number to multiply by
     * @returns {module:TPA~Tpa} This number for chaining purposes
     */
    Tpa.prototype.divide=function(number) {
        if (!(number instanceof TPA)) number=Tpa(number);
        if (!this.integer) {
            if (!number.integer) {
                this.number.multiply(this.remainder.denominator).add(this.remainder.numerator).multiply(number.remainder.denominator);
                this.remainder.numerator =this.number.divide(this.remainder.denominator.multiply(N.temporary(number.number).multiply(number.remainder.denominator).add(number.remainder.numerator)));
            } else {
                this.number.multiply(this.remainder.denominator).add(this.remainder.numerator);
                this.remainder.numerator = this.number.divide(this.remainder.denominator.multiply(number.number));
            }
        } else this.number.divide(number.number);
        return this;
    };

    /**
     * Sets this number to the modulus of the number given
     *
     * Aliases: `mod`
     *
     * Fractional parts of either number are ignored - the modulus is based on the integer parts ony
     *
     * @param {(number|string|module:TPA~Tpa)} number The divisor number
     * @returns {module:TPA~Tpa} This number for chaining purposes
     */
    Tpa.prototype.modulus=function(number) {
        if (!(number instanceof TPA)) number=Tpa(number);
        this.number=this.number.divide(number.number);
        if (!this.integer) this.remainder=standardRemainder();
        return this;
    };

    /**
     * Subtracts the given number from this number
     *
     * Aliases: `sub`, `minus`
     *
     * If this number is fractional, then it will perform a full fractional subtraction.
     * If it is set as an integer then the subtraction will ignore any fractional part of the number to be subtracted
     *
     * @param {(number|string|module:TPA~Tpa)} number The number to subtract
     * @returns {module:TPA~Tpa} This number for chaining purposes
     */
    Tpa.prototype.subtract=function(number) {
        if (!(number instanceof TPA)) number=Tpa(number);
        this.number.subtract(number.number);
        if (!this.integer) {
            if (!number.integer && !number.remainder.numerator.isZero()) {
                this.remainder.numerator.multiply(number.remainder.denominator).subtract(N.temporary(number.remainder.numerator).multiply(this.remainder.denominator));
                this.remainder.denominator.multiply(number.remainder.denominator);
            }
            this._normaliseRemainder();
        }
        return this;
    };

    /**
     * Adds the given number to this number
     *
     * Aliases: `plus`
     *
     * If this number is fractional, then it will perform a full fractional addition.
     * If it is set as an integer then the addition will ignore any fractional part of the number to be added
     *
     * @param {(number|string|module:TPA~Tpa)} number The number to add
     * @returns {module:TPA~Tpa} This number for chaining purposes
     */
    Tpa.prototype.add=function(number) {
        if (!(number instanceof TPA)) number=Tpa(number);
        this.number.add(number.number);
        if (!this.integer) {
            if (!number.integer && !number.remainder.numerator.isZero()) {
                this.remainder.numerator.multiply(number.remainder.denominator).add(N.temporary(number.remainder.numerator).multiply(this.remainder.denominator));
                this.remainder.denominator.multiply(number.remainder.denominator);
            }
            this._normaliseRemainder();
        }
        return this;
    };

    /**
     * Outputs a decimal representation of this number
     *
     * All Tpa numbers are rational and thus have a limited or recurring set of decimal places
     * Recurring decimals are notated in square brackets - e.g. 33.[3] for 33 and one third
     * If there are more decimals to output than the maximum requested the output is cut off and finishes with an ellipsis (...)
     *
     * @param {number} [maxDecimalPlaces=100] The maximum number of decimal places to give
     * @see #toString
     * @returns {string} The number in format: `[-]nnn.ddd[rrr]`
     */
    Tpa.prototype.toDecimal=function(maxDecimalPlaces) {
        return typeof maxDecimalPlaces=='undefined' ? this.toString() : this.toString(maxDecimalPlaces);
    };

    /**
     * Outputs the decimal representation of the integer part of this number only
     *
     * @returns {string} The number in decimal form: `[-]nnn`
     */
    Tpa.prototype.toInteger=function() {
        this._normaliseRemainder();
        return (this.isNegative() ? '-' : '')+N.abs(this.number).toString();
    };

    /**
     * Outputs this number in fractional representation: `[-]nnn nnn/nnn`
     *
     * @returns {string} The number in fractional form
     */
    Tpa.prototype.toFraction=function() {
        var result=this.toInteger();
        if (this.isFractional() && !this.remainder.numerator.isZero()) {
            result=result+' '+ N.abs(this.remainder.numerator).toString();
            result=result+'/'+this.remainder.denominator.toString();
        }
        return result;
    };

    /**
     * Outputs a decimal representation of this number
     *
     * All Tpa numbers are rational and thus have a limited or recurring set of decimal places
     * Recurring decimals are notated in square brackets - e.g. 33.[3] for 33 and one third
     * If there are more decimals to output than the maximum requested the result is cut off andends with an ellipsis (...)
     *
     * @param {number} [maxDecimalPlaces=100] The maximum number of decimal places to give
     * @see #toDecimal
     * @returns {string} The number in format: `[-]nnn.ddd[rrr]`
     */
    Tpa.prototype.toString=function(maxdp) {
        if (typeof maxdp != 'number' || isNaN(maxdp)) {
            if (arguments.length>0) throw new Error('toString() takes an optional parameter to specify the maximum DPs to output [default=100]');
            else maxdp=100;
        }

        var result=this.toInteger();
        if (this.isFractional() && !this.remainder.numerator.isZero()) {
            result+='.';
            var numeratorstore=[];
            for (var numerator=new N(this.remainder.numerator).abs().normalise().positivise(),remainder=0; !numerator.isZero() && maxdp>0; maxdp--) {
                for (var i=numeratorstore.length-1; i>=0; i--) {
                    if (numeratorstore[i].compare(numerator)==0) break;
                }
                if (i>=0) {
                    result=result.substr(0,result.length+i-numeratorstore.length)+'['+result.substr(result.length+i-numeratorstore.length)+']';
                    break;
                }
                numeratorstore.push(new N(numerator));
                remainder = numerator._digitMultiplyWithAdd(10, 0).divide(this.remainder.denominator);
                result+=numerator.lsb();
                numerator=remainder;
            }
            if (maxdp==0 && !numerator.isZero()) result=result+'...';
        }
        return result;
    };

    /**
     * Normalises the remainder - ensures the numerator is less than the denominator
     *
     * @private
     * @returns {module:TPA~Tpa} This number for chaining purposes
     */
    Tpa.prototype._normaliseRemainder=function() {
        if (!this.integer) {
            var numerator = this.remainder.numerator.divide(this.remainder.denominator);
            this.number.add(this.remainder.numerator);
            this.remainder.numerator = numerator;
            if (this.remainder.numerator.isZero()) this.remainder.denominator.set(1);
            else {
                if (this.remainder.numerator.isNegative()) {
                    if (this.number.isPositive()) {
                        this.remainder.numerator.add(this.remainder.denominator);
                        this.number.subtract(N.ONE);
                    }
                } else {
                    if (this.number.isNegative()) {
                        this.remainder.numerator.subtract(this.remainder.denominator);
                        this.number.add(N.ONE);
                    }
                }
            }
        }
        return this;
    };

    // Allow external access to the internal N class - for testing purposes only
    if (typeof PRODUCTION==='undefined') {
        Tpa.N = N;
    }

    // Aliases
    Tpa.plus=Tpa.add;
    Tpa.prototype.plus=Tpa.prototype.add;
    Tpa.minus=Tpa.subtract;
    Tpa.prototype.minus=Tpa.prototype.subtract;
    Tpa.sub=Tpa.subtract;
    Tpa.prototype.sub=Tpa.prototype.subtract;
    Tpa.times=Tpa.multiply;
    Tpa.prototype.times=Tpa.prototype.multiply;
    Tpa.mult=Tpa.multiply;
    Tpa.prototype.mult=Tpa.prototype.multiply;
    Tpa.div=Tpa.divide;
    Tpa.prototype.div=Tpa.prototype.divide;
    Tpa.mod=Tpa.modulus;
    Tpa.prototype.mod=Tpa.prototype.modulus;

    return Tpa;
})();

        <button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>

Search results

        <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>

	Copyright (c) 2016 Dominic Thwaites <dominicthwaites@mac.com>

	Documentation generated by JSDoc 3.4.0

		on Sun Apr 10th 2016

	using the DocStrap template.

redpajama_set_name: RedPajamaGithub


text:
Foo Fighters and Green Day to headline 2023 Harley-Davidson Homecoming Festival
Harley-Davidson are celebrating their 120th birthday this summer with the help of Foo Fighters, Green Day and more…
Fresh from announcing their first proper live dates since Taylor Hawkins' death last year, Foo Fighters have confirmed another massive festival appearance.
In July, the rock legends will be joining fellow titans Green Day in headlining the Harley-Davidson Homecoming Festival at Veterans Park in Milwaukee, celebrating the iconic motorcycle company's 120th birthday.
"We are very excited to announce the Foo Fighters and Green Day as headliners at our Veterans Park festival location," says Jochen Zeitz, chairman, president and CEO of Harley-Davidson. "We can't wait to host riders from all over the world in Milwaukee, as we come together as one Harley-Davidson family and welcome everyone to join us. With music at the heart of our festival, I can't think of two more iconic American rock icons to join our community in celebrating 120 years of Harley-Davidson."
The line-up also includes Cody Jinks, Social Distortion, Joan Jett And The Blackhearts, Phantogram, White Reaper and KennyHoopla.
Later this year, Green Day are set to headline the 2023 edition of When We Were Young with blink-182.
Read this: "It created a new future for us": The story of Green Day's American Idiot
Foo FightersGreen DaySocial DistortionJoan Jett and the BlackheartsKennyHoopla
Foo Fighters announce several U.S. festival headline dates
Foo Fighters are playing some massive U.S. festivals this year, marking their first proper live shows since drummer Taylor Hawkins' passing.
Foo Fighters, Avenged Sevenfold, Tool and more for Sonic Temple festival
Sonic Temple announces almost 80 bands including headliners Foo Fighters, Tool, Avenged Sevenfold and KISS…
Foo Fighters will be "a different band going forward" following loss of Taylor Hawkins
Foo Fighters have announced that they will continue following drummer Taylor Hawkins' tragic death in 2022 – but they will be "a different band" without him.
See P!nk perform Get The Party Started with Dave Grohl and Greg Kurstin
P!nk joins Dave Grohl and Greg Kurstin to perform Get The Party Started for their annual Hanukkah Sessions…
See Dave Grohl and Billie Eilish perform Foo Fighters' My Hero
At the second date of her hometown run at the Kia Forum, Billie Eilish brought out Dave Grohl to pay tribute to the late Taylor Hawkins…
20 rock and metal songs to welcome in winter
From Woods Of Ypres to Weezer, we present the perfect soundtrack for the darkest evenings of the year...
Dave Grohl has recorded a star-studded Hanukkah Sessions live show
Dave Grohl brought his and Greg Kurstin's Hanukkah Sessions to life at a tiny show… and the whole thing will hopefully be available for all to hear!
House of Vans London is closing after eight years
Tucked underneath Waterloo Station, London's ace House of Vans venue will be shutting its doors on December 10.

redpajama_set_name: RedPajamaCommonCrawl


text:
Side-by-side comparison of a BB gun and a 9 mm. Can you tell the difference? The Smith and Wesson 9 mm is on the left. Campbell River RCMP photo
Police swoop down on man who couldn't wait to get home to admire his new BB gun
Opened it in his car in store parking lot but it looked too real
Alistair Taylor
May. 19, 2020 1:30 a.m.
A Campbell River man found himself in a scary situation on Saturday, May 17 after it was reported that he had been handling a pistol in the parking lot of the Campbell River Walmart.
The RCMP caught up with the man and removed him from his vehicle in the parking lot of the Home Depot. In the end, it turned out the pistol had been a newly purchased BB gun that the man just could not wait to unwrap. Once it was clear there was no threat, the man was free to go on his way, a little shaken from a multi-officer response.
"Unfortunately, these kinds of occurrences are a little too common," responding officer Const. Maury Tyre said. " These BB and pellet pistols are designed to look like the real thing. Members of the public and police cannot tell them apart at first glance and it can create some very dangerous situations. We have had reports of people waving handguns around out of the windows of their cars or using an imitation to threaten people with. The response of officers will be as if the firearm is real because until we get our hands on it, we can't tell for sure. We have to act as if every weapons call is legitimate to ensure the public's safety and our safety."
The Campbell River RCMP recommend that if you are the proud owner of a BB or pellet gun you treat it as you would any other firearm. Lock it up, safely transport it, and only use it in a safe location.
If you would like to report a crime, call the Campbell River RCMP at 250-286-6221 or call 911 in an emergency.
RELATED: Campbell River RCMP offer 7 tips to avoid being pulled over this summer
RELATED: Campbell River RCMP launching online crime reporting system
CrimegunsRCMP
Duncan man wins $1M in Lotto 6/49
Business notes: Traveland RV opens new location in the Cowichan Valley
RCMP release vehicle details of missing North Cowichan father and daughter
Impaired driving complaint leads RCMP to over $20K in cash, evidence of drug trafficking
'Pandemic pay' to give temporary wage top-up to 250,000 B.C. front-line workers
Al Siebring won't run for re-election as North Cowichan mayor
North Cowichan/Duncan RCMP dispel rumours following late night assault on school grounds


Recover photo, video, messages, contacts, etc.
Supports more data loss scenarios.
Selectively backup Android data to computer.
Permanently erase all from your old phones.
Highest success rate in the industry, 100% safe.
A simple but powerful mobile tool for data management.
Copyright © 2007-2017 Wondershare.All Rights Reserved.


text:
ETHNIC CLEANSING OR WAR?
by Lt Col Anil Bhat November 3, 2015
written by Lt Col Anil Bhat November 3, 2015
The Shocking Account of the Killing Fields of Kishtwar
In February and March 1990, JKLF (Jammu & Kashmir Liberation Front) supported by Pakistan's Inter Services Intelligence (ISI), started a systematic ethnic cleansing campaign to kill, terrorise and drive out the entire 400,000- strong community of Kashmiri Pandits from the Kashmir Valley. Over 20,000 houses of Kashmiri Pandits were burnt, some 105 Kashmiri Pandit educational institutions were destroyed and 103 temples razed to the ground. This book traces the genocide of the Pandits living in the Kashmir Valley and the subsequent ethnic cleansing of the Dogra community in Jammu Division with great sensitivity and with due regards to facts.
2013 is the year in which Pak army and terrorists supported by it felt emboldened enough to raise the level and nature of attacks, mainly owing to the softest/lowest ever response by the UPA-II government. While attacks by Pak army/ISI-supported terrorists in Kashmir valley were stepped up substantially in 2013 to include even Srinagar, Kishtwar was focused upon for ethnic cleansing since August 2013. The author reiterated that the ISI, which engineered riots in Doda-Kishtwar then, did so with the specific aim to get rid of the village defence committees (VDCs) and thereby clear the way for ethnic cleansing. According to Bakshi, it was the first phase of a diabolical move by the ISI to further continue its agenda of ethnic cleansing in J&K.
Kishtwar Cauldron is an insightful account of Pakistan's proxy war in J&K in general and Indian Army's counterterrorist operations in the grim and forbidding Killing fields of Kishtwar, in particular. The author not only personally led these high risk operations in the field but also oversaw their planning at the apex level. While providing a doctrinal overview for these operations, he also goes on to give a blow by blow account of these campaigns and some of the debates and decisiondilemmas they generated. He highlights one very painful and largely blanked out aspect of these operations – the horrible ethnic cleansing of the Kashmiri Pandits from the Valley and how it was blanked out from the media. Subsequently, to stall talks of the Owen-Dixon Plan to partition Kashmir along the Chenab Valley, the ISI deliberately attempted another ethnic cleansing of the Dogras from Kishtwar. Bakshi recounts the grim struggle to protect the population from such genocidal attacks and the strenuous attempts made to prevent their large scale exodus to Himachal Pradesh. It was a grim and very taxing struggle but the Indian Army succeeded at last in deterring such attacks. Questioning the conspiracy of silence that prevented the publicising of genocidal actions of the ISI in J&K, he recommends that like the Serbs, they deserve to be tried for this ethnic cleansing.
A valuable part of this book is Bakshi's reflections on the lessons learnt and raises a debate on some seminal issues. Should the Indian Army continue to treat Internal Security as a secondary task to be best avoided? The Chinese Army treats it as one of its tasks on par with conventional operations.
He questions the British era principle of minimal force in the context of the rising lethality of such operations and explores the new concept of proportional force. He takes a detailed look at the future and forecasts that the demographic youth bulge could lead to a vast increase in internal armed conflict in India. Maoism is just the trailer of this lethal conflict. The road ahead is grim and full of challenges. By turns racy and analytical, this book is a must read, not only for the military, police and intelligence professionals and analysts but for bureaucrats and politicians as well.
Pension Call Centre Inaugurated by Hon'ble Raksha Mantri on 30.04.2015
INDIAN GOVERNMENT AND ARMED FORCES CONDUCT OP MAITRI IN NEPAL