#Java 8, <s>299</s> <s>288</s> <s>286</s> <s>252</s> <s>210</s> 208 bytes <!-- language-all: lang-java --> Math M;(a,b,c,d,e,f,g,h,i,j)->{double t=M.pow(i,j),y=t*l(h,c)+l(l(g,b),c)-M.pow(d,e);return a>1&&f<2|(c<2|d<2?l(l(M.pow(b,c)*l(a,f),g),h)>t:y==0?a>f:y<0);}double l(double...A){return M.log(A[0])/M.log(A[1]);} Port of [*@SimplyBeautifulArt*'s Ruby answer](https://codegolf.stackexchange.com/a/185623/52210), so make sure to upvote him! -14 bytes thanks to *@SimplyBeautifulArt*. [Try it online.](https://tio.run/##pVVLb@IwEL73V1gcKntjwvv9qHrZG92VureKg5M4DzZNUGJaoS6/nU7GDoQAp5XRZ49n/M14ZmI24kM0N97foxuLPCcrESVfD4REiZKZL1xJXgqRkF/ORrqKuBQ0RPACHUQX0UOUiD5igBgiRogbNgOqwwPASqiQrGbA22oRa0ScvZI5USlRoUSh6aa7RIHlC0nIghyp4A53uccl93nAgZZvWHP55aU7J5ZELVb2Nv2kxS7fL9SPmIbcZVZMYxpwh8G6qS2Agc0yqXZZQsSy8/joz7v/qAvgzbtPhb22A28MWAT3GQ8YD9lSTfeLRftJLP3pft5ms8PMOI@pXti2/cy@DPfKjtOAPr@116xVrjtrOHWES23BPHJJroSC6SONPPIOiaevKouS4G1NRBbkTCceEvQn26lwP0UR8qRop83v/SaYZGPX5Xr0Ck0fJhBu6UF7XlQN6uRVqWrX06dhdPkA507dD8ZQ6EewnFzqR1XmYUW49nExqupx4QGDMN7qIfRNhD3MQ009MOnRV@iBNDDq132u5Lud7pS9heqoOKFGU5bnp4hzeVGekoKfaKu@hpCCsb7keVnL@hDD7WobjL1mMIFzI9DdYbhsi7vt0de1Kqt/XbUyI/1bRTWV5r1bp8t03z1d@j4ZXqpNv3T4WPfLpf60ee6sO/Q93QvXV@sAwaSMvN5slW1@Mq5l@DSq8ePzVv2w0fp/Hk39DOinAZ7I30UTwpMorAZvWA6ii@ghSqtBROKRhuWjHCCGiBHi5m5jG3ZgaNiZ3EoBX92gaXbtWCaBCiljViI/8Z@CMjux3Ztvs0nG4fgN) **Explanation:** Math M; // Math M=null on class-level to save bytes (a,b,c,d,e,f,g,h,i,j)->{ // Method with ten integer parameters and boolean return-type double t=M.pow(i,j), // Temp `t` = `i` to the power `j` y=t*l(h,c) // Temp `y` = `t` * `c`_log(`h`) +l(l(g,b),c) // + `c`_log(`b`_log(`g`)) -M.pow(d,e); // - `d` to the power `e` return a>1&& // If `a` is 1: // Return false f<2|( // Else-if `f` is 1: // Return true c<2|d<2? // Else-if either `c` or `d` is 1: l(l(M.pow(b,c)*l(a,f),g),h) // Return whether `h`_log(`g`_log((`b` to the power `c`) // * `f`_log(`a`))) >t // is larger than `t` : // Else: y==0? // If `y` is 0: a>f // Return whether `a` is larger than `f` : // Else (`x` and `y` are different) y<0);} // Return whether `y` is negative // Separated method to calculate `A`_log(`B`) for inputs `A,B` double l(double...A){return M.log(A[0])/M.log(A[1]);}